当前位置:  开发笔记 > 编程语言 > 正文

来自IE中的servlet的持久性cookie

如何解决《来自IE中的servlet的持久性cookie》经验,为你挑选了1个好方法。

我有一个从servlet生成的cookie,我希望它是持久的 - 也就是说,设置cookie,关闭IE,启动它,仍然能够读取cookie.我正在使用的代码如下:

HttpServletResponse response = 
    (HttpServletResponse) FacesContext.getCurrentInstance()
    .getExternalContext().getResponse();

Cookie cookie = new Cookie("someKey", "someValue");
cookie.setMaxAge(7 * 24 * 60 * 60);
response.addCookie(cookie);

这在firefox中运行良好,但在IE 6/7中,cookie不会在浏览器重启之间保存.我已经检查了我在设置中可以想到的所有内容,但无法弄清楚导致cookie被删除的原因.据我所知,使用正数调用setMaxAge会使cookie持久化.任何想法为什么会出错?

编辑

我已经使用Olaf建议的更多信息技巧验证了cookie是否正在尝试设置为会话cookie,而不是持久性cookie; 最大年龄设置为"会话结束".所以似乎并没有为IE设置最大年龄 - 我已经验证在Firefox中,最大年龄设置正确.我仍然不知道发生了什么.



1> 小智..:

我对Java或servlet一无所知,但IE只会持有一个cookie,如果它有一个Expires日期,设置max-age是不够的,IE会继续把它当作会话cookie.

推荐阅读
php
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有