我有一个名为myCookie
的cookie,其中包含一个哈希值。该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,在会话结束时过期,具有正确的值,并且路径为JSP文档。
如果我执行以下操作:
myCookie.setValue("my new value");
myCookie.setPath(myCookie.getPath());
myCookie.setMaxAge(myCookie.getMaxAge());
response.addCookies(myCookie);
同样的事情发生了。我得到了两个名字相同但属性不同的cookie。
一个Cookie对象不能保留它检索时的属性吗?我该如何更新这个cookie?
注意:我不想修改路径或过期日期。我只想更新已设置cookie的值。