Servlet--Session创建时间
Servlet--Session创建时间
一、Session创建过程
A、第一个调用request.getSeesion()
1、IE浏览器第一次向web项目发送一个请求。(这里项目的名称是 myWeb)
2、Tomcat接收到请求后,准备request和response两个对象,调用myweb项目的servlet 类的doGet 或者doPost 方法,并传递request和response值。
3、doGET方法中执行了 request.getSession() 方法。
4、tomcat接收到请求后,为myweb项目创建一个Httpsession,并记录它属于myweb项目,且属于这个IE浏览器。
B、第二次调用request.getSeesion()
1、IE浏览器第二次向web项目发送一个请求。(这里项目的名称是 myWeb)
2、Tomcat接收到请求后,第二次准备request和response两个对象,调用myweb项目的Oneservlet 类的doGet 或者doPost 方法,并传递request和response值。
3、doGET方法中执行了 request.getSession() 方法。
4、Tomcat接收到请求后,先检查有没有给myweb项目创建一个HttpSession,如果已创建则返回给客户端。如果没有创建则创建。
5、第二次请求不会创建新的session,因为第一次已经给这个myweb的OneServlet类创建了一个Session
C、第三次调用同一个项目的另一个Servlet
1、IE浏览器第二次向web项目发送一个请求。(这里项目的名称是 myWeb)
2、Tomcat接收到请求后,第二次准备request和response两个对象,调用myweb项目的Toeservlet 类的doGet 或者doPost 方法,并传递request和response值。
3、doGET方法中执行了 request.getSession() 方法。
4、Tomcat接收到请求后,先检查myweb项目是否有Session ,该项目在第一次请求的时候已经创建了Session。所以这次直接返回没有创建。
5、tomcat判断是否创建了Session条件是IE浏览器是否为同一个浏览器,是否请求的是同一个项目。和项目中的Servlet类没有关系。
二、Session创建时间结论
1、Session创建时间-----当程序员第一次调用了request.getSession() 就创建这个项目的这个浏览器的Session
2、再次访问,如果是同一个项目,且同一个浏览器,就不会再创建Session
3、Session的默认有效时间为30分钟。
4、不同的浏览器访问同一个项目,会创建多个Session
5、Session都是由Tomcat容器来维护
6、每一个Seesion都拥有一个唯一的UUID标示符
7、HttpSession是与某个浏览器相关的,一个浏览器就是一个Session
8、Session用于记录某个用户的信息,且不会和其他人冲突。
文章来源: brucelong.blog.csdn.net,作者:Bruce小鬼,版权归原作者所有,如需转载,请联系作者。
原文链接:brucelong.blog.csdn.net/article/details/75834732
- 点赞
- 收藏
- 关注作者
评论(0)