java session超时设置你知道应该如何设置吗?下面要给大家带来的实例就是和java设置session超时时间相关的内容,一起来看看具体实现方式吧。
一般的系统登陆了之后,都会有设置一个当前的session失效(超时)时间,这样主要是为了确保,在用户长时间不和服务器交互,自动退出登录,销毁session。
那么具体的来讲的话一共有3种方法,一起来看看吧。
首先是第一种方法:在web容器中设置
我们这里以tomcat为例子。
在tomcat-7.0confweb.xml当中设置,下面的是tomcat7.0当中默认配置。
<session-config> <session-timeout>30</session-timeout> </session-config>
tomcat默认的是session超时时间为30分钟,能够依据需要修改,负数或者是0不限制session失效时间。
注意,这个session设置的时间是依据服务器来计算的,不是依据客户端,所以说,在调序程序的时候,要修改服务器端时间来测试,不是去修改客户端。
第二种方法就是:在工程的web.xml当中设置
下面的15所指的是15分钟失效。
<session-config> <session-timeout>15</session-timeout> </session-config>
第三种方法就是java代码设置
session.setMaxInactiveInterval(30*60);//以秒为单位,也就是,在没有活动30分钟之后,session失效。
以上3种方式优先等级-1 < 2 < 3。
延伸阅读:
在很多的系统当中,会要在session失效之后做一些操作,那么问题来了,在session失效之后,怎样来进行操作呢?
用监听器。
监听器类为HttpSessionListener类,有sessionCreated和sessionDestroyed2方法。
自己可以继承这个类,之后分别实现。
例:
public class OnlineUserListener implements HttpSessionListener { public void sessionCreated(HttpSessionEvent event) { HttpSession session = event.getSession; String id = session.getId() + session.getCreationTime(); SummerConstant.UserMap.put(id, Boolean.TRUE); //添加用户 } public void sessionDestroyed(HttpSessionEvent event) { HttpSession session = event.getSession; String id = session.getId() + session.getCreationTime(); synchronized(this) { SummerConstant.USERNum--; //用户数减- SummerConstant.UserMap.remove(id); //从用户组中移除掉,用户组为一个map } } }
之后的话,就只要将这个监听器在web.xml当中声明就成了。
java session时长问题远远不止这些,但是java设置session超时时间的内容就给大家介绍到这里了,更多相关问题,请来奇Q工具网的常见问题栏目了解吧。
推荐阅读: