Java到期提醒功能 javasession设定过期时间

2023-06-13

Java设定session超时(无效)时间


一般系统登录后,会设置当前session失效的时间,以保证客户长时间不与服务器互动,自动退出登录并销毁session。
有三种具体的设置方法:
设置web容器(以tomcat为例)
7.0\/tomcatconf\web.在xml中设置,默认配置如下:tomcat7.0:


1


2


3




30




默认情况下,tomcatsession的超时时间为30分钟,可根据需要进行修改,负值或0不限制session的失效时间。


这里需要注意的是,session的设置时间是根据服务器而不是客户端来计算的。因此,如果您正在调试程序,您应该修改服务器的时间来检测它,而不是客户端。


二是工程web.设置在xml中


1


2


3




15




这里的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中声明即可



com.demo.OnlineUserListener


本文为转载内容,我们尊重原作者对本文的作权。如有内容错误或侵权问题,欢迎原作者联系我们更正或删除内容。

本文仅代表作者观点,版权归原创者所有,如需转载请在文中注明来源及作者名字。

免责声明:本文系转载编辑文章,仅作分享之用。如分享内容、图片侵犯到您的版权或非授权发布,请及时与我们联系进行审核处理或删除,您可以发送材料至邮箱:service@tojoy.com