Session 如果用户关闭浏览器,是否有任何技术可以终止用户登录会话?

Session 如果用户关闭浏览器,是否有任何技术可以终止用户登录会话?,session,browser,jakarta-ee,Session,Browser,Jakarta Ee,如果打开了多个窗口,这应该可以工作 我的应用程序是J2EE 我已经在window.unloadn上尝试了一些javascript,但这种解决方案并不可靠。如果你是说在服务器端,最好的方法是实现心跳。如果此webapp中的所有窗口均未打开,则不会有任何内容发送心跳信号,服务器在一段时间后会知道该应用已断开连接 如果您的意思是在客户端,没有100%可靠的方法,因为浏览器可能会死于外部原因(死机/崩溃/重新启动),但是以心跳方式定期更新的超时cookie可能会工作HTTP是无状态的,这意味着您无法判断

如果打开了多个窗口,这应该可以工作

我的应用程序是J2EE


我已经在window.unloadn上尝试了一些javascript,但这种解决方案并不可靠。

如果你是说在服务器端,最好的方法是实现心跳。如果此webapp中的所有窗口均未打开,则不会有任何内容发送心跳信号,服务器在一段时间后会知道该应用已断开连接


如果您的意思是在客户端,没有100%可靠的方法,因为浏览器可能会死于外部原因(死机/崩溃/重新启动),但是以心跳方式定期更新的超时cookie可能会工作

HTTP是无状态的,这意味着您无法判断浏览器何时关闭

您尝试使用
window.onunload
并不总是有效,因为浏览器可能会在执行事件处理程序之前退出


用于查明用户是否关闭了浏览器(或最佳猜测)的技术是使用超时。会话将自动超时(这是可配置的)-在asp.net中,默认值为20分钟。如果没有活动,则超时开始

会话cookie(即在会话结束时过期的cookie,即浏览器关闭时)?@stakx,仅删除会话cookie。它不负责数据库中的会话数据(我想这是OP想要的)