JavaWeb Session失效时间设置方法

 更新时间:2016年12月30日 14:33:31   投稿:mrr  
这篇文章主要介绍了JavaWeb Session失效时间设置方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下

 session失效时间设置方法,具体方法如下所示:

一、java代码   <!--优先级是最高的-->

request.getSession().setMaxInactiveInterval(1800);/*秒为单位,1800= 60*30 即30分种*/

二、web.xml  <!--优先级是最低的-->

<session-config>  <!--分钟为单位-->
  <session-timeout>30</session-timeout>
</session-config>

三、web服务器resin.conf,tomcat,

<session-config>  <!--分钟为单位-->
  <session-timeout>30</session-timeout>
  <enable-url-rewriting>false</enable-url-rewriting>
</session-config>

优先级: 1 > 3 > 2

session 在tomcat重启后一般也不会失效,关闭浏览器后,session失效

在一般系统中,也可能需要在session失效后做一些操作:

(1)控制用户数,当session失效后,系统的用户数减少一个等,控制用户数在一定范围内,确保系统的性能。

(2)控制一个用户多次登录,当session有效时,如果相同用户登录,就提示已经登录了,当session失效后,就可以不用提示,直接登录了。

那么如何在session失效后,进行一系列的操作呢?

这里就需要用到监听器了,即当session因为各种原因失效后,监听器就可以监听到,然后执行监听器中定义好的程序就可以了。

监听器类为: HttpSessionListener 类,有 sessionCreated 和sessionDestroyed 两个方法

  自己可以继承这个类,然后分别实现。

  sessionCreated指在session创建时执行的方法

  sessionDestroyed指在session失效时执行的方法

如下:

public class OnlineListener implements HttpSessionListener{   
   public void sessionCreated(HttpSessionEvent event) {   
      HttpSession ses = event.getSession();   
      String id=ses.getId()+ses.getCreationTime();   
      SummerConstant.UserMap.put(id, Boolean.TRUE);   //添加用户   
    }   
    public void sessionDestroyed(HttpSessionEvent event) {   
      HttpSession ses = event.getSession();   
      String id=ses.getId()+ses.getCreationTime();   
      synchronized (this) {   
        SummerConstant.USERNUM--;      //用户数减一   
        SummerConstant.UserMap.remove(id); //从用户组中移除掉,用户组为一个map   
     }   
    }   
 }

把这个监听器在web.xml中声明就可以了:

<listener>   
  <listener-class>com.demo.system.listener.OnlineListener</listener-class>   
</listener>

上面是一个简单的利用session监听用户数的方法,在实际过程中,可能比这个复杂得多。

比如要同时实现 ServletContextListener,HttpSessionListener两个接口,重写它们的方法等。

以上所述是小编给大家介绍的JavaWeb Session失效时间设置方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • JDK动态代理之ProxyGenerator生成代理类的字节码文件解析

    JDK动态代理之ProxyGenerator生成代理类的字节码文件解析

    这篇文章主要为大家详细介绍了JDK动态代理之ProxyGenerator生成代理类的字节码文件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02
  • java 对象的克隆(浅克隆和深克隆)

    java 对象的克隆(浅克隆和深克隆)

    这篇文章主要介绍了java 对象的克隆的相关资料,这里对浅克隆和深克隆进行了实例分析需要的朋友可以参考下
    2017-07-07
  • Java 8系列之Stream中万能的reduce用法说明

    Java 8系列之Stream中万能的reduce用法说明

    这篇文章主要介绍了Java 8系列之Stream中万能的reduce用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • mac系统刚安装的idea打不开的问题及解决

    mac系统刚安装的idea打不开的问题及解决

    这篇文章主要介绍了mac系统刚安装的idea打不开的问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • SpringMVC实现获取请求参数方法详解

    SpringMVC实现获取请求参数方法详解

    Spring MVC 是 Spring 提供的一个基于 MVC 设计模式的轻量级 Web 开发框架,本质上相当于 Servlet,Spring MVC 角色划分清晰,分工明细,这篇文章主要介绍了SpringMVC实现获取请求参数方法
    2022-09-09
  • Spring容器刷新prepareRefresh第一步

    Spring容器刷新prepareRefresh第一步

    这篇文章主要为大家介绍了Spring容器刷新prepareRefresh第一步示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • Java全面解析XML格式串(JDOM解析)

    Java全面解析XML格式串(JDOM解析)

    下面小编就为大家带来一篇Java全面解析XML格式串(JDOM解析)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • java实现的MD5摘要算法完整实例

    java实现的MD5摘要算法完整实例

    这篇文章主要介绍了java实现的MD5摘要算法,结合完整实例形式分析了java实现md5单项加密的具体步骤与相关操作技巧,需要的朋友可以参考下
    2017-01-01
  • ConcurrentMap.putIfAbsent(key,value)用法实例

    ConcurrentMap.putIfAbsent(key,value)用法实例

    这篇文章主要介绍了ConcurrentMap.putIfAbsent(key,value)用法实例,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02
  • MyBatis-Plus不使用数据库默认值的问题及解决

    MyBatis-Plus不使用数据库默认值的问题及解决

    这篇文章主要介绍了MyBatis-Plus不使用数据库默认值的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07

最新评论