使用HttpServletRequest创建的JSESSIONID cookie的java设置路径。getSession(真)
我正在使用HttpServletRequest在web应用程序的一个servlet中创建会话。getSession(true),它还创建cookie JSSessionID。我想更改与此cookie关联的路径。我试图通过setPath方法来实现这一点,但它不起作用。我正在使用tomcat6。提前谢谢。下面是我正在使用的代码
HttpSession session = httpRequest.getSession(true);
Cookie[] cookies = httpRequest.getCookies();
if(cookies != null) {
for (Cookie c : cookies)
{
if(c.getName().equals("JSESSIONID"))
{
c.setPath("somepath");
}
}
}
# 1 楼答案
您已更改cookie路径,但未将修改后的cookie附加到响应。因此,在客户端,这种变化永远不会被识别
修改后将修改后的cookie添加到响应中,如下
httpResponse.addCookie(c)
请尝试以下代码:
但是,它不会删除具有旧路径的现有cookie,而是使用新路径创建新cookie
不幸的是,我无法找到删除现有cookie的方法。我试图通过将
maxAge
设置为-1
来删除旧cookie,但没有成功。以下是我迄今为止尝试过的代码:有两个不同的cookie没有什么大问题。因此,如果您对两个cookie感到满意,可以使用第一个代码段