2012-03-22 156 views
0

如何在用户关闭浏览器时不注销注销时注销注销时间?检索注销时间而不注销

因此,我实施了HttpSessionBindingListener取自here并添加了Listener in web.xml,但注销浏览器后没有将注销时间插入到数据库中。任何建议,请问我错了?

logout.jsp

+0

一种选择是实现卸载事件处理程序如[http://stackoverflow.com/questions/2621927/ondemand-javascript-call-on-window-unload-using-jquery][1] 解释 [1]:http://stackoverflow.com/questions/2621927/ondemand-javascript-call-on-window-unload-using-jquery – Baski 2012-03-22 10:29:07

回答

1

关闭浏览器不会触发到服务器的任何要求,所以没有办法可以知道用户关闭他的浏览器。 您可以使用侦听器来让会话超时,然后在发生这种情况时存储当前时间。不过,会话通常会在客户端发出最后一次请求之后几小时过期。

+0

yes'会话在30分钟后失效,如'web中给出的。 xml'我怎么能知道这个会话无效的时间在logout.jsp? – Tom 2012-03-22 10:21:41

+0

您可以实现SessionListener(http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpSessionListener.html)并存储调用'sessionDestroyed'时的当前时间。 – 2012-03-22 10:30:17

+0

感谢Mathias为你的答案我试图实现你的方法 – Tom 2012-03-22 10:39:36

0

您可以使用JavaScript的window.onbeforeunload发送AJAX请求到servlet来记录用户关闭浏览器的时间和你在会话对象需要什么。

+0

onbeforeunload不仅会在浏览器关闭时被调用。 – 2012-03-22 10:29:09

+0

感谢Behrooz为你的答案,但你可以请添加更多一点给你的答案,以便我可以实现它,我应该如何使用这个'window.onbeforeunload'? – Tom 2012-03-22 10:30:20

+0

是不是onbeforeunload非标准? – Baski 2012-03-22 10:31:29