如何知道会话何时结束

时间:2016-12-20 17:23:32

标签: java database session web listener

我在带有数据库的java上有webapp。当用户登录时,我将数据库中的字段状态更改为已授权。当有人尝试在同一帐户下登录时,表示有人已使用此帐户登录。这就是为什么我需要将该状态字段更改为" not_authorized"会话关闭时(用户关闭浏览器)。我知道ServletContextListener,但它们用于应用程序初始化和销毁​​。我需要与Session相同的东西。像方法SessionDestroyed一样使用Session侦听器。有没有办法做到这一点? TY很多

1 个答案:

答案 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>