【发布时间】:2011-07-02 20:53:03
【问题描述】:
我有一个 cookie,myCookie,它包含一个哈希值。此 cookie 设置为一年后过期,路径为“/”。我需要用新的哈希值更新这个 cookie。当我的 JSP 脚本被加载时,我会像这样检索 cookie:
Cookie[] cookies = request.getCookies();
Cookie myCookie = null;
for (int i = 0; i < cookies.length; i += 1) {
if (cookies[i].getName().equals("myCookie")) {
myCookie = cookies[i];
break;
}
}
确定cookie的值需要更新后,我做如下更新:
myCookie.setValue("my new value");
response.addCookie(myCookie);
检查结果,我现在有两个myCookie 实例:具有正确到期日期和路径的原始版本,以及旧的无效值;以及一个名为“myCookie”的新 cookie,该 cookie 在会话结束时过期,具有正确的值和 JSP 文档的路径。
如果我这样做:
myCookie.setValue("my new value");
myCookie.setPath(myCookie.getPath());
myCookie.setMaxAge(myCookie.getMaxAge());
response.addCookies(myCookie);
同样的事情发生了。我得到了两个具有相同名称和不同属性的 cookie。
Cookie 对象是否不保留检索时的属性?如何更新此 cookie?
注意:我不想修改路径或到期日期。我只想更新已经设置好的cookie的值。
【问题讨论】:
-
@Ralph,这对我有什么帮助?
-
你的域和路径一样吗?