Java到期提醒功能 javasession设定过期时间
Java设定session超时(无效)时间
一般系统登录后,会设置当前session失效的时间,以保证客户长时间不与服务器互动,自动退出登录并销毁session。
有三种具体的设置方法:
设置web容器(以tomcat为例)
7.0\/tomcatconf\web.在xml中设置,默认配置如下:tomcat7.0:
1 2 3 |
|
默认情况下,tomcatsession的超时时间为30分钟,可根据需要进行修改,负值或0不限制session的失效时间。
这里需要注意的是,session的设置时间是根据服务器而不是客户端来计算的。因此,如果您正在调试程序,您应该修改服务器的时间来检测它,而不是客户端。
二是工程web.设置在xml中
1 2 3 |
|
这里的15指15分钟失效。
设置java代码3.
session.setMaxInactiveInterval(30*60);//以秒为基准,即session在没有活动30分钟后会失效。
三种方法优先级:1 < 2 < 3< 2 < 3
一般系统中,session失效后也可能需要做一些操作:
控制用户数量,当session失效时,系统的用户数量减少一个,控制用户数量在一定范围内,确保系统的性能。
控制一个客户多次登录,当session有效时,如果同一用户登录,则提示已登录,当session失效时,可以直接登录。
那怎样在session失效后,进行一系列的操作呢?
这里需要使用监听器,也就是说,当session因为各种原因失效时,监听器可以监控,然后执行监控器中定义的程序。
监控类别为:HttpSessionListener类,有sessionCreated和sessionDestroyed两种方法。
你可以自己继承这一类,然后各自实现。
sessionCreated是指在session建立时实施的方法。
sessionDestroyed是指在session失效时实施的方法。
例子:
1 public class OnlineUserListener implements HttpSessionListener{
2 public void sessionCreated(HttpSessionEvent event){
3 HttpSession session=event.getSession;
4 String id=session.getId() session.getCreationTime();
5 SummerConstant.UserMap.put(id,Boolean.TRUE);//添加用户
6 }
7
8 public void sessionDestroyed(HttpSessionEvent event){
9 HttpSession session=event.getSession;
10 String id=session.getId() session.getCreationTime();
11 synchronized(this){
12 SummerConstant.USERNum--;//用户数量减少-
13 SummerConstant.UserMap.remove(id);//从用户组中移除,用户群是map
14 }
15 }
16 }
接着只要把这个监听器放在web上。.只需在xml中声明即可
本文仅代表作者观点,版权归原创者所有,如需转载请在文中注明来源及作者名字。
免责声明:本文系转载编辑文章,仅作分享之用。如分享内容、图片侵犯到您的版权或非授权发布,请及时与我们联系进行审核处理或删除,您可以发送材料至邮箱:service@tojoy.com




