当浏览器被关闭时,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。

 

 

    

 

posted @   zou-ting-rong  阅读(1268)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core GC计划阶段(plan_phase)底层原理浅谈
· .NET开发智能桌面机器人:用.NET IoT库编写驱动控制两个屏幕
· 用纯.NET开发并制作一个智能桌面机器人:从.NET IoT入门开始
· 一个超经典 WinForm,WPF 卡死问题的终极反思
· ASP.NET Core - 日志记录系统(二)
阅读排行:
· 博客园 & 1Panel 联合终身会员上线
· 支付宝事故这事儿,凭什么又是程序员背锅?有没有可能是这样的...
· https证书一键自动续期,帮你解放90天限制
· 在 ASP.NET Core WebAPI如何实现版本控制?
· 告别虚拟机!WSL2安装配置教程!!!
点击右上角即可分享
微信分享提示