如何删除jsp/java中的cookie



这是我设置新cookie 的代码

Cookie citizen = new Cookie("citizen",email);
citizen.setMaxAge(3600);
response.addCookie(citizen);

现在我用这个代码来破坏cookie

Cookie[] cookies = request.getCookies();
        for(int i = 0; i < cookies.length; i++) {
            if (cookies[i].getName().equals("citizen")) {
             cookies[i].setMaxAge(0);
            response.addCookie(cookies[i]);
}
}

但是,我仍然得到饼干的价值。我们将不胜感激!!

下面的链接可能会对您有所帮助。。

如何从cookie中删除信息?

祝你好运!!!

如果有任何进一步的疑问,请告诉我。。。

我遇到了类似的问题,即使在将最大年龄设置为0并将值设置为"后,cookie仍保留了该值。

我使用firefox查看cookie属性以帮助调试。登录时,servlet调用我的cookie类来设置cookie,cookie路径为"/javawork/"。注销时,JSP页面调用相同的cookie类,通过将最大年龄设置为0来"删除"cookie。但是JSP页面在web应用程序的子文件夹中,所以当我创建一个最大年龄为0的同名cookie时,它创建了一个路径为"/javawork/test_login/"的新cookie。

因此,"新"cookie立即过期,但原来的cookie仍然存在。在我的删除cookie功能中,我需要将"新"cookie的路径设置为"/javawork/",当我将最大年龄设置为0并添加它时,它会更新原始cookie并让我正确注销。

我希望这能有所帮助。

正确的选项是

Cookie cookie = new Cookie("citizen", "citizen");
cookie.setMaxAge(0);
cookie.setValue("");
response.addCookie(cookie);

如果您尝试从请求中获取cookie,然后使用setMaxAge(0)将其添加到响应中,您可以看到cookie没有被删除。

尝试添加此行:

 cookies[i].setMaxAge(0);
 //add this line
 cookies[i].setPath("/");
 response.addCookie(cookies[i]);

这对我有效-

Cookie UIDCookie = new Cookie(COOKIE_KEY, "");
UIDCookie.setMaxAge(0);
UIDCookie.setPath("/");
response.addCookie(qptUIDCookie);

我们可以通过将最大年龄设置为零来删除cookie。例如:

Cookie[] cookies = request.getCookies();
cookies[0].setMaxAge(0);
response.addCookie(cookies[0]);

这里我们只删除第一个cookie

最新更新