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怎么产生相关推荐

  1. java 获取发布后的路径问题_Java中的路径问题实例分析

    Java中的路径问题实例分析 前言:关于Java中得路径问题,网上有很多获取的答案,我这篇文章的目的在于说明获取路径时一些不常见的概念.在实际应用中使用的比较多的就是,当前路径和配置文件的路径(其他文 ...

  2. java 获取前/后一秒时间

    public voidgetNextTime(){Date date = new Date();Calendar c = Calendar.getInstance();c.setTime(date); ...

  3. java获取页面标签_java获取网页源代码后,提取标签内容……

    java获取网页源代码后,提取标签内容-- 关注:245  答案:2  mip版 解决时间 2021-02-01 09:11 提问者咏bù琂败 2021-01-31 13:49 import java ...

  4. java 获取指定日期的前几天或后几天

    /*java获取指定日期的前几天或后几天@param datestr指定日期* @param format 日期格式* * @param flag true为获取后几天, false:为获取前几天* ...

  5. java行程单解析获取内容_java如何抓取网页上的动态信息,获取源代码后如何分析JS?...

    首先明确我指的动态数据是什么. 名词定义:动态数据在这里指的是网页中由Javascript动态生成的页面内容,即网页源文件中没有,在页面加载到浏览器后动态生成的. 下面进入正题. 抓取静态页面很简单, ...

  6. 提供源码:java获取节假日、工作日,存入数据库,查找指定日期前一天,后一天。

    提供源码:java获取节假日.工作日,存入数据库,查找指定日期前一天,后一天. 码云地址: https://gitee.com/guyuanman/holiday 业务场景: 好多公司的业务在处理的时 ...

  7. java获取Date类型时间的前3个月,后3个月,前3天,后3天

    java获取Date类型时间的前3个月,后3个月,前3天,后3天 Calendar cal = Calendar.getInstance(); Date date = new Date(); cal. ...

  8. nginx反向代理后,java获取真实ip和解决request.getServerName()的问题

    1. nginx.conf的server下增加以下配置 #解决request.getServerName()的问题proxy_set_header Host $host:$server_port;pr ...

  9. Java获取照片的Exif信息,并解析GPS

    Java获取照片的Exif信息,并解析GPS 1. 效果图 2. 什么是Exif? 3. 源代码 参考 ❤️ 这篇博客将介绍什么EXIF,以及如何用Java语言读取Exif信息,并转换经纬度为位置信息 ...

最新文章

  1. python类型-Python基本内置数据类型有哪些?
  2. Android按比例布局之layout_weight和weightSum的使用
  3. spark ui_Spark UI的见解
  4. C++ 深拷贝与浅拷贝
  5. windows下python 版本opencv 安装
  6. java参数化比特值,在Java中使用泛型的可选参数化
  7. android 按端口获取流量,如何获取高性价比流量、开拓流量端口
  8. linux centos杀毒软件,在CentOS系统上安装开源杀毒软件ClamAV
  9. uni-app实现一键登录
  10. 【原创】objdump 的使用
  11. 常见的图片格式及适用情况
  12. Java程序员辛勤工作7年被裁,背后的思考与总结
  13. Filebeat实现简单格式化数据dissect
  14. 笔记-CTA认证需要的操作, 应用可卸载, 系统还原后应用重装--Camera模块
  15. Python 实现读取文本内容、文件重命名、替换文本内容
  16. Java中append方法和add方法的区别
  17. Java面向对象01:什么是面向对象
  18. C++11 解决内存泄露问题的智能指针:shared_ptr、unique_ptr、weak_ptr
  19. 概念:监督学习、无监督学习与半监督学习
  20. 更新“源列表”+中文输入法【第一弹】

热门文章

  1. 黑盒测试用例设计 - 等价类划分法
  2. vs 指定的启动url无效
  3. ArcMap自定义图片符号
  4. USB不同接口的速率峰值
  5. jprofiler远程监控JVM( spring boot项目)
  6. vc6sp6官方下载地址
  7. spark踩坑之sc这个东东的特殊性
  8. 明解C语言入门篇_第5章_数组
  9. 变频器的本地控制和远程控制功能使用说明
  10. java 井号转义字符,井号'#'用英语怎么说(计算机字符 - 英文读音)