我在应用程序中实现了一个sevlet过滤器,并且在过滤器中,如果我找到一些特定的url模式,我将使用request.getSession()。invalidate()登出并清除会话,然后重定向到登录页面。
session.invalidate();
session.setAttribute("hi", true);
response.sendRedirect("login.jsp");
但是我发现,在输入用户名和密码之后,然后提交登录表单,上一个会话似乎没有完全清除。
因此,是否可以让我完全清除会话,就像启动一个新的IE实例一样?(BTY,我的代码在FF和Chrome中有效)。
最佳答案
会话是服务器端的概念。浏览器仅持有一个jsessionid来告诉服务器要为此请求获取哪个会话对象。
就是说,您的问题不是IE。即使是这样,这也是您要面对的某种缓存。清除缓存。您可以设置以下响应头:
Cache-Control: no-cache, no-store
Pragma: no-cache
关于java - 为什么session.invalidate在IE浏览器中不起作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4022040/