`
wenjinglian
  • 浏览: 806149 次
  • 性别: Icon_minigender_1
  • 来自: 株洲->深圳
社区版块
存档分类
最新评论

java Cookie的有效期

阅读更多

Cookie的有效期

Cookie的maxAge决定着Cookie的有效期,单位为秒(Second)。Cookie中通过getMaxAge()方法与setMaxAge(int maxAge)方法来读写maxAge属性。

如果maxAge属性为正数,则表示该Cookie会在maxAge秒之后自动失效。浏览器会将maxAge为正数的Cookie持久化,即写到对应的Cookie文件中。无论客户关闭了浏览器还是电脑,只要还在maxAge秒之前,登录网站时该Cookie仍然有效。下面代码中的Cookie信息将永远有效。

  1. Cookie cookie = new Cookie("username""helloweenvsfei"); 
    // 新建Cookie  
  2. cookie.setMaxAge(Integer.MAX_VALUE);            // 
    设置生命周期为MAX_VALUE
     
  3. response.addCookie(cookie);                     // 
    输出到客户端
     

如果maxAge为负数,则表示该Cookie仅在本浏览器窗口以及本窗口打开的子窗口内有效,关闭窗口后该Cookie即失效。maxAge为负数的Cookie,为临时性Cookie,不会被持久化,不会被写到Cookie文件中。Cookie信息保存在浏览器内存中,因此关闭浏览器该Cookie就消失了。Cookie默认的maxAge值为-1。

如果maxAge为0,则表示删除该Cookie。Cookie机制没有提供删除Cookie的方法,因此通过设置该Cookie即时失效实现删除Cookie的效果。失效的Cookie会被浏览器从Cookie文件或者内存中删除,例如:

  1. Cookie cookie = new Cookie("username""helloweenvsfei");  
    // 新建Cookie  
  2. cookie.setMaxAge(0);                            // 
    设置生命周期为0,不能为负数
     
  3. response.addCookie(cookie);                     // 
    必须执行这一句
     

response对象提供的Cookie操作方法只有一个添加操作add(Cookie cookie)。要想修改Cookie只能使用一个同名的Cookie来覆盖原来的Cookie,达到修改的目的。删除时只需要把maxAge修改为0即可。

注意:从客户端读取Cookie时,包括maxAge在内的其他属性都是不可读的,也不会被提交。浏览器提交Cookie时只会提交name与value属性。maxAge属性只被浏览器用来判断Cookie是否过期。

 

Cookie的修改、删除

Cookie并不提供修改、删除操作。如果要修改某个Cookie,只需要新建一个同名的Cookie,并添加到response中覆盖原来的Cookie。

如果要删除某个Cookie,只需要新建一个同名的Cookie,并将maxAge设置为0,并添加到response中覆盖原来的Cookie。注意是0而不是负数。负数代表其他的意义。读者可以通过上例的程序进行验证,设置不同的属性。

注意:修改、删除Cookie时,新建的Cookie除value、maxAge之外的所有属性,例如name、path、domain等,都要与原Cookie完全一样。否则,浏览器将视为两个不同的Cookie不予覆盖,导致修改、删除失败。

 

分享到:
评论

相关推荐

    java实训题库(盗版必究)

    如果不设置有效期,这个cookie就是会话性的cookie,会话结束后cookie就被删除。如果不设置有效路径,那么cookie只在当前(创建cookie)路径有效。 3 servlet调用方式几种方法 答:通过JSP提交进行调用,可以通过...

    javascript cookie的基本操作(添加和删除)

    javascript cookie的基本操作(添加和删除) 1.添加一个cookie:response.addCookie(Cookie c); 2.获取cookie集合: request.getCookies(); 3.新建一个cookie: new Cookie(String name,String value...cookie有效期的

    使用javascript控制cookie显示和隐藏背景图

    我们使用javascript来控制背景图片的显示和隐藏,当点击关闭按钮时,控制CSS使页面不加载背景图,同时记录COOKIE相关参数,并设置cookie的有效期,那么在cookie有效期内刷新页面,是不会再加载背景图的,如果cookie...

    JwtUtils.java

    也就是说,一旦JWT签发,在有效期内将会一直有效。 JWT本身包含认证信息,token是经过base64编码,所以可以解码,因此token加密前的对象不应该包含敏感信息,一旦信息泄露,任何人都可以获得令牌的所有权限。为了...

    怎么记住用户名和密码登录期限

    里面详细记述了如何保持用户登录状态 记住用户名和密码多长时间 非常好用

    毕业设计:ASP+ACCESS网上音乐网站(源代码)

    6 浏览者可以随时上网查看浏览本站论坛,发贴和回贴,可以提供用户注册,用户登录,登录时并提供cookie有效期,方便经常登录用户,注册用户登录后可以随时发贴和回帖。 7 管理员可以后台管理本站的新闻、歌曲、邮购...

    Privacy Crawler-crx插件

    Privacy Crawler递归地跟踪页面上的链接,并生成报告,显示-什么cookie首先出现在什么页面上,以及它们的域,有效期和价值; -访问了哪些Java脚本,可以用来对浏览器进行指纹识别。 **警告和建议**当开始抓取时,此...

    JavaScript完全自学宝典 源代码

    11.3.html JavaScript修改cookie的保存有效期。 11.4.html 保存数据到userData。 11.5.html JavaScript获取userData的数据。 11.6.html 使用cookie登录。 welcome.html 使用cookie登录成功的欢迎...

    这是一篇有关 在线聊天系统 的系统报告书

    本文所介绍的网络聊天系统是基于开放的web服务器应用程序开发设计的,其主要特性是能动态完成信息的传递,且具有高效的交互性,更有效的处理客户请求, 且具有更简单, 更方便的数据库访问方法, 易于维护和更新....

    xUtils3:Android orm,位图,http,视图注入。

    xUtils3简介 ... 1. orm :高效稳定的orm工具,通过http接口实现时更方便的支持cookie和...支持cookie(实现域,路径,有效期等特性) 支持缓存(实现了Cache-Control,Last-Modified,ETag等特性,缓存内容过多时使用过期

    《javaScrip开发技术大全》源代码

    • sample11.htm 嵌套函数中变量的有效范围 • sample12.htm 变量没有语句块的限制 • sample13.htm 常量的使用 第6章(\代码\第06章) • sample01.htm 先使用后递增 • sample02...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    除在保密期内的保密论文和在技术保护期限内的论文外,允许论文被查阅和借阅,可以公布(包括以电子信息形式刊登)论文的全部内容或中、英文摘要等部分内容。论文的公布(包括以电子信息形式刊登)授权东南大学研究生...

    ZendFramework中文文档

    1. Introduction to Zend Framework 1.1. 概述 1.2. 安装 2. Zend_Acl 2.1. 简介 2.1.1. 关于资源(Resource) 2.1.2. 关于角色(Role) 2.1.3. 创建访问控制列表(ACL) ...2.1.5. 定义访问控制 ...

    asp.net知识库

    技术基础 New Folder 多样式星期名字转换 [Design, C#] .NET关于string转换的一个小Bug Regular Expressions 完整的在.net后台执行javascript脚本集合 ASP.NET 中的正则表达式 常用的匹配正则表达式和实例 ...

Global site tag (gtag.js) - Google Analytics