【发布时间】:2012-03-09 01:09:19
【问题描述】:
setMaxAge 应该控制 cookie 的最大年龄,所以如果我的意图是从字面上设置最大年龄可能是合乎逻辑的事情:
cookie.setMaxAge(Integer.MAX_VALUE);
但是,这会导致 cookie HTTP 标头中根本没有 Expires,我正在 WebSphere 7 上对其进行测试。将其设置为 1 年(以秒为单位)可以正常工作。
为什么会这样?
PS
刚刚在Tomcat7上测试过——Integer.MAX_VALUE的结果是Max-Age=2147483647; Expires=Wed, 06-Mar-2080 21:30:32 GMT,所以肯定是WebSphere有问题。
【问题讨论】:
-
是的,那是我的文章。但是里面没有关于 Integer.MAX_VALUE 的内容。
-
快速测试,在 WebSphere 6.1 上按预期工作。我没有可供测试的 WebSphere 7 环境。您是否测试了其他过期值?
-
我刚刚对 WAS 7 进行了快速测试,发现与您所做的相同。具有其他最大年龄的 Cookie 按预期创建,但不适用于最大年龄设置为 Integer.MAX_VALUE 或其他较大值的 Cookie。 (我尝试了一些任意大的值 - 1500000000 有效,但 2000000000 无效。)
-
所以这一定是 WAS 7 中的一个错误。有人想向 IBM 报告吗?将很高兴接受说正在生成 APAR 的答案。
标签: java servlets cookies websphere