SESSIONID在何时生成?

一直都是只浅显地了解到session是保存在服务器端,保存用户信息,没有深究过session是在何时生成的,在最近找工作面试的时候突然被问及到,很是懵比。。。话说,纸上得来终觉浅,绝知此事要躬行。所以以下通过简单的Servlet项目了解一下在什么时候生成sessionId.

Paste_Image.png

大概的项目部署就是如上图所以,将项目部署在Tomcat8中,然后通过Nginx反向代理。
以下就是通过一步一步跟踪的结果:

  1. 直接访问项目根目录下的hello.html文件,不会生成JSESSIONID
Paste_Image.png
  1. 访问index.jsp文件,会生成JSESSIONID
Paste_Image.png
  1. 访问servlet,不传session参数,通过断点发现确实访问到了servlet,不会生成JSESSIONID
Paste_Image.png
Paste_Image.png
  1. 传入session参数,通过调用request.getSession()或者request.getSession(true),生成JSESSIONID
Paste_Image.png
Paste_Image.png
  1. 传入session参数,通过调用request.getSession(false)不会生成JSESSIONID
Paste_Image.png
Paste_Image.png

通过查阅网上资料,知道session在调用request.getSession()方法时生成,在调用session.invalidate()或者超时销毁。

访问jsp页面生成session,是因为,session是jsp九大内置对象中的一个,jsp先是转换成Servlet,就已经建立了session对象。

demo地址:https://github.com/menm91/JavaDemos.git

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,473评论 11 349
  • 这部分主要是与Java Web和Web Service相关的面试题。 96、阐述Servlet和CGI的区别? 答...
    杂货铺老板阅读 5,245评论 0 10
  • Session机制 除了使用Cookie,Web应用程序中还经常使用Session来记录客户端状态。Session...
    薛晨阅读 11,869评论 4 34
  • 生活在日子里,淡淡的平常,常常的平淡,总想要一些波澜,有一点突破。 我喜欢唱歌,开始练习,从喜...
    默然不语了阅读 1,742评论 0 0
  • 61-80编小故事记忆 一名乡下的儿童(61)赶着牛儿(62)来到河边,遇到了流沙(63),吓得儿童赶紧把栓牛的绳...
    美腻的虾阅读 2,338评论 0 1