会话到期后自动重新登录

时间:2013-05-16 16:54:44

标签: jsp session tomcat

当Tomcat会话过期时,我想确定之前登录的用户,并自动处理登录而不显示登录页面。

这就是我的想法:

  1. 在登录期间,将用户名和会话ID(来自HttpsSession.getId())存储在应用程序变量中。
  2. 如果连接在没有有效会话的情况下进入,请使用HttpServletRequest.getRequestedSessionId()获取上一个会话ID。
  3. 如果有以前的会话ID,请根据存储的列表进行检查;如果找到,则处理相关用户的登录。
  4. 我知道这不会恢复过期会话的数据,这没关系,我只想知道用户名。

    这是一种合理的方法吗?或者有更简洁的方法吗?

1 个答案:

答案 0 :(得分:0)

也许您可以使用Tomcat的org.apache.catalina.session.PersistentManager,它可以将空闲会话交换到持久存储(磁盘/数据库)。然后你可以让你的会话到期时间更长,而不必担心长时间运行的会话在内存中徘徊。见http://tomcat.apache.org/tomcat-7.0-doc/config/manager.html