011 Cookies and Session

Cookies


步骤:
1. 创建Cookie对象, 绑定数据
  new Cookie(String name, String value)
2. 发送Cookie对象.
  response.addCookie(Cookie cookie)
3. 获取Cookie, 拿到数据.
  Cookie[]  request.getCookies()
  • 原理


    image.png

cookie细节:

  • 一次可以发送多个cookie? Y
  • cookie保存时间?
    1. 关闭浏览器
    2. 持久化存储
      setMaxAge(int seconds): seconds:
      1. 正数: 讲cookie数据写到硬盘的文件中,持久化存储.cookie存活时间
      2. 负数: 默认值.
      3. 0: 删除cookie信息.
  • cookie中文? Y
  • cookie获取范围多大?
    1. 默认情况下不能共享. setPath(String path): 默认设置当前的虚拟目录.
    2. 不同服务器见cookie共享:

    setDomain(String path) : 如果设置一级域名相同, 那么多个服务器间cookie可以共享.

特点和作用
  1. cookie存储在客户端.
  2. 浏览器对于单个cookie大小有限制, 对同一个域名下的总cookie数量有限制.
  • 作用:
    1. 存储少量不敏感的数据
    2. 不登录情况下, 完成服务器对客户端的身份识别.

Session


在一次会话的多次请求间共享数据.

  • Session的实现依赖于Cookie.

快速入门

        //使用session共享数据
        //1.获取session
        HttpSession session = request.getSession();
        //2.存储数据
        session.setAttribute("msg","hello");

        //使用session获取数据
        //1. 获取session
        HttpSession session = request.getSession();
        //2.获取数据
        Object msg = session.getAttribute("msg");
        System.out.println(msg);

Other:

  1. 客户端关闭后, 服务器不关闭, 是一个吗?
    默认不是. 可以使用Cookie设置Session的JSESSINONID和session.getID(), 并通过Cookie的存活时间来使得Session在服务器关闭时保证是同一个.

  2. 客户端不关闭, 服务器关闭, 两次获取的Session是同一个吗?

    • 不是同一个. //使用session获取数据
      //1. 获取session
      HttpSession session = request.getSession();
      //2.获取数据
      Object msg = session.getAttribute("msg");
      System.out.println(msg);
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容