session超时设置,方法有三种:
(1)在主页面或者公共页面中加入:session.setMaxInactiveInterval(600);参数600单位是秒,即在没有10分钟活动后,session将失效。
这里要注意这个session设置的时间是根据服务器来计算的,而不是客户端。所以如果是在调试程序,应该是修改服务器端时间来测试,而不是客户端。
(2)也是比较通用的设置session失效时间的方法,就是在项目的web.xml中设置
<!-- 设置session失效,单位分 -->
<session-config>
<session-timeout>1</session-timeout>
</session-config>
// 设置为0,-1 表示永不超时
(3)直接在应用服务器中设置,如果是tomcat,可以在tomcat目录下conf/web.xml中找到<session-config>元素,tomcat默认设置是30分钟,只要修改这个值就可以了。
在Tomcat的/conf/web.xml中session-config,默认值为:30分钟
<session-config>
<session-timeout>30</session-timeout>
</session-config>
需要注意的是如果上述三个地方如果都设置了,有个优先级的问题,从高到低:(1)>(2)>(3)
超时后页面跳转问题(跳出iframe):
(1)将拦截器 验证失败是 要跳转的页面作为一个中间页,然后在这个中间页实现跳转到登陆页
<body>
<script type="text/javascript">
alert("登陆超时,请重新登陆!");
window.top.location.href="登陆页的地址";
</script>
</body>
(2)在配置的登录页面上(例如:Login.jsp) 页面<head></head>中加入JavaScript代码:
<script type=
"text/javascript"
>
if
(window != top) {
top.location.href = location.href;
}
</script>