会话技术 cookie 和 Session(1)

Cookie  
  Cookie 属于客户端会话技术,它是服务器发送给浏览器的小段文本信息,存储在客户端浏览器的内存中或硬盘上。当浏览器保存了Cookie 后,每次访问服务器,都会在HTTP请求头中将这个Cookie 回传给服务器

Cookie 的分类 
Cookie分为两种 
  1.会话级别Cookie (默认):Cookie 保存到浏览器的内存中,浏览器关闭则Cookie 失效。 
  2.持久的Cookie :Cookie 以文本文件的形式保存到硬盘上。 
Cookle 的工作流程 
 Cookie 是基于HTTP协议实现的,工作流程如下。 
  1.客户端浏览器访问服务器时,服务器通过在HTTP响应中增加SetCookie 字段,将数据信息发送给浏览器 
  2.浏览器将Cookie 保存在内存中或硬盘上 
  3.再次请求该服务器时,浏览器通过在HTTP请求消息中增加Cookie 请求头字段,将Cookie 回传给Web服务器服务 器根据Cookie 信息跟踪客户端的状态。

Cookie是一段不超过4KB的小型文本数据,由一个名称(Name)、一个值(Value)和其它几个用于控制Cookie有效期、安全性、使用范围的可选属性组成。其中 

通过 Servlet 设置 Cookie 包括三个步骤:

  1.  创建一个 Cookie 对象([ ] ( ) = , " / ? @ : ;)这里面红色都不要用
    Cookie cookie = new Cookie("key","value");
  2. 设置最大生存周期,默认是-1表示该cookie保留到浏览器关闭为止 
    //保留时长24h
    cookie.setMaxAge(60*60*24);
  3. 发送 Cookie 到 HTTP 响应头
    response.addCookie(cookie);

     常用方法:

    cookie.getName() //获取cookie的名字
    
    cookie.getValue() //获取cookie中保存的值
    
    cookie.setValue() //设置/修改cookie中保存的值(没有setName方法,因为cookie的名字无法修改)
    
    cookie.setMaxAge() //设置cookie的最大生存时间
        举例:添加cookie (一个cookie只能标识一种信息,所以至少要有name和value)
Cookie c = new Cookie("username","ww");// 新建一个Cookie对象
c.setMaxAge(24*60*60);                    // 设置过期时间1天,以秒为单位
response.addCookie(c);                    // 保存cookie到客户端

删除cookie

Cookie cookie = new Cookie("username","lis");// 新建Cookie
cookie.setMaxAge(0);                           // 设置生命周期为0,表示将要删除
response.addCookie(cookie);                    // 执行添加后就从response里删除了

修改cookie

Cookie cookie = new Cookie("username","zs");// 新建Cookie
cookie.setMaxAge(24*60*60);                    // 设置生命周期1day
response.addCookie(cookie);                    // 执行添加后就从response里覆盖修改了

 删除和修改 都只需要新建一个value不一样的同名Cookie,但是删除需要多设置一个maxAge。除开新建的Cookie的value、maxAge,其余的都得一样,不然不起作用,不会覆盖。完整的案例可以参考菜鸟教程的。

创作不易,先赞后看

posted @ 2022-07-31 23:16  Aons谦  阅读(46)  评论(0编辑  收藏  举报