2013-05-16 43 views
0

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

这是我在想什么:

  1. 在登录,存储的用户名与应用程序中的变量的会话ID(从HttpsSession.getId())一起。
  2. 如果没有有效会话时连接进来,请使用HttpServletRequest.getRequestedSessionId()获取以前的会话ID。
  3. 如果有以前的会话ID,请根据存储的列表进行检查;如果找到,则为相关用户处理登录。

我知道这不会复活过期会话的数据,这是好的,我只想知道用户名。

这是一个合理的方法吗?还是有更干净的方法呢?

+0

为什么不简单让会话过期时间更长? –

+0

我希望能够进行自动重新登录,无论会话有多长时间(可能有几天),但我不想让整个会话长时间处于活动状态。 – Joe

回答

0

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

+0

看起来像会满足我的需求 - 谢谢! – Joe