Cookie.setMaxAge(Integer.MAX_VALUE) 是怎么回事?
setMaxAge 应该控制 cookie 的最大期限,因此,如果我的意图是从字面上设置可能的最大期限,那么合乎逻辑的做法是:
cookie.setMaxAge(Integer.MAX_VALUE);
然而,这会导致 cookie HTTP 标头中根本没有 Expires
,我'我正在测试它在 WebSphere 7 上。将其设置为以秒为单位的 1 年之类的值就可以了。
为什么会发生这种情况?
聚苯乙烯 刚刚在 Tomcat7 上进行了测试 - Integer.MAX_VALUE 结果为 Max-Age=2147483647; Expires=Wed, 06-Mar-2080 21:30:32 GMT,所以肯定是 WebSphere 出了问题。
setMaxAge is supposed to control the maximum age of a cookie, so if my intention is to literally set the maximum age possible the logical thing would be doing:
cookie.setMaxAge(Integer.MAX_VALUE);
However this results in no Expires
in cookie HTTP header at all, I'm testing it on a WebSphere 7. Setting it to something like 1 year measured in seconds works fine.
Why is that happening?
PS
Have just tested on Tomcat7 - Integer.MAX_VALUE results in Max-Age=2147483647; Expires=Wed, 06-Mar-2080 21:30:32 GMT
, so it must be something wrong with WebSphere.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
http://www-01.ibm.com/support 中描述了问题/docview.wss?uid=swg1PM34869。
原因是一种千年问题:WAS7 将 cookies 日期写为 YY,WAS6 将 cookie 日期写为 YYYY
Problem is described in http://www-01.ibm.com/support/docview.wss?uid=swg1PM34869.
Cause is a kind of millenium problem: WAS7 writes cookies date as YY, WAS6 as YYYY