我们如何在浏览器关闭事件上调用logout servlet

时间:2010-10-21 10:22:22

标签: jsp

如何处理浏览器的关闭事件以触发注销?

3 个答案:

答案 0 :(得分:11)

前段时间我一直在寻找这个问题的一致解决方案,而我的决定是在不相信浏览器或用户的情况下处理这种情况。

您无法确定用户是否离开您的网页以及何时,即使您使用“onunload”,您也可能无法在浏览器关闭或离开您的网页之前获得该活动。浏览器崩溃不会给你任何信号,所以相信你知道用户仍然在查看你的页面并且可能采取任何进一步的行动是有缺陷的。

关于注销用户的最佳方法是进行适当的会话超时,如果需要进一步控制,可以尝试在“我还活着”信号的关键页面上添加AJAX调用,然后注销用户那些没有响应(这需要启用AJAX / JS的浏览器,可能会排除潜在用户)。

答案 1 :(得分:5)

您正在寻找onunload:

window.onunload = function() {
  // check the window is closed (see point 1 below)
  // do log out
}

这有两个问题:

  1. 每当用户离开页面,刷新或通常卸载时以及浏览器窗口关闭时都会调用它。
  2. 浏览器之间似乎没有一致的行为。
  3. 我建议使用不同的方法。

答案 2 :(得分:3)

你必须使用会话超时。由于您已经标记了问题JSP,我认为它是您正在讨论的Java Web应用程序。

您通常有会话超时侦听器,并且在侦听器中有“注销”代码。

一般不依赖客户端事件:浏览器/系统崩溃,关闭浏览器等关闭不会触发事件。