java - 如何删除不同路径的Cookie?

标签 java servlets cookies

我想通过我编写的Java代码删除Cookie,

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

我正在“cookies”对象中获取 cookie 列表,但不是所需的“cam_passport”。 我观察到,当我在 Mozilla 中检查时,这个 Cookie 的 PATH 是不同的。 我在“cookies”对象中获取的 Cookie 列表的路径为“/”。 并且,对于这个“cam_passport”cookie,路径是“/cognos10”。

我需要每次都在一个实例中删除上述 cookie。如何获取与上述不同路径的Cookie?

最佳答案

您需要发送到该路径的重定向,可能还需要发送请求参数。然后,您可以在映射到该路径的 servlet 或过滤器中获取 cookie 并删除它(如有必要,根据请求参数的存在)。最后,如果需要的话,您可以根据请求参数重定向回原始 URL。

将来,如果您需要 Cookie 在整个 Web 应用程序中可用,请在创建 Cookie 时使用 cookie.setPath("/")

关于java - 如何删除不同路径的Cookie?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12278718/

相关文章:

java - Nashorn 类型错误 : Cannot call undefined in <eval>

java - 加入@NamedQuery : Unexpected token ON

java - Android studio 配置路径无效

multithreading - 如何在基于 servlet 的 Web 应用程序中运行后台任务?

node.js - Express.js session 未定义。雷迪斯

java - 测试 LITTLE_ENDIAN 和 BIG_ENDIAN 场景

java - 除了手动之外,还有什么方法可以在 Eclipse IDE 中进行 servlet 映射吗?

java - 在 WebService 之外使用 WebServiceContext

c# - 如何在C#中从服务器端删除cookie

android - Cordova InAppBrowser 并与 webview 共享 cookie