出处:http://www.iteye.com

转自:http://hi.baidu.com/suofang/item/06ea24ba63a7dceb4fc7fd17

API文档中对MaxAge的描述:

public void setMaxAge(int expiry)

Sets the maximum age of the cookie in seconds.

A positive valueindicates that the cookie will expire after that many seconds have passed. Note that the value is the maximum age when the cookie will expire, not the cookie’s current age.

A negative value means that the cookie is not stored persistently and will be deleted when the Web browser exits. A zero value causes the cookie to be deleted.

Parameters: expiry – an integer specifying the maximum age of the cookie in seconds; if negative, means the cookie is not stored; if zero, deletes the cookie

(maxAge 可以为正数,表示此cookie从创建到过期所能存在的时间,以秒为单位,此cookie会存储到客户端电脑,以cookie文件形式保存,不论关闭浏览器或关闭电脑,直到时间到才会过期。

可以为负数,表示此cookie只是存储在浏览器内存里,只要关闭浏览器,此cookie就会消失。maxAge默认值为-1。

还可以为0,表示从客户端电脑或浏览器内存中删除此cookie。)

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

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

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

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

在所遇到的项目中,Action里创建了一个cookie,maxAge为-1,紧接着在另一个方法中要删除cookie,就可以通过创建一个同名同域的cookie,然后将maxAge设置为0,再通过response的addCookie方法对客户端的cookie文件或浏览器内存中的cookie进行删除。

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

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

Cookie cookies[] = request.getCookies();

if (cookies != null)

{

for (int i = 0; i < cookies.length; i++)

{

if (cookies[i].getName().equalsIgnoreCase(cookieName))

{

return (Cookie) cookies[i].clone();

}

}

注意,这表示从request请求里获得cookie文件内容,只能获得name和value。

【转】JAVA中Cookie MaxAge属性及其使用相关推荐

  1. JAVA中Cookie MaxAge属性及其使用

    API文档中对MaxAge的描述: public void setMaxAge(int expiry) Sets the maximum age of the cookie in seconds. A ...

  2. java中Cookie详细介绍

    Cookie是由服务器端生成,发送给User-Agent(一般是浏览器),浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该Cookie给服务器(前提是 ...

  3. java 中cookie是什么_什么是cookie?

    为什么要用Cookie 浏览器与WEB服务器之间是使用HTTP协议进行通讯的,而HTTP协议本身是无状态的.什么是无状态呢,即服务器无法判断浏览器身份,即无论浏览器是否已经访问过,服务器都会当成第一次 ...

  4. 在java中为什么_属性绑定到类型_方法绑定到对象_13. Java基础之类型信息(RTTI和反射)...

    一. Java反射机制介绍 Java 反射机制.通俗来讲呢,就是在运行状态中,我们可以根据"类的部分已经的信息"来还原"类的全部的信息".这里"类的部 ...

  5. java中能对属性封装吗_JAVA中的封装

    JAVA中的封装性就是指对外部不可见. 封装之后的属性和方法对象是不能直接访问的. 类中的全部属性都必须封装,封装之后的属性必须通过setter和getter方法设置和取得. package pack ...

  6. 如何在Java中获取系统属性?

    The System class in Java maintains a set of properties. These properties are stored in the form of k ...

  7. 在Java中获取系统属性

    Java语言以其面向对象.跨平台.可移植性好.安全性高等优点,受到众多编程人员的青睐,越来越多的人将其作为应用软件开发语言的首选. 在Java应用程序运行时,特别是需要在跨平台工作环境下运行时,需要确 ...

  8. 关于java中创建对象时属性的初始化过程

    java是一种面向对象的编程语言,那么了解创建对象时程序会怎么执行就变得尤为重要,下面我们就一起看看在我们使用new关键字创建对象时是怎么对属性初始化的: 下面是一个Person类,其中有成员变量ag ...

  9. java属性定义_在java中定义抽象属性

    抽象关键字通常应用于类和方法,以便将某些行为的实现委托给子类. Java不支持抽象属性,如果您试图将类属性标记为抽象,则会得到编译错误. 在本教程中,将介绍两种定义抽象属性的方法,这些属性由子类设置, ...

最新文章

  1. Java Script 第四节课 Java Script的隐式转换
  2. 吐血整理:手拿几个大厂offer的秘密武器!
  3. HSmartWindowControl 之 摄像头实时显示( 使用 WPF )
  4. python画直方图成绩分析-使用Python进行描述性统计
  5. FatMouse and Cheese
  6. centos7下安全访问远程服务器
  7. 启动SecureCRT出现ImportError: No module named _sysconfigdata_nd
  8. 程序猿的数学:scratch篇
  9. 高级着色语言HLSL入门(1)
  10. Ulipad中设置自定义模块(module)路径的方法(图)
  11. JAVA105字符是什么_什么是Java字符串实习?
  12. 爬虫入门—网页信息爬取
  13. 程序员简洁简历模板分享
  14. Windows系统遇到不能打开要写入的文件怎么办?----重启电脑即可
  15. 获取网站icon图标
  16. October CMS Vs Wordpress
  17. python的spider程序下载_Python Spider
  18. 【Lesson 4】 和弦的大小增减属
  19. 漫步者蓝牙自动断开_情人节礼物 就连宋轶都推荐的高颜值真无线蓝牙耳机
  20. Spring----Spring入门

热门文章

  1. No module named ‘pip._internal.vcs.git
  2. 如有定义int a=128; 则输出语句printf(“%o”,a);的输出结果为?。
  3. 读《互联网创业的四种玩家》有感
  4. 爱立信(中国)有限公司
  5. 便宜的数据库_您会为了便宜的娱乐而放弃多少数据
  6. 如何把单词批量导入金山词霸生词本?
  7. JSOI 2015 送礼物
  8. VR线上智能园区3D可视化电子沙盘工厂大数据平台
  9. pandas下-综合练习
  10. GOOGLE Chrome谷歌翻译失效(用不了/打不开)的解决方法