有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何删除域下不同路径的所有cookie

Cookie[]cookies=请求。getCookies()

for(Cookie cookie:cookies)
{
cookie.setMaxAge(0);
cookie.setValue(null);
cookie.setPath("/");
response.addCookie(cookie); 
}

我用这段代码从浏览器中删除了所有cookie,一些cookie的路径(“/”)设置为空,它也会过期,但一些cookie的路径(/xyz)不会得到更改

当用户从我的应用程序注销时,请帮助我一次性删除浏览器中的所有cookie


共 (1) 个答案

  1. # 1 楼答案

    这可能对你有帮助

    import javax.servlet.http.Cookie;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class CookiesUtil {
    
      public static final int COOKIE_DEFAULT_AGE = 30 * 24 * 60 * 60; // 30天
      private static final String COOKIE_DOMAIN = ".domain.com";
      private static final String COOKIE_PATH = "/";
    
      public static void removeCookie(String cookieName, HttpServletResponse response) {
        removeCookie(cookieName, COOKIE_DOMAIN, COOKIE_PATH, response);
      }
    
      /**
       * remove cookie
       * @param cookieName
       * @param domain
       * @param response
       */
      private static void removeCookie(String cookieName, String domain,
          String path, HttpServletResponse response) {
        Cookie cookie = new Cookie(cookieName, "");
        cookie.setPath(path);
        cookie.setDomain(domain);
        cookie.setMaxAge(0);
        response.addCookie(cookie);
      }
    }