如何删除jsp/java中的cookies

新手上路,请多包涵

这是我设置新 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 值。帮助将不胜感激!

原文由 user918477 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 517
2 个回答

我遇到了与此类似的问题,即使将 max age 设置为 0 并将值设置为“”,cookie 仍保留该值。

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

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

我希望这有帮助。

原文由 kei23th 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题