关于Session,在Java Web开发中,为我们提供了很多方便,Session是由浏览器和服务器之间维护的。好吧,闲话不多说,下面让我们一步一步来实现它们。
(一)首先来说下Session超时时间设置的三种方式,这些相对来说比较简单:
(1)在web.xml中设置session-config
<session-config>
<session-timeout>2</session-timeout>
</session-config>
即交互间隔时间最长为2分钟(该处时间单位为分钟),2分钟后session.getAttribute()获取的值为空。
(2)在Tomcat的/conf/web.xml中session-config,默认值为:30分钟
<session-config>
<session-timeout>30</session-timeout>
</session-config>
同上,时间单位为分钟。
(3)在Servlet中设置
HttpSession session = request.getSession();
session.setMaxInactiveInterval(60);
即在你的程序代码中手动设置(该处时间单位为秒)。
优先级:Servlet中设置 >web.xml设置 > Tomcat/conf/web.xml设置
(二)同一用户强制下线
大家都知道在目前很多的web项目中,大多数情况下都是可以让同一个用户账号在不同的登录入口登录的,但这样其实就显得不是很严谨了,毕竟信息修改等操作对于信息是否能完全即时同步还是个未知之数。所以,接下来,我要做的只是对于不同浏览器的同一个用户账号的强制下线处理,对于同一个浏览器暂不做考虑,先来看下面这张图。大概的了解一下: