如何在浏览器选项卡关闭时使会话无效?

时间:2014-01-18 14:44:05

标签: javascript jsp struts-1

我在清理活动中面临一个问题。当我从我的应用程序注销时,我能够执行clean活动以及session.invalidate()。但是当我关闭浏览器选项卡或关闭浏览器时,我无法进行清洁活动。我已经为此阅读了很多内容,但我找不到任何合适的解决方案。我已经尝试过使用window.onunload()但它在我的情况下不起作用。因为即使我点击后退按钮或任何其他活动也会生成它。它有什么解决方案吗?如果没有,那么在Chrome,Mozilla和IE中是否有任何基础工作?

1 个答案:

答案 0 :(得分:0)

只要现有会话失效,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>

CACHE REMOVE

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()" >