1. 默认情况下,cookie数据保存到内存里,当浏览器关闭后,Cookie数据被销毁

2. 持久化存储:
  setMaxAge(int seconds)
    1. 正数:将Cookie数据写到硬盘的文件中,持久化存储。并指定cookie存活时间,时间到后,cookie文件自动失效。

    2. 负数:默认值,即关闭浏览器后,cookie即失效

    3. 零:删除cookie信息

      setMaxAge为正数时的情况如下:

   重启浏览器 不关闭浏览器
cookie时间未到 能访问cookie 能访问cookie
cookie时间到 不能访问cookie 能访问cookie

代码如下:

第一个servlet【比如是CookieDemo01】中的代码如下:

 import javax.servlet.http.Cookie;
//--------省略若干代码-----------
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//1.创建Cookie对象,绑定数据【name是"msg",value是"hello"】
Cookie c = new Cookie("msg", "hello");
//2.设置Cookie存活时间
c.setMaxAge(300);//(1).将Cookie持久化到硬盘,300秒后会自动删除
//c.setMaxAge(-1);//(2).默认值,一次浏览器会话
//c.setMaxAge(0);//(3).删除Cookie
//3.发送Cookie对象【只有发送Cookie的浏览器可以获取Cookie】
response.addCookie(c);
}
//--------省略若干代码-----------

第二个servlet【比如是CookieDemo02】中的代码如下:

 import javax.servlet.http.Cookie;
//--------省略若干代码-----------
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//3.获取Cookie
Cookie[] cs = request.getCookies();
//4.遍历Cookies
if(cs!=null){
for(Cookie c:cs){
String name = c.getName();
String value = c.getValue();
System.out.println(name+":"+value);
}
}
}
//--------省略若干代码-----------

验证:

打开Tomcat服务器,先运行第一个servlet【创建Cookie,声明Cookie生命周期,发送Cookie】,再运行第二个servlet【获取并遍历Cookie】,发现控制台上输出Cookie的name和value【即msg:hello】。

代码说明:

第一个servlet中:

(1).如果【c.setMaxAge(300)】,cookie会持久化到硬盘300秒,在这300秒内,关闭浏览器后再打开浏览器,也能访问到cookie。如果一直不关闭浏览器,300秒后也能访问。

(2).如果【c.setMaxAge(-1)】,只要浏览器不关闭,cookie不会失效。

(3).如果【c.setMaxAge(0)】,删除cookie信息。

说明:

高亮说明

日期:2019-03-07  08:39:31

Cookie的存活时间的更多相关文章

  1. 设置Cookie最大存活时间

    Cookie和Session都是由Tomcat自动创建的对象,Cookie的默认最大存活时间是 -1 ,即当浏览器关闭时Cookie就消失了:Session的默认最大存活时间是30分钟. 使用Sess ...

  2. 采用Asp.Net的Forms身份验证时,持久Cookie的过期时间会自动扩展

    原文:http://www.cnblogs.com/sanshi/archive/2012/06/22/2558476.html 若是持久Cookie,Cookie的有效期Expiration属性有当 ...

  3. 采用Asp.Net的Forms身份验证时,非持久Cookie的过期时间会自动扩展

    问题描述 之前没有使用Forms身份验证时,如果在登陆过程中把HttpOnly的Cookie过期时间设为半个小时,总会收到很多用户的抱怨,说登陆一会就过期了. 所以总是会把Cookie过期时间设的长一 ...

  4. 设置cookie的保存时间 下一篇

    设置cookie的保存时间,通过cookie的expires性质指定一个终止时间就可以了.也就是说,你在设置cookie的时候,你的cookie字串要像下面这样组合: var d= new Date( ...

  5. 怎样设置cookie的到期时间

    1. 使用Cookie的: Expires 属性. 它可以设置cookie的过期时间. 下面的代码表示id这条cookie的过期时间是2015年10月21日早上7点28分; Set-Cookie: i ...

  6. rabbitmq设置队列消息存活时间

    public static final int ALIVETIME = 600000; public static final String QUEUE = "hnyz_gs_queue&q ...

  7. SpringCloudStream学习(四)TTL(存活时间)Dead Letter Exchanges(死信交换机)

    TTL(Time-To-Live and Expiration): RabbitMQ既能对队列设置TTL也能对消息设置TTL,消息TTL可以应用于单个队列.一组队列或应用于逐个消息. 如何给消息设置T ...

  8. key存活时间和五个类型通用的一些指令操作

    一.设置key的存活时间 1.失效后 ttl 是 -2,get返回 null : 2.不设置存活时候 ttl 返回是 -1: 二.查找指令和删除指令.重命名key.查看key类型 1.模糊查询 2.严 ...

  9. cookie+session,会话时间设定

    很多Web程序中第一次登录后,在一定时间内(如2个小时)再次访问同一个Web程序时就无需再次登录,而是直接进入程序的主界面(仅限于本机). 实现这个功能关键就是服务端要识别客户的身份.而用Cookie ...

随机推荐

  1. myhome vscode plugins

    ├─ 1194979849.code-snippets-0.1.18├─ adamwalzer.string-converter-0.1.1├─ alefragnani.bookmarks-9.3.0 ...

  2. ID基本操作(在框架内处理文本)5.28

    1.可以直接拖入文档,word,excel,rtf,还可以选中文字,导出文本. 2. 批量把一段文字改为另一段. 还可以改特殊符号.定义范围 . 建立文字后鼠标右键,选择文本框架选项 直接拖动文本框架 ...

  3. 聚合函数count()

    2018-08-12

  4. 原生js手风琴效果

    //js代码 //获取li var list = document.getElementsByTagName("li")[0]; //遍历  排他 for( var i=0;i&l ...

  5. 网络知识梳理--OSI七层网络与TCP/IP五层网络架构及二层/三层网络(转)

     reference:https://www.cnblogs.com/kevingrace/p/5909719.html https://www.cnblogs.com/awkflf11/p/9190 ...

  6. JAVA概率实现--一篇最常见、最通用解决方案

    日常场景:某活动抽奖,控制各等奖的出现概率 比如控制A(中奖率):20%:B(获得优惠券率):30%:C(谢谢参与率):50% 下面以封装好在main()函数里,上代码(记得导入相应的包): publ ...

  7. python day28--json,pickle,hashlib,logging

    一.json格式的限制 1.json格式的key必须是字符串数据类型,如果是数字dumps后会被转为字符串. # dic = {1:2,3:4} # str_dic = json.dumps(dic) ...

  8. Windows10 VS2017 C++ Json解析(使用jsoncpp库)

    1.项目必须是win32 2.生成的lib_json.lib放到工程目录下 3.incldue的头文件放到工程目录,然后设置工程->属性->配置属性->vc++目录->包含目录 ...

  9. Appium Hybrid混合应用测试——Native切换WebView

    Appium Hybrid混合应用测试过程中,经常需要在Native和WebView之间进行切换: 1.切换至WEBVIEW操作: for cons in driver.contexts: if co ...

  10. idea xml版本修改问题

    STEP 1.选中模块 STEP 2.file---->Project Structure---->Facets---->把相应模块的给删除"-"----> ...