Java中的Cookie最大年龄

时间:2014-05-13 11:22:56

标签: java cookies

这有什么区别:

cookie.setMaxAge(0);

和这个

cookie.setMaxAge(-1);

首先删除它吗?

4 个答案:

答案 0 :(得分:4)

假设我们正在谈论javax.servlet.http.Cookie

这是Javadoc所说的

<强> setMaxAge public void setMaxAge(int expiry)

  

设置此Cookie的最大年龄(以秒为单位)。

     
    

正值     表示cookie将在很多秒后过期     通过。请注意,该值是cookie的最大年龄     到期,而不是cookie的当前年龄。

  
     

负值表示cookie未持久存储   将在Web浏览器退出时删除。

     
    

零值导致     要删除的cookie。

  

答案 1 :(得分:3)

  

负值表示cookie未持久存储   将在Web浏览器退出时删除。零值导致   要删除的cookie。

http://docs.oracle.com/javaee/6/api/javax/servlet/http/Cookie.html#setMaxAge%28int%29

答案 2 :(得分:1)

来自RFC 6265

  

如果delta-seconds小于或等于零(0),则设为到期时间      是最早可表示的日期和时间。否则,让      到期时间是当前日期和时间加上delta-seconds秒。

因此,两者都会在兼容的用户代理上尽快过期。

但是,在实践中,负值意味着会话cookie。

答案 3 :(得分:1)

cookie.setMaxAge(0)会立即删除cookie。

cookie.setMaxAge(-1)将保留cookie一段时间,并在浏览器退出时删除cookie。

有关相关信息,请参阅API Documentation