JavaWeb——Cookie

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.在不同的登录情况下,完成服务器对客户端的身份识别
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容