Cookie[] allCookies=request.getCookies();
for(int i=0;i<allCookies.length;i++)
{
allCookies[i].setMaxAge(0);
response.addCookie(allCookies[i]);
}
session.invalidate();
上面是我删除cookie的代码,session在两个浏览器上都可以删除,试了半天,还把删除后的cookie进行打印,结果就是chrome删除cookie后还是可以直接打印出来,木有变化!但是ie的就直接删掉了。
费解检查了半天的chrome设置,都是default设置啊。各位大侠,我已经在这里纠结很久了

解决方案 »

  1.   

    很明显,是兼容问题。去搜一下 "chrome cookie不可以删除"
      

  2.   

    好的啊,lz是不是在删除的相同JSP里面打印啊,这个时候cookie当然还在request里面。
    测试代码
    showcookie.jsp
    [code=jsp]
    <%@ page contentType="text/html; charset=UTF-8" %>
    <html>
    <head>
    <title>Cookie</title>
    </head>
    <body>
    <dl>
    <%
    Cookie[] cookies = request.getCookies();
    for (int i = 0; cookies != null && i < cookies.length; i++) {
      Cookie cookie = cookies[i];
    %>
    <dt><%= cookie.getName() %></dt><dd><%= cookie.getValue() %></dd>
    <%
    }
    %>
    </dl>
    <ul>
    <li><a href="addcookie.jsp">添加</a></li>
    <li><a href="delcookie.jsp">删除</a></li>
    </ul>
    </body>
    </html>
    [code]addcookie.jsp
    [code=jsp]
    <%
      Cookie cookie = new Cookie("key", new java.util.Date().toString());
      response.addCookie(cookie);
      response.sendRedirect("showcookie.jsp"); // 不要在一个request里面打印,我这里用redirect
    %>
    [/code]delcookie.jsp
    [code=jsp]
    <%
      Cookie[] cookies = request.getCookies();
      for (int i = 0; cookies != null && i < cookies.length; i++) {
        Cookie cookie = cookies[i];
    cookie.setMaxAge(0);
    response.addCookie(cookie);
      }
      response.sendRedirect("showcookie.jsp");
    %>
    [/code]