如何在会话过期时在DB中插入值

时间:2013-05-03 05:49:45

标签: java jsp session servlets

在我的登录工作中,我使用了一个身份验证jsp页面,我将最大非活动时间设置为60,以防止从一个用户名进行多次登录。

我在数据库中创建了一个字段status,因此当用户登录时,状态将处于活动状态,其他用户无法使用相同的用户名登录。

现在我的问题是当会话到期时如何在数据库中将状态设置为非活动状态。

要更新状态无效我做了

login=(String)session.getAttribute("login");

PreparedStatement pt = con.prepareStatement("update authentication set status='inactive' where username='"+login+"'");

因此,当会话过期时,登录将为null。请告诉我如何解决我的问题

1 个答案:

答案 0 :(得分:2)

使用HttpSessionActivationListener

     public void sessionDidActivate(HttpSessionEvent se) 
  

通知会话刚被激活。

     public void sessionWillPassivate(HttpSessionEvent se) 
  

通知会话即将被钝化。

HttpSessionListener

     sessionCreated(HttpSessionEvent se) 
  

收到已创建会话的通知。

     sessionDestroyed(HttpSessionEvent se) 
  

收到会话即将失效的通知。