zoukankan      html  css  js  c++  java
  • 【学习笔记】【Javaweb】二、Session对象过期时间三种设置方法、Session失效监听器

    一、前言

      本文:https://www.cnblogs.com/Twobox/p/10361712.html

      参考:https://www.cnblogs.com/diewufeixian/p/4221747.html

      自己设计SSO系统的时候,需要考虑多个客户网站与中心网站的Session有效期同步问题。

      即需要满足:

        客户端网站Session剩余失效时间必须短于中心网站。

        中心网站Session失效的时候,客户端网站必须全部声明失效。

      场景:

        用户第一次在中心网站登陆的时候会创建并刷新 中心网站 的Session过期时间。但随后就去访问子网站,后面可能就不会再访问中心网站。

        故:用户访问某子网站时,子网站通知中心网站刷新Session过期时间。

        

        子网站毕竟是别人的网站,中心网站无法保证子网站会及时通知自己刷新Session过期时间。所以也可能存在某子网站Session待过期时间长于中心网站。

        故:为了安全保证并瞒住上面两个要求。监听器监听中心网站某Session失效后,随后通知相关子网站强制声明Session失效。

    二、开始

      按照优先级,从小到大介绍:

      ① 在web容器中设置(以tomcat为例)

        

        tomcat/conf/web.xml 下 12%左右的位置。

        

        单位为分钟!!!

        tomcat默认session超时时间为30分钟,负数或0为不限制session失效时间。

       ② 在程的web.xml中设置

        

        单位为分钟!!!

        ③ 过java代码设置

        session.setMaxInactiveInterval(30*60);

        单位为 秒!!!!!!

        即在没有活动30分钟后,此session将失效。

      三种方式优先等级:1 < 2 < 3

    三、session监听器

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

      监听器类为:HttpSessionListener类,有sessionCreated和sessionDestroyed两个方法
      自己可以继承这个类,然后分别实现
      sessionCreated指在session创建时执行的方法
      sessionDestroyed指在session失效时执行的方法
      例子:

     1 public class OnlineUserListener implements HttpSessionListener{
     2     public void sessionCreated(HttpSessionEvent event){
     3         // session创建后
     4         HttpSession session=event.getSession;
     5         // 有了 session后,巴拉巴拉巴拉一顿操作。
     6     }
     7     
     8     public void sessionDestroyed(HttpSessionEvent event){
     9         // session 立马销毁前
    10         HttpSession session=event.getSession;
    11         // 有了 session后,巴拉巴拉巴拉一顿操作。
    12         }
    13     }
    14 }

    四、后言

       然后就可以胡作非为了。

      2019-02-11 14:14:48

  • 相关阅读:
    1014 Waiting in Line (30)(30 point(s))
    1013 Battle Over Cities (25)(25 point(s))
    1012 The Best Rank (25)(25 point(s))
    1011 World Cup Betting (20)(20 point(s))
    1010 Radix (25)(25 point(s))
    1009 Product of Polynomials (25)(25 point(s))
    1008 Elevator (20)(20 point(s))
    1007 Maximum Subsequence Sum (25)(25 point(s))
    1006 Sign In and Sign Out (25)(25 point(s))
    1005 Spell It Right (20)(20 point(s))
  • 原文地址:https://www.cnblogs.com/Twobox/p/10361712.html
Copyright © 2011-2022 走看看