我有一个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;
}
}
Run Code Online (Sandbox Code Playgroud)
确定需要更新cookie的值后,我执行以下操作来更新它:
myCookie.setValue("my new value");
response.addCookie(myCookie);
Run Code Online (Sandbox Code Playgroud)
检查结果,我现在有两个实例myCookie:原始版本具有正确的到期日期和路径,以及旧的无效值; 以及一个名为"myCookie"的新cookie,它在会话结束时到期,具有正确的值和JSP文档的路径.
如果我做:
myCookie.setValue("my new value");
myCookie.setPath(myCookie.getPath());
myCookie.setMaxAge(myCookie.getMaxAge());
response.addCookies(myCookie);
Run Code Online (Sandbox Code Playgroud)
在同样的事情发生了.我得到两个具有相同名称和不同属性的cookie.
Cookie对象在检索时不会保留属性吗?我该如何更新此cookie?
注意:我不想修改路径或到期日期.我只想更新已设置的cookie的值.