加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

day64:cookie生存时间--setMaxAge方法--面试常考-

(2017-03-16 10:36:10)
知识点1:setMaxAge(int seconds)
1、该方法用于设置cookie的生存时间,传入的参数表示生存时间,是int型的秒数值

知识点2:seconds参数的讲究
1、seconds<0
例如:cookie.setMaxAge(-2);

含义:设置负数的秒值,等同于--添加cookie时没有调用该方法,则浏览器默认将cookie保存在内存里,当浏览器关闭时,cookie从内存中释放(没有了)。
注:这种情况下,只要浏览器不关,cookie就会一直存在

2、seconds=0
例如:cookie.setMaxAge(0);

含义:这种设置用于删除同名的cookie,在servlet中创建一个与已存在的cookie同名的cookie,设置该cookie生存时间为0,将该cookie添加进去,将覆盖原cookie,但因该cookie生存时间为0,所以会马上消失,起到了删除特定cookie的作用。

举例:
package web;
......
 public void service(HttpServletRequest request,
HttpServletResponse response)
   throws ServletException, IOException {
  
  response.setContentType("text/html;charset=utf-8");
  PrintWriter out = response.getWriter();

  //创建一个叫"siki"的cookie
  Cookie c0 = new Cookie("siki","ds");

  //又创建一个叫"siki"的cookie,她将覆盖上面的cookie
  Cookie c = new Cookie("siki",URLEncoder.encode("式","utf-8"));

  //设置新"sike"的生存时间为0
  c.setMaxAge(0);

  //创建一个名叫"hokudokomoya"的Cookie
  Cookie c1 = new Cookie("hokudokomoya",URLEncoder.encode("黑桐干也","utf-8"));
  
  //从响应对象将该Cookie发给浏览器(以setCookie消息头发送)
  response.addCookie(c);
  response.addCookie(c1);
  
  out.close();
 }
}
操作:浏览器访问该servlet,如图,访问成功
http://s8/mw690/0069tu18zy79xMJ6RHVd7&690

查找servlet发过来的cookie,发现只有名叫"hokudokomoya"的cookie
3、seconds>0--表示将cookie在硬盘上存放seconds秒
例:cookie.setMaxAge(120);

含义:该cookie将在硬盘中保存120秒,期间不管浏览器有没有关闭,该cookie都存在,但过了120秒后,该cookie将消失。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有