我在带有数据库的java上有webapp。当用户登录时,我将数据库中的字段状态更改为已授权。当有人尝试在同一帐户下登录时,表示有人已使用此帐户登录。这就是为什么我需要将该状态字段更改为" not_authorized"会话关闭时(用户关闭浏览器)。我知道ServletContextListener,但它们用于应用程序初始化和销毁。我需要与Session相同的东西。像方法SessionDestroyed一样使用Session侦听器。有没有办法做到这一点? TY很多
答案 0 :(得分:0)
要回答您的问题,即使关闭浏览器,会话也会处于活动状态一段时间,会话超时后会话将失效。所以当有人关闭浏览器时你不会收到通知。您可以尝试使用Web套接字,在套接字处理程序关闭时,您可以编写逻辑来更新db。
尝试扩展SessionListener类,有关详细信息,请点击链接http://www.groupkt.com/post/7ee95bbd/session-timeout-handling-in-java.htm
<webapp>
<listeners>
<listener-class> com.groupkt.example.AppHttpSessionListener</listener-class>
</listeners>
</webapp>