JAVA中Cookie MaxAge属性及其使用

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。

特别说明:尊重作者的劳动成果,转载请注明出处哦~~~http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp98

时间: 2024-11-10 05:18:15

JAVA中Cookie MaxAge属性及其使用的相关文章

老生常谈java中cookie的使用_java

1 什么是cookie 浏览器与WEB服务器之间是使用HTTP协议进行通信的,当某个用户发出页面请求时,WEB服务器只是简单的进行响应,然后就关闭与该用户的连接.因此当一个请求发送到WEB服务器时,无论其是否是第一次来访,服务器都会把它当作第一次来对待,这样的不好之处可想而知.为了弥补这个缺陷,Netscape开发出了cookie这个有效的工具来保存某个用户的识别信息,因此人们昵称为"小甜饼".cookies是一种WEB服务器通过浏览器在访问者的硬盘上存储信息的手段:Netscape

Java中Cookie和Session的那些事儿_java

Cookie和Session都是为了保持用户的访问状态,一方面为了方便业务实现,另一方面为了简化服务端的程序设计,提高访问性能.Cookie是客户端(也就是浏览器端)的技术,设置了Cookie之后,每次访问服务端,请求中都会带上Cookie:Session是服务端技术,在服务端存储用户的访问信息. 使用Cookie传递信息,随着Cookie个数增多和访问量增大,它占用的带宽会越来越大:使用Session保存信息,最大的弱点就是不容易在多台服务器之间共享. 1 Cookie 通俗地讲,当用户使用H

在Java中获取系统属性

在Java中获取系统属性 大庆油田有限责任公司 苏洋  01-5-22 上午 11:12:51 -------------------------------------------------------------------------------- Java语言以其面向对象.跨平台.可移植性好.安全性高等优点,受到众多编程人员的青睐,越来越多的人将其作为应用软件开发语言的首选. 在Java应用程序运行时,特别是需要在跨平台工作环境下运行时,需要确定操作系统类型.用户JDK版本和用户工作目

java对象转化-java中一个对象的属性可以有多少种

问题描述 java中一个对象的属性可以有多少种 java中一个对象的属性可以有多少种一个方法算是一个对象的行为,那么也就是它的对象了,是可以有无数种,还是有限制呢 解决方案 在程序代码中是没有限制,只能说性能还有需求 解决方案二: 在程序代码中是没有限制,只能说性能还有需求 解决方案三: 对象的属性没有限制

在Java中什么称为属性

问题描述 各位朋友大家好,在这里我想问一下一个小问题:在Java中什么是属性? 解决方案 解决方案二:哈哈,不知道,大概是有get/set方法的,就称为属性吧...解决方案三:在类或者方法中定义的字段就是属性.这个也不好说.解决方案四:面向对象是为了描述现实世界的,显示世界的事物,有属性,有行为.比如:人,属性有:一个人有身高,体重,年龄,什么智力,帅气程度,人:会写代码,会泡妞,会开车,都是行为.楼主看一下书吧.解决方案五:一般就是成员变量也就面向对象才会有用属性这种概念吧解决方案六:类里面的

请问:java中,运用属性文件的方法怎么把mysql加载到memcached中?谢谢!

问题描述 请问:java中,运用属性文件的方法怎么把mysql加载到memcached中?谢谢! 请问:运用属性文件的方法怎么把mysql加载到memcached中?谢谢! 解决方案 http://blog.csdn.net/jiedushi/article/details/6176940

java中cookie操作详细

1.设置Cookie  代码如下  Cookie cookie = new Cookie("key", "value"); cookie.setMaxAge(60);   设置60秒生存期,如果设置为负值的话,则为浏览器进程Cookie(内存中保存),关闭浏览器就失效.  代码如下 cookie.setPath("/test/test2");   设置Cookie路径,不设置的话为当前路径(对于Servlet来说为request.getConte

JAVA中的ResultSet属性分析

1.如何计算出来所查询出来的记录的总个数呢? int i=0; while(rs.next()){ i++; } System.out.println(String.valueOf(i)); 所以如果说在分页中就可以这样判断一次提取出来50条,然后判断一下这个变量是否为50.如果为则表示可能会还有记录. 2.判断所查询的记录是否为空(就是说到底有没有合符条件的记录) if(rs.next()){ System.out.print("have"); }else{ System.out.p

基于java中cookie和session的比较_java

cookie和session的比较 一.对于cookie: ①cookie是创建于服务器端 ②cookie保存在浏览器端 ③cookie的生命周期可以通过cookie.setMaxAge(2000);来设置,如果没有设置setMaxAge, 则cookie的生命周期当浏览器关闭的时候,就消亡了 ④cookie可以被多个同类型的浏览器共享  可以把cookie想象成一张表 比较: ①存在的位置: cookie 存在于客户端,临时文件夹中 session:存在于服务器的内存中,一个session域对