-
浏览器关闭,Session生命周期
2017-08-01 20:12:14今天想和大家分享一个关于Session的话题: 当浏览器关闭时,Session就被销毁了?...口发送请求到关闭浏览器窗口,但其实这种说法是不正确的!下面就具体的去解释: 当用户第一次访问Web应用中支持S今天想和大家分享一个关于Session的话题: 当浏览器关闭时,Session就被销毁了?
我们知道Session是JSP的九大内置对象(也叫隐含对象)中的一个,它的作用是可以保
存当前用户的状态信息,初学它的时候,认为Session的生命周期是从打开一个浏览器窗
口发送请求到关闭浏览器窗口,但其实这种说法是不正确的!下面就具体的去解释:
当用户第一次访问Web应用中支持Session的某个网页时,就会开始一个新的Session,
那么接下来当用户浏览这个Web应用的不同网页时,始终处于一个Session中
再详细些:
-
当一个Session开始时,Servlet容器会创建一个HttpSession对象,那么在HttpSession对象中,可以存放用户状态的信息
-
Servlet容器为HttpSession对象分配一个唯一标识符即Sessionid,Servlet容器把Sessionid作为一种Cookie保存在客户端的 *浏览器* 中
- 用户每次发出Http请求时,Servlet容器会从HttpServletRequest对象中取出Sessionid,然后根据这个Sessionid找到相应的HttpSession对象,从而获取用户的状态信息
以上就是Session的运行机制,但是还没有提到Session的生命周期,再往下了解!
其实让Session结束生命周期,有以下两种办法:
- 一个是Session.invalidate()方法,不过这个方法在实际的开发中,并不推荐,可能在强制注销用户的时候会使用;
- 一个是当前用户和服务器的交互时间超过默认时间后,Session会失效
我们知道Session是存在于服务器端的,当把浏览器关闭时,浏览器并没有向服务器发送
任何请求来关闭Session,自然Session也不会被销毁,但是可以做一点努力,在所有的
客户端页面里使用js的window.onclose来监视浏览器的关闭动作,然后向服务器发送一
个请求来关闭Session,但是这种做法在实际的开发中也是不推荐使用的,最正常的办法
就是不去管它,让它等到默认的时间后,自动销毁
那么为什么当我们关闭浏览器后,就再也访问不到之前的session了呢?
其实之前的Session一直都在服务器端,而当我们关闭浏览器时,此时的Cookie是存在
于浏览器的进程中的,当浏览器关闭时,Cookie也就不存在了。
其实Cookie有两种:
- 一种是存在于浏览器的进程中;
- 一种是存在于硬盘上
而session的Cookie是存在于浏览器的进程中,那么这种Cookie我们称为会话Cookie,
当我们重新打开浏览器窗口时,之前的Cookie中存放的Sessionid已经不存在了,此时
服务器从HttpServletRequest对象中没有检查到sessionid,服务器会再发送一个新的存
有Sessionid的Cookie到客户端的浏览器中,此时对应的是一个新的会话,而服务器上
原先的session等到它的默认时间到之后,便会自动销毁。
ps:
当在同一个浏览器中同时打开多个标签,发送同一个请求或不同的请求,仍是同一个session;
当不在同一个窗口中打开相同的浏览器时,发送请求,仍是同一个session;
当使用不同的浏览器时,发送请求,即使发送相同的请求,是不同的session;
当把当前某个浏览器的窗口全关闭,再打开,发起相同的请求时,就是本文所阐述的,是不同的session,但是它和session的生命周期是没有关系的.
-
-
浏览器关闭后,Session会话结束了么?
2015-07-31 20:22:18我们知道Session是JSP的九大内置对象(也叫隐含对象)中的一个,它的作用是可以保存当前用户的状态信息,初学它的时候,认为Session的生命周期是从打开一个浏览器窗口发送请求到关闭浏览器窗口,但其实这种说法是不...今天想和大家分享一个关于Session的话题: 当浏览器关闭时,Session就被销毁了?
我们知道Session是JSP的九大内置对象(也叫隐含对象)中的一个,它的作用是可以保
存当前用户的状态信息,初学它的时候,认为Session的生命周期是从打开一个浏览器窗
口发送请求到关闭浏览器窗口,但其实这种说法是不正确的!下面就具体的去解释:
当用户第一次访问Web应用中支持Session的某个网页时,就会开始一个新的Session,
那么接下来当用户浏览这个Web应用的不同网页时,始终处于一个Session中
再详细些:
当一个Session开始时,Servlet容器会创建一个HttpSession对象,那么在HttpSession对象中,可以存放用户状态的信息
Servlet容器为HttpSession对象分配一个唯一标识符即Sessionid,Servlet容器把Sessionid作为一种Cookie保存在客户端的 *浏览器* 中
- 用户每次发出Http请求时,Servlet容器会从HttpServletRequest对象中取出Sessionid,然后根据这个Sessionid找到相应的HttpSession对象,从而获取用户的状态信息
以上就是Session的运行机制,但是还没有提到Session的生命周期,再往下了解!
其实让Session结束生命周期,有以下两种办法:
- 一个是Session.invalidate()方法,不过这个方法在实际的开发中,并不推荐,可能在强制注销用户的时候会使用;
- 一个是当前用户和服务器的交互时间超过默认时间后,Session会失效
我们知道Session是存在于服务器端的,当把浏览器关闭时,浏览器并没有向服务器发送
任何请求来关闭Session,自然Session也不会被销毁,但是可以做一点努力,在所有的
客户端页面里使用js的window.onclose来监视浏览器的关闭动作,然后向服务器发送一
个请求来关闭Session,但是这种做法在实际的开发中也是不推荐使用的,最正常的办法
就是不去管它,让它等到默认的时间后,自动销毁
那么为什么当我们关闭浏览器后,就再也访问不到之前的session了呢?
其实之前的Session一直都在服务器端,而当我们关闭浏览器时,此时的Cookie是存在
于浏览器的进程中的,当浏览器关闭时,Cookie也就不存在了。
其实Cookie有两种:
- 一种是存在于浏览器的进程中;
- 一种是存在于硬盘上
而session的Cookie是存在于浏览器的进程中,那么这种Cookie我们称为会话Cookie,
当我们重新打开浏览器窗口时,之前的Cookie中存放的Sessionid已经不存在了,此时
服务器从HttpServletRequest对象中没有检查到sessionid,服务器会再发送一个新的存
有Sessionid的Cookie到客户端的浏览器中,此时对应的是一个新的会话,而服务器上
原先的session等到它的默认时间到之后,便会自动销毁。
ps:
当在同一个浏览器中同时打开多个标签,发送同一个请求或不同的请求,仍是同一个session;
当不在同一个窗口中打开相同的浏览器时,发送请求,仍是同一个session;
当使用不同的浏览器时,发送请求,即使发送相同的请求,是不同的session;
当把当前某个浏览器的窗口全关闭,再打开,发起相同的请求时,就是本文所阐述的,是不同的session,但是它和session的生命周期是没有关系的.
-
浏览器关闭后,Session就销毁了吗
2019-07-05 16:42:31我们知道Session是JSP的九大内置对象(也叫隐含对象)中的一个,它的作用是可以保存当前用户的状态信息,初学它的时候,认为Session的生命周期是从打开一个浏览器窗口发送请求到关闭浏览器窗口,但其实这种说法是不...答案:
存在于浏览器上的唯一标识符JSESSIONID(sessionid)消失了,但是服务器中存放的sessionid并没有立马销毁。分析:
我们知道Session是JSP的九大内置对象(也叫隐含对象)中的一个,它的作用是可以保存当前用户的状态信息,初学它的时候,认为Session的生命周期是从打开一个浏览器窗口发送请求到关闭浏览器窗口,但其实这种说法是不正确的!当一个Session开始时,Servlet容器会创建一个HttpSession对象,那么在HttpSession对象中,可以存放用户状态的信息,Servlet容器为HttpSession对象分配一个唯一标识符即Sessionid,Servlet容器把Sessionid作为一种Cookie保存在客户端的浏览器 中用户每次发出Http请求时,Servlet容器会从HttpServletRequest对象中取出Sessionid,然后根据这个Sessionid找到相应的HttpSession对象,从而获取用户的状态信息。
其实让Session结束生命周期,有以下两种办法:
一个是Session.invalidate()方法,不过这个方法在实际的开发中,并不推荐,可能在强制注销用户的时候会使用;
一个是当前用户和服务器的交互时间超过默认时间后,Session会失效。
我们知道Session是存在于服务器端的,当把浏览器关闭时,浏览器并没有向服务器发送任何请求来关闭Session,自然Session也不会被销毁,但是可以做一点努力,在所有的客户端页面里使用js的window.onclose来监视浏览器的关闭动作,然后向服务器发送一个请求来关闭Session,但是这种做法在实际的开发中也是不推荐使用的,最正常的办法就是不去管它,让它等到默认的时间后,自动销毁。那么为什么当我们关闭浏览器后,就再也访问不到之前的session了呢?其实之前的Session一直都在服务器端,而当我们关闭浏览器时,此时的Cookie是存在于浏览器的进程中的,当浏览器关闭时,Cookie也就不存在了。
其实Cookie有两种:
一种是存在于浏览器的进程中;
一种是存在于硬盘上。
而session的Cookie是存在于浏览器的进程中,那么这种Cookie我们称为会话Cookie,当我们重新打开浏览器窗口时,之前的Cookie中存放的Sessionid已经不存在了,此时服务器从tpServletRequest对象中没有检查到sessionid,服务器会再发送一个新的存有Sessionid的Cookie到客户端的浏览器中,此时对应的是一个新的会话,而服务器上原先的session等到它的默认时间到之后,便会自动销毁。附加:
当在同一个浏览器中同时打开多个标签,发送同一个请求或不同的请求,仍是同一个session;
当不在同一个窗口中打开相同的浏览器时,发送请求,仍是同一个session;
当使用不同的浏览器时,发送请求,即使发送相同的请求,是不同的session;
当把当前某个浏览器的窗口全关闭,再打开,发起相同的请求时,是不同的session。 -
浏览器关闭后,Session和cookie?
2019-01-19 17:22:19当浏览器关闭时,Session就被销毁了?...口发送请求到关闭浏览器窗口,但其实这种说法是不正确的!下面就具体的去解释: 当用户第一次访问Web应用中支持Session的某个网页时,就会开始一个新的Session, 那...当浏览器关闭时,Session就被销毁了?
我们知道Session是JSP的九大内置对象(也叫隐含对象)中的一个,它的作用是可以保
存当前用户的状态信息,初学它的时候,认为Session的生命周期是从打开一个浏览器窗
口发送请求到关闭浏览器窗口,但其实这种说法是不正确的!下面就具体的去解释:
当用户第一次访问Web应用中支持Session的某个网页时,就会开始一个新的Session,
那么接下来当用户浏览这个Web应用的不同网页时,始终处于一个Session中
再详细些:
- 当一个Session开始时,Servlet容器会创建一个HttpSession对象,那么在HttpSession对象中,可以存放用户状态的信息
- Servlet容器为HttpSession对象分配一个唯一标识符即Sessionid,Servlet容器把Sessionid作为一种Cookie保存在客户端的 *浏览器* 中
- 用户每次发出Http请求时,Servlet容器会从HttpServletRequest对象中取出Sessionid,然后根据这个Sessionid找到相应的HttpSession对象,从而获取用户的状态信息
以上就是Session的运行机制,但是还没有提到Session的生命周期,再往下了解!
其实让Session结束生命周期,有以下两种办法:
- 一个是Session.invalidate()方法,不过这个方法在实际的开发中,并不推荐,可能在强制注销用户的时候会使用;
- 一个是当前用户和服务器的交互时间超过默认时间后,Session会失效
我们知道Session是存在于服务器端的,当把浏览器关闭时,浏览器并没有向服务器发送
任何请求来关闭Session,自然Session也不会被销毁,但是可以做一点努力,在所有的
客户端页面里使用js的window.onclose来监视浏览器的关闭动作,然后向服务器发送一
个请求来关闭Session,但是这种做法在实际的开发中也是不推荐使用的,最正常的办法
就是不去管它,让它等到默认的时间后,自动销毁
那么为什么当我们关闭浏览器后,就再也访问不到之前的session了呢?
其实之前的Session一直都在服务器端,而当我们关闭浏览器时,此时的Cookie是存在
于浏览器的进程中的,当浏览器关闭时,Cookie也就不存在了。
其实Cookie有两种:
- 一种是存在于浏览器的进程中;
- 一种是存在于硬盘上
而session的Cookie是存在于浏览器的进程中,那么这种Cookie我们称为会话Cookie,
当我们重新打开浏览器窗口时,之前的Cookie中存放的Sessionid已经不存在了,此时
服务器从HttpServletRequest对象中没有检查到sessionid,服务器会再发送一个新的存
有Sessionid的Cookie到客户端的浏览器中,此时对应的是一个新的会话,而服务器上
原先的session等到它的默认时间到之后,便会自动销毁。
ps:
当在同一个浏览器中同时打开多个标签,发送同一个请求或不同的请求,仍是同一个session;
当不在同一个窗口中打开相同的浏览器时,发送请求,仍是同一个session;
当使用不同的浏览器时,发送请求,即使发送相同的请求,是不同的session;
当把当前某个浏览器的窗口全关闭,再打开,发起相同的请求时,就是本文所阐述的,是不同的session,但是它和session的生命周期是没有关系的.
-
当浏览器关闭后,Session就销毁了吗?
2019-01-01 23:46:34我们知道Session是JSP的九大内置对象(也叫隐含对象)中的一个,它的作用是可以保存当前用户的状态信息,初学它的时候,认为Session的生命周期是从打开一个浏览器窗口发送请求到关闭浏览器窗口,但其实这种说法是不... -
当浏览器关闭时,Session就被销毁了?
2018-01-23 15:56:00今天想和大家分享一个关于Session的话题: 当浏览器关闭时,Session就被销毁了?...口发送请求到关闭浏览器窗口,但其实这种说法是不正确的!下面就具体的去解释: 当用户第一次访问Web应用中支持S -
Qt Creator 的安装和hello world 程序+其他程序的编写--不是一般的好
2011-01-28 17:02:08//如果不正确,弹出警告对话框 } } 并在logindlg.cpp 中加入#include 的头文件。如果不加这个头文件, QMessageBox 类不可用。 9.这时再执行程序,输入用户名为qt,密码为123456,按登录按钮便能进入主 窗口了,如果... -
Session的生命周期
2019-02-14 21:52:26今天想和大家分享一个关于Session的话题: 当浏览器关闭时,Session就被销毁了?...口发送请求到关闭浏览器窗口,但其实这种说法是不正确的!下面就具体的去解释: 当用户第一次访问Web应用中支持Session的某个网页时... -
关于Session的知识点
2017-06-11 21:35:58今天想和大家分享一个关于Session的话题: 当浏览器关闭时,Session就被销毁了?...口发送请求到关闭浏览器窗口,但其实这种说法是不正确的!下面就具体的去解释: 当用户第一次访问Web应用中支持S -
session、cookie与token的个人理解
2019-03-29 15:24:12之前一直认为当关闭浏览器窗口的时候session就会销毁,其实这种说法是不正确的。当session开始时,servlet容器会创建一个HttpSession对象,在这个HttpSession对象中,可以保存用户的状态信息,servlet容器为HttpSe..... -
[OA自动化]办公自动化习题.doc
2020-06-29 20:43:06OA自动化办公自动化习题 一单项选择题 B1对文件进行操作前要一次选择多个不...只需逐个单击要选择的文件 D2下列关闭一个窗口的方法中不正确的是_ A.单击窗口在右上角的"X"按钮B.双击窗口左上角的"控制菜单"图标 C.按[Al -
Java web之四session
2017-05-23 17:12:22当浏览器关闭时,Session就被销毁了?Session是JSP的九大内置对象(也叫...但其实这种说法是不正确的!☆ Session的运行机制 当一个Session开始时,Servlet容器会创建一个HttpSession对象, 那么在HttpSession对象中 -
【云扩RPA】OpenBrowser_Quiz
2020-11-07 11:07:29关于关闭标签页组件,下列哪项说法是正确的? 必须指定要关闭哪个标签 默认关闭第一个标签 此组件仅能在打开浏览器和绑定浏览器中使用 选择器属性值可为空 关于打开浏览器组件,下列哪项说法是正确的? 可选择... -
Session生命周期
2019-04-11 09:15:41今天想和大家分享一个关于Session的话题: 当浏览器关闭时,Session就被销毁了?...口发送请求到关闭浏览器窗口,但其实这种说法是不正确的!下面就具体的去解释: 当用户第一次访问Web应用中支持Session的某个网页时... -
Session会话周期
2018-02-01 21:03:57今天想和大家分享一个关于Session的话题: 当浏览器关闭时,Session就被销毁了?...口发送请求到关闭浏览器窗口,但其实这种说法是不正确的!下面就具体的去解释: 当用户第一次访问Web应用中支持S -
session cookie
2017-04-09 09:01:00当浏览器关闭时,Session就被销毁了?...口发送请求到关闭浏览器窗口,但其实这种说法是不正确的!下面就具体的去解释: 当用户第一次访问Web应用中支持Session的某个网页时,就会开始一个新的Sessio... -
flash shiti
2014-03-14 10:32:4116. 下面的语句说法正确的是: □ A. 目前Flash 最新的创作平台是Flash MX,播放插件是Flash MX Player。 □ B. 目前Flash 最新的创作平台是Flash MX,播放插件是Flash 6.0 Player。 □ C. 目前Flash 最新的创作平台... -
会计理论考试题
2012-03-07 21:04:4013.下列关于计算机病毒的说法中,正确的是 __A___ 。 A、计算机病毒通常是一段可运行的程序 B、反病毒软件可清除所有病毒 C、加装防病毒卡的微机不会感染病毒 D、病毒不会通过网络传染 14.在Windows98中,如果删除了... -
ExtAspNet v2.2.1 (2009-4-1) 值得一看
2010-04-01 09:41:27-修正了弹出菜单的位置在Firefox下不正确的BUG(feedback:eroach)。 -为TriggerBox和TwinTriggerBox增加EnableEdit属性。 -使用Hidden来显示隐藏ExtAspNet控件,而不是使用Visible属性(Visible目前设置为只读属性... -
ExtAspNet_v2.3.2_dll
2010-09-29 14:37:08-修正了弹出菜单的位置在Firefox下不正确的BUG(feedback:eroach)。 -为TriggerBox和TwinTriggerBox增加EnableEdit属性。 -使用Hidden来显示隐藏ExtAspNet控件,而不是使用Visible属性(Visible目前设置为只读属性... -
网管教程 从入门到精通软件篇.txt
2010-04-25 22:43:49如果不带任何参数,chkdsk 将显示当前驱动器中的磁盘状态。 drive: 指定要 chkdsk 检查的驱动器。 /p 即使驱动器不在 chkdsk 的检查范围内,也执行彻底检查。该参数不对驱动器做任何更改。 /r 找到坏扇区并...
-
idea git 删除错误提交
-
什么是SYSML:registered:?
-
ApacheFlink漫谈系列-概述
-
聊聊分布式事务,再说说解决方案
-
通过有源射频锁相实现稳定的光纤时间传输
-
程序员必修基础套餐课
-
Python启蒙到架构师的核心技术精讲课程
-
易意-源码
-
基于电商业务的全链路数据中台落地方案(全渠道、全环节、全流程)
-
MMM 集群部署实现 MySQL 高可用和读写分离
-
Markdown 标记语言
-
元素周期表-three.js实战详解
-
从理论到试验台,WiFi DCF网络的性能评估
-
用微服务spring cloud架构打造物联网云平台
-
电商PC前后端分离项目Spring Boot后台实战第一期
-
数据仓库多维数据模型设计
-
朱老师c++课程第3部分-3.5STL的其他容器讲解
-
构建低成本高密度Wi-Fi网络实验床
-
C++11 14 17 20 多线程从原理到线程池实战
-
uniapp下拉刷新