我在从我的servlet代码中删除cookie时遇到问题。鉴于波纹管是我的代码。Java Servlet:Cookie不会被删除
private void clearCookies(HttpServletRequest req, HttpServletResponse resp) {
Cookie[] cookies = req.getCookies();
for (Cookie curCookie : cookies) {
curCookie.setValue(null);
curCookie.setMaxAge(0);
curCookie.setPath("/");
resp.addCookie(curCookie);
}
}
我在这个方法调用后做了一个resp.sendRedirect(url)。然而,并非所有的cookies都会被删除,例如这个cookie永远不会被删除。
Name: reqURI
Content: ../../webapp/index.jsp
Domain: mgt.appserver.com
Path: /
Send for: Any kind of connection
Accessible to script: Yes
Created: Tuesday, November 26, 2013 4:35:19 PM
Expires: When the browsing session ends
有没有人知道我在这里失踪了什么?我读了Java Cookie对象文档,并根据该值0应使cookie被删除。但事实并非如此。我尝试了更多的建议,但都没有成功。我试着用谷歌浏览器和火狐浏览器,所以不能相信这是浏览器的问题。我不知道为什么这样一个通用的东西没有适当的文档记录和Java语言的语言。
此代码解决了问题,我认为创建一个全新的cookie并将其添加到响应中解决了问题。路径应该与原始值完全相同。将maxAge设置为0也很重要。 Cookie cookie = new Cookie(“reqURI”,null); cookie.setPath(“/”); cookie.setMaxAge(0); resp.addCookie(cookie); – SureshAtt