我已经设置了Tomcat在闲置15分钟后处理会话。事情是这样的如何让用户知道他/她的会话已过期?
<session-config>
<session-timeout>15</session-timeout>
</session-config>
每当用户访问受限制的网页(需要先登录的用户)我检查会话,看是否在登录过程已经完成。如果有,则授予访问权限(如果没有),那么用户将被重定向到登录页面,并在其中提示用户输入有效的ID和密码。如果会话超时,则用户需要重新登录。这很好,但我想让用户知道他/她必须再次登录,因为会话已超时。
我该如何去做这件事?我发现HttpSessionListener接口,并认为它可能会有所帮助,但sessionDestroyed方法在会话失效之前被调用,因此设置参数没有什么好处,如预期的那样。
当会话过期时,实际上只设置**参数/ cookie是很困难的。你会如何确定*何时做到这一点?在会话过期期间,没有办法使用“HttpServletRequest”。随后的新请求/会话不知道前一个请求/会话。 – BalusC 2010-01-05 11:53:49
用户登录时在用户的浏览器中添加一个cookie,并在HttpSession中添加一个标记。如果cookie存在且会话或令牌不存在,则用户最近登录并且他们的会话超时。 – 2010-01-05 16:24:08
是的,正如我回答的那样。但是,您直接说*当您将用户重定向到登录表单*。你会怎么做? – BalusC 2010-01-05 21:20:33