相关疑难解决方法(0)

如何检测浏览器关闭?

在我的Web应用程序中,当用户登录时,我将他的Id添加到servlet中的有效ID的向量中,当他退出时,我从向量中删除了他的Id,因此我可以看到有多少当前用户是活动的,如果用户忘记注销,我的servelt生成的html具有:

<meta http-equiv="Refresh" content="30; url=My_Servlet?User_Action=logout&User_Id=1111">
Run Code Online (Sandbox Code Playgroud)

在标签中自动将他退出.

但我注意到许多用户永远都在那里,从未退出.我发现了为什么,通过关闭他们的浏览器,他们从不手动或自动注销,因此他们的用户ID永远不会从有效的用户ID向量中删除.

所以,我的问题是:我如何检测用户关闭他们的浏览器,所以我的servlet可以从向量中删除他们的ID?


我在隧道尽头看到一些亮点,但仍有问题,我的程序有这样的事情:

活跃用户列表:

User_1 : Machine_1 [ IP_1 address ]
User_2 : Machine_2 [ IP_2 address ]
User_3 : Machine_3 [ IP_3 address ]
...
Run Code Online (Sandbox Code Playgroud)

我如何从会话监听器知道哪个用户的会话已经结束,从而将他从我的列表中删除?

我希望会话结束时,destroy()会调用HttpServlet的方法,我可以在那里删除用户ID,但是当用户关闭浏览器时它永远不会被调用,为什么?HttpServlet中还有其他方法在会话关闭时被调用吗?

javascript servlets

16
推荐指数
2
解决办法
3万
查看次数

标签 统计

javascript ×1

servlets ×1