我有一个要求,其中用户通过身份验证进入会话,并且在非活动状态10分钟后,会话超时。一旦会话超时,现在过期的会话中的任何进一步请求都会重定向到超时页面。我在这方面进行了研究,并采用了两种不同的方法。使用web.xml和setMaxInactiveInterval设置会话超时之间的区别
方法1:
在web.xml中我已经提到下面的代码...
<session-config>
<session-timeout>10</session-timeout>
</session-config>
方法2:
我有认证页面内下面提到的代码...
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
response.setHeader("Pragma", "no-cache"); // HTTP 1.0.
response.setDateHeader("Expires", 0); // Proxies.
request.getSession().setMaxInactiveInterval(600);
现在我的问题是这两个approa的区别是什么CHES?哪一个更好或推荐?并且,当使用方法#2时,如果最终用户离开经过验证的页面导航但尚未注销,则会话在闲置10分钟后仍然超时?
感谢罗马和瓦斯解释的差异,也给了我一个好主意,使用哪种方法。我仍在等待完整的业务需求,以确定整个应用程序的超时是否一致,这将明确说明使用哪种方法。但是,由于你们两个都在向我解释差异。现在,由于我不能将两个答案都标记为我的问题的答案,所以我将Gas的解决方案标记为已接受的答案(没有特别的理由),并对Roman的答案进行投票。再次感谢 – Sai 2014-10-03 19:01:25