• Cookie和Session的各自作用、使用场景、java操作代码(创建、获取等操作)


    一、Cookie

    Cookie的原理、作用、操作方法:

    Cookie是一个小的文本数据,由服务端产生创建,以键值对key-value的形式保存,数据信息是以明文文本的形式保存在客户端的计算机中, 小段的文本信息。该信息记录用户身份,如用户名等

    浏览器第一次请求服务器时,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端会把Cookie保存起来。用户关闭浏览器时该cookie被删除。之后客户端浏览器访问服务器时会自动从计算机上的文件夹下读取所有cookie,如果有多个cookie,则是以数组的形式保存所有cookie,送到服务端后需要循环遍历来获取其中的一个cookie。最大的特点是自动随着请求带在request header的cookie字段里传给服务器端。

    Cookie就是一个小的文本数据,由服务器端生成创建,cookie数据以键值对key-value保存

    1. Cookie cookieUsername=new Cookie("username","张三");
    2. Cookie.setMaxAge(60*60*24*7);//7天

    服务器端把该cookie返回到客户端浏览器,客户端把数据保存到计算机的某个文件夹下面。

    response.addCookie(cookieUsername);

    服务器端从客户端获取某个key为username的Cookie的方法

    1. Cookie[] cookies=request.getCookies();
    2. for(int i=0;i
    3. if(cookies[i].getName().equals("username")){
    4. String username=cookies[i].getValue();
    5. break;
    6. }
    7. }

    Cookie使用场景:

    1. 保存登录状态,可以设置Cookie的失效时间为7天,这样以后可以在以后的7天内无需重新输入用户名和密码来登录。
    2. 保存购物车数据,这样可以减轻数据库的压力,不用每一次用户查看购物车都是从数据库中获取。http://t.csdn.cn/yW4XP
    3. 保存用户的个性化设计,服务器根据Cookie的值来决定显示给客户端什么样的界面。

    一、session(HttpSession)

    session的原理、作用、操作方法:

    session保存在服务器上,客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。每个用户访问服务器都会建立一个session,每个session有一个唯一的标识id。对于同一个用户,不管在哪一个页面和servlet中,用户使用的都是同一个session。

    session的使用是离不开cookie的,当客户端是第一次访问服务器端,服务器端会生成一个sessionid,并把该sessionid保存到cookie里面返回到客户端浏览器里面保存起来,之后的客户端请求服务器端这个带有sessionid的cookie就会传到服务器来检查是否是第一个访问的条件。在第一次调用 request.getSession() 方法时,服务器会检查是否已经有对应的session,如果没有就在内存 中创建一个session并返回。

    用户关闭浏览器时session并不会被马上回收,而是当过一段时间后一直没有用户访问这个session对象时才会被回收销毁,表示用户的一次会话结束。

    首先获取session

    HttpSession session=request.getSession();

    服务器端创建一个session,以下是存放一个简单的字符串,还可以存放集合,对象等类型。

    session.setAttribute("username","张三");

    服务器端获取session中的数据

    String username=session.getAttribute("username");

    删除某一个session

    session.removeAttribute("username");

    session使用场景:

    1. 保存登录信息,如保存用户的账号,便于其他页面做操作时知道该用户的账号
    2. 保存购物车的数据信息。
  • 相关阅读:
    [Spring笔记] Spring-27-Spring整合MyBatis
    Vue / Vue指令、事件修饰符、事件参数
    【自然语言处理(NLP)】基于FNN网络的电影评论情感分析
    15篇MyBatis-Plus系列集合篇「值得收藏学习」
    SpringBoot Starter 分析及编写自己的Starter
    070:mapboxGL加载含有shp文件的zip,显示图形
    新授粉方式的花授粉算法-附代码
    全栈开发实战|Spring Boot文件上传与下载
    Spring Boot 框架学习笔记(七)整合Quartz调度框架
    使用技巧:直接调用规则引擎
  • 原文地址:https://blog.csdn.net/weixin_45947938/article/details/125146204