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

  • 相关阅读:
    [转载]杨建:网站加速--动态应用篇 (下)
    [转载]杨建:网站加速--动态应用篇 (下)
    [转载]正则表达式 30分钟入门 教程
    [转载]正则表达式 30分钟入门 教程
    Single Number
    数据库应该使用异步吗 Should my database calls be Asynchronous?
    C# return dynamic/anonymous type value as function result
    Entity Framework: 视图查询时重复返回第一行值, duplicate frst rows in resultset from a view
    wysiwyg editor
    shutdown computer in ad and ou
  • 原文地址:https://www.cnblogs.com/Twobox/p/10361712.html
Copyright © 2011-2022 走看看