美文网首页
011 Cookies and Session

011 Cookies and Session

作者: 你挺ne呀 | 来源:发表于2021-04-05 23:14 被阅读0次

    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);

    相关文章

      网友评论

          本文标题:011 Cookies and Session

          本文链接:https://www.haomeiwen.com/subject/hsptkltx.html