我在清理活动中面临一个问题。那时从应用程序注销时,我可以执行clean活动以及session.invalidate()。但是,当我关闭浏览器选项卡或关闭浏览器时,我将无法执行清理活动。我已经读了很多东西,但是没有找到合适的解决方案。我已经尝试过window.onunload()了,但是在我的情况下却无法正常工作。因为它是生成的,甚至我单击“后退”按钮或任何其他活动。有什么解决办法吗?如果没有,那么在chrome,Mozilla和IE中是否还有任何基础性工作?

最佳答案

每当现有会话无效时,servlet容器将调用sessionDestroyed()方法。

public class SessionListener implements HttpSessionListener
{
   public void sessionCreated(HttpSessionEvent se) {}
   public void sessionDestroyed(HttpSessionEvent event) {
   HttpSession session = event.getSession();
   //clean up code
   }
}

<listener>
    <description>Session Listener</description>
    <listener-class>com.demo.SessionExpiryListener</listener-class>
</listener>




删除缓存

response.setHeader("pragma","no-cache");//HTTP 1.1
response.setHeader("Cache-Control","no-cache");
response.setHeader("Cache-Control","no-store");
response.addDateHeader("Expires", -1);
response.setDateHeader("max-age", 0);
//response.setIntHeader ("Expires", -1);
//prevents caching at the proxy server
response.addHeader("cache-Control", "private");




<script type = "text/javascript" >
function disableBackButton()
{
   window.history.forward();
}
setTimeout("disableBackButton()", 0);
</script>


< body  onunload="disableBackButton()" onload="disableBackButton()" >

07-24 20:01