这有什么区别:
cookie.setMaxAge(0);
和这个
cookie.setMaxAge(-1);
首先删除它吗?
答案 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。