我在清理活动中面临一个问题。那时从应用程序注销时,我可以执行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()" >