java获取jsessionid后_jsessionid怎么产生
Jsessionid只是tomcat的对sessionid的叫法,其实就是sessionid;在其它的容器也许就不叫jsessionid了。
首先谈一下对session对象在web开发中的创建以及sessionId生成并返回客户端的运行机制.
session对象当客户端首次访问时,创建一个新的session对象.并同时生成一个sessionId,并在此次响应中将sessionId以响应报文的方式些回客户端浏览器内存或以重写url方式送回客户端,来保持整个会话,只要sever端的这个session对象没有销毁,以后再调用request.getSession() 时就直接根据客户端的sessionId来检索server端生成的session对象并返回,不会再次去新建,除非根据此sessionId没有检索到 session对象。
下面是在IE下测试,因为IE6.0的一个BUG就是IE的隐私设置即使是阻止所有cookie时,也还是会以会话cookie来保存sessionId.所以下面都是以会话cookie来讨论的。
(1)、在server没有关闭,并在session对象销毁时间内,当客户端再次来请求server端的servlet或jsp时, 将会将在第一次请求时生成的sessionId并附带在请求信息头中并向server端发送,server端收到sessionId后根据此 sessionId会去搜索(此过程是透明的)server对应的session对象并直接返回这个session对象,此时不会重新去建立一个新的 session对象.
(2)、当server关闭(之前产生的session对象也就消亡了),或session对象过了其销毁时间后, 浏览器窗口不关,并在本浏览器窗口再次去请求sever端的servlet和jsp时,此时同样会将sessionId(server关闭或 session销毁时生成的sessionId)发送到server端,server根据sessionId去找其对应的session对象,但此时 session对象已经不存在,此时会重新生成一个新的session对象,并生成新的sessionId并同样将这个新生成的sessionId以响应报文的形式送到浏览器内存中.
(3)、当server没有关闭,并session对象在其销毁时间内,当请求一个jsp页面回客户端后, 关闭此浏览器窗口,此时其内存中的sessionId也就随之销毁,在重新去请求sever端的servlet或jsp时,会重新生成一个 sessionId给客户端浏览器,并存在浏览内存中.
总结,jsessionid的工作流程可以简单用下面的图表示:
相关学习推荐:java基础
java获取jsessionid后_jsessionid怎么产生相关推荐
- java 获取发布后的路径问题_Java中的路径问题实例分析
Java中的路径问题实例分析 前言:关于Java中得路径问题,网上有很多获取的答案,我这篇文章的目的在于说明获取路径时一些不常见的概念.在实际应用中使用的比较多的就是,当前路径和配置文件的路径(其他文 ...
- java 获取前/后一秒时间
public voidgetNextTime(){Date date = new Date();Calendar c = Calendar.getInstance();c.setTime(date); ...
- java获取页面标签_java获取网页源代码后,提取标签内容……
java获取网页源代码后,提取标签内容-- 关注:245 答案:2 mip版 解决时间 2021-02-01 09:11 提问者咏bù琂败 2021-01-31 13:49 import java ...
- java 获取指定日期的前几天或后几天
/*java获取指定日期的前几天或后几天@param datestr指定日期* @param format 日期格式* * @param flag true为获取后几天, false:为获取前几天* ...
- java行程单解析获取内容_java如何抓取网页上的动态信息,获取源代码后如何分析JS?...
首先明确我指的动态数据是什么. 名词定义:动态数据在这里指的是网页中由Javascript动态生成的页面内容,即网页源文件中没有,在页面加载到浏览器后动态生成的. 下面进入正题. 抓取静态页面很简单, ...
- 提供源码:java获取节假日、工作日,存入数据库,查找指定日期前一天,后一天。
提供源码:java获取节假日.工作日,存入数据库,查找指定日期前一天,后一天. 码云地址: https://gitee.com/guyuanman/holiday 业务场景: 好多公司的业务在处理的时 ...
- java获取Date类型时间的前3个月,后3个月,前3天,后3天
java获取Date类型时间的前3个月,后3个月,前3天,后3天 Calendar cal = Calendar.getInstance(); Date date = new Date(); cal. ...
- nginx反向代理后,java获取真实ip和解决request.getServerName()的问题
1. nginx.conf的server下增加以下配置 #解决request.getServerName()的问题proxy_set_header Host $host:$server_port;pr ...
- Java获取照片的Exif信息,并解析GPS
Java获取照片的Exif信息,并解析GPS 1. 效果图 2. 什么是Exif? 3. 源代码 参考 ❤️ 这篇博客将介绍什么EXIF,以及如何用Java语言读取Exif信息,并转换经纬度为位置信息 ...
最新文章
- python类型-Python基本内置数据类型有哪些?
- Android按比例布局之layout_weight和weightSum的使用
- spark ui_Spark UI的见解
- C++ 深拷贝与浅拷贝
- windows下python 版本opencv 安装
- java参数化比特值,在Java中使用泛型的可选参数化
- android 按端口获取流量,如何获取高性价比流量、开拓流量端口
- linux centos杀毒软件,在CentOS系统上安装开源杀毒软件ClamAV
- uni-app实现一键登录
- 【原创】objdump 的使用
- 常见的图片格式及适用情况
- Java程序员辛勤工作7年被裁,背后的思考与总结
- Filebeat实现简单格式化数据dissect
- 笔记-CTA认证需要的操作, 应用可卸载, 系统还原后应用重装--Camera模块
- Python 实现读取文本内容、文件重命名、替换文本内容
- Java中append方法和add方法的区别
- Java面向对象01:什么是面向对象
- C++11 解决内存泄露问题的智能指针:shared_ptr、unique_ptr、weak_ptr
- 概念:监督学习、无监督学习与半监督学习
- 更新“源列表”+中文输入法【第一弹】