美文网首页JavaWeb
JavaWeb——Cookie

JavaWeb——Cookie

作者: 定格r | 来源:发表于2019-05-30 08:52 被阅读0次

    1.会话技术

    1.会话:一次会话中包含多次请求和响应。

    浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止

    2.功能:在一次会话的范围内的多次请求间,共享数据

    3.方式:

    • 客户端会话技术:Cookie
    • 服务器端会话技术:Session

    2.Cookie:

    1.概念:

    客户端会话技术,将数据保存到客户端

    2.快速入门:

    • 使用步骤:

    1.创建 Cookie对象,绑定数据

    new  Cookie(String name,String value)
    

    2.发送 Cookie 对象

    response.addCookie(Cookie   cookie)
    

    3.获取 Cookie,拿到数据

    Cookie[]   request.getCookies()
    

    例子:

       //获取 Cookie
            Cookie[] cs=request.getCookies();
        //获取数据,遍历 Cookies
             if(cs!=null){
              for (Cookie c:cs) {
                    String name=c.getName();
                    String value=c.getValue();
                  System.out.println(name+":"+value);
                }
            }
    

    3.实现原理:

    image.png

    基于响应头 set-cookie 和请求头 cookie 实现

    4. cookie 细节

    1.一次可不可以发送多个 cookie ?

    可以
    可以创建多个 cookie 对象,使用 response 调用多次 addcookie 方法发送 cookie 即可。

    2.cookie 在浏览器中保存多长时间?

    1.默认情况下,当浏览器关闭后, cookie 数据被销毁

    2.持久化存储

    setMaxAge(int seconds)

    • 正数: 将 cookie 数据写到硬盘的文件中。持久化存储。cookie 存活时间
    • 负数:默认值
    • 零:删除 cookie 信息
    1. cookie 能不能存储中文?
    • 在 Tomcat 8 之前 ,cookie中不能直接存储中文信息
      需要将中文数据转码 ,一般采用 URL 编码(%E3)
    • 在 Tomcat 8 之后,cookie 支持中文版本

    4.cookie 共享问题?

    1.假设在一个 Tomcat 服务器中,部署了多个 web 项目,那么 在这些项目中 cookie 能不能共享?

    • 默认情况下 cookie 不能共享
    • setPath(String path );设置 cookie 的取值范围。默认情况下设置当前虚拟目录

    如果要共享,则可以将 path 设置为 “/”

    2.不同的Tomcat 服务期间 cookie 共享问题?

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

    setDomain(“.baidu.com”),那么 tieba.baidu.com 和 news.baidu.com 中 cookie 可以共享

    5.Cookie 的特点和作用

    特点:

    • 1.cookie 存储数据在客户端浏览器
    • 2.浏览器对于单个 cookie 的大小有限制(4 kb) 以及 对同一域名下的总 cookie 数量也有限制(20个)

    作用:

    • 1.cookie 一般用于存储少量的不太敏感的数据
    • 2.在不同的登录情况下,完成服务器对客户端的身份识别

    相关文章

      网友评论

        本文标题:JavaWeb——Cookie

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