zoukankan      html  css  js  c++  java
  • 当浏览器被关闭时,session是否被关闭?

      在一次学习统计网站上线人数时被这个问题困扰了许久,一开始天真的认为当浏览器关闭时,session也会随着关闭。

      这时我们需要了解session的实现原理

      

       当浏览器被关闭时,session并没有被关闭,而是关闭的浏览器的jsession,此时服务器的session并没有被销毁。

      那么服务器中的session是在何时被销毁的呢?

        当该session过期时,该session就会被销毁。

        我们可以从一个简单得到案例得知。

        监听类

    package weblistenner;
    
    import javax.servlet.http.HttpSessionEvent;
    import javax.servlet.http.HttpSessionListener;
    
    /**
     * @author ztr
     * @version 创建时间:2021年4月20日 下午7:25:40
     * 类说明
     */
    /**
     * 
     * 
     * 项目名称:web05 类名称:HttpSessionListenner 类描述: 创建人:ztr 创建时间:2021年4月20日 下午7:25:43
     * 
     * @version 访问html不会创建Session 
     * 访问jsp会创建Session 因为jsp会被翻译成servlet且通过起源码可以得知
     *          javax.servlet.http.HttpSession session = null; 
     *          session = pageContext.getSession(); 
     *  访问Servlet也不会创建Session因为其默认没有调用getSession方法
     */
    public class HttpSessionListenner implements HttpSessionListener {
    
        @Override
        public void sessionCreated(HttpSessionEvent sec) {
            System.out.println("Httpsession被创建");
        }
    
        @Override
        public void sessionDestroyed(HttpSessionEvent sec) {
            System.out.println("Httpsession被销毁");
        }
    
    }

      监听类的配置

      

    <listener>
      
          <listener-class>
              weblistenner.HttpSessionListenner
          </listener-class>
          
      </listener>
      <session-config>
        <session-timeout>1</session-timeout>
      </session-config>

      当我们打开浏览器是,控制台会输出以下内容

    Httpsession被创建

      此时我们关闭浏览器,控制台并没有输出session被销毁

      因为我们在xml配置文件中配置的session的过期时间为1分钟,一分钟后,我们可以看到控制台输出以下内容 

    Httpsession被创建
    Httpsession被创建

      当在同一个浏览器中同时打开多个标签,发送同一个请求或不同的请求,仍是同一个session;

      当不在同一个窗口中打开相同的浏览器时,发送请求,仍是同一个session;

      当使用不同的浏览器时,发送请求,即使发送相同的请求,是不同的session;

      当把当前某个浏览器的窗口全关闭,再打开,发起相同的请求时,是不同的session。

        

    笨鸟先飞
  • 相关阅读:
    BZOJ 3506 机械排序臂 splay
    BZOJ 2843 LCT
    BZOJ 3669 魔法森林
    BZOJ 2049 LCT
    BZOJ 3223 文艺平衡树 splay
    BZOJ 1433 假期的宿舍 二分图匹配
    BZOJ 1051 受欢迎的牛 强连通块
    BZOJ 1503 郁闷的出纳员 treap
    BZOJ 1096 ZJOI2007 仓库设计 斜率优化dp
    BZOJ 1396: 识别子串( 后缀数组 + 线段树 )
  • 原文地址:https://www.cnblogs.com/zoutingrong/p/14683037.html
Copyright © 2011-2022 走看看