美文网首页Java学习笔记
SESSIONID在何时生成?

SESSIONID在何时生成?

作者: 小愚笨 | 来源:发表于2017-06-17 21:50 被阅读274次

一直都是只浅显地了解到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

相关文章

网友评论

    本文标题:SESSIONID在何时生成?

    本文链接:https://www.haomeiwen.com/subject/mdubqxtx.html