以下代码仅删除cookie值,但cookie本身仍为:
public static void expiryCookie(SlingHttpServletResponse response,
String cookieName, String cookieValue) {
StringBuilder sb = new StringBuilder(cookieName);
sb.append("=");
sb.append(cookieValue);
sb.append("0");
sb.append("0");
sb.append(";path=");
sb.append("/");
sb.append(";domain=");
sb.append(".xyz.com");
if(isSecureCookie()) {
sb.append(";secure");
}
sb.append(";HttpOnly");
response.addHeader("SET-COOKIE", sb.toString());
}
或代码如:
curCookie.setValue(null);
curCookie.setMaxAge(0);
curCookie.setPath("/");
如何完全删除/删除cookie。这将阻止任何其他代码检查此cookie并设置新值。
答案 0 :(得分:0)
通过添加;expires=1 Jan 1970 10:00:00
将Cookie设置为过去的持久性。浏览器会将其删除
答案 1 :(得分:0)
设置maxAge = 0
应该这样做。
public static void deleteCookie(HttpServletResponse httpResponse, String cookieName, String context) {
Cookie cookie = new Cookie(cookieName, "");
cookie.setMaxAge(0);
cookie.setPath(context != null ? context : "/");
httpResponse.addCookie(cookie);
}
来自Servlet 3.1 API文档的Cookie#setMaxAge - Apache Tomcat 8.0.39
public void setMaxAge(int expiry)
以秒为单位设置cookie的最大年龄。 ......零值 导致cookie被删除。