【问题标题】:how to update a database row when user session expires, using java?用户会话到期时如何使用java更新数据库行?
【发布时间】:2012-08-08 11:25:09
【问题描述】:

当用户会话过期时,如何使用 java 更新数据库行? 这种情况包括 1.用户没有点击任何注销按钮 2.如果自动浏览器关闭。 3.系统直接断电情况。

所以,在这些情况下,如何更新数据库行。现在我在注销点击条件时使用以下代码

Connection con = (Connection) new DB2Connection().getDatabaseConnection();
if(request.getParameter("flrmdn") != null)
{
String s1=request.getParameter("flrcaf");
String s2=request.getParameter("flrmdn");

String sql1="update table2 set FLRReference=0 where CAF='"+s1+"' and       MDN='"+s2+"' and FLRReference=1 ";
Statement st1=con.createStatement();
int vupdate=st1.executeUpdate(sql1);
}
else if(request.getParameter("indexmdn") != null)
{
String indexcaf=request.getParameter("indexcaf");
String indexmdn=request.getParameter("indexmdn");

String sql="update table set IndexReference=0 where CAF='"+indexcaf+"' and MDN='"+indexmdn+"' and IndexReference=1 ";
Statement st=con.createStatement();
int entryrows=st.executeUpdate(sql);
}


// Redirecting user to actual required page

if(request.getParameter("location").equalsIgnoreCase("login"))
{
response.sendRedirect("login.jsp?logout=true");
}

我使用过 httpsessionlistner()、sessioncreated()、sessiondistroyed(),但其中 sessioncreated 会被自动调用,但 sessiondistroyed 不会在会话过期时被调用

【问题讨论】:

  • 你怎么知道 sessionDestroyed() 没有被调用?
  • 我对 sessioncreated 和 sessiondistroyed 都使用了控制台消息。但是每次都会打印 sessioncreated msg,如果发生新登录,但同时 sessiondistroyed 没有打印 System.out.println 消息, (在 sessiondistroyed 中使用。)

标签: java database jsp servlets


【解决方案1】:

使用HttpSession.invalidate()强制会话失效,您可以看到打印出的sys out或通过在web.xml中指定如下所示等待会话自动过期。

<session-config>
      <session-timeout>5</session-timeout> 
</session-config>

【讨论】:

  • 如何在用户会话过期时更新数据库行?我已经写了HttpSession.invalidate(),但是如果浏览器直接关闭是什么情况,它不会调用....
  • @Praveen - 这就是您在 web.xml 中配置自动到期的原因
  • k k 现在它设置为默认值(30 分钟)..但是当我尝试直接关闭浏览器时..db 上的相应工作行没有更新..我的意思是该行更新为 1锁定该用户,如果该用户未完成该行且未单击注销按钮,则该行应分配给直接其他用户。即应该是'0'
  • 当用户关闭浏览器时这将不起作用。您需要要求用户注销或以其他方式处理它。
  • “当用户关闭浏览器时这将不起作用”是我在这里提出的原始问题......但你回答了关于会话到期......无论如何谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-17
  • 1970-01-01
相关资源
最近更新 更多