Tomcat建立会话流程

当客户浏览器打开后第一次访问Tomcat服务器,在编程调用request.getSession()方法后建立Session(一般是认证成功后,调用getSession(),其实在这之前Session并不存在,所以在登录之前一般是没有session的),存入一个ConcurrentHashMap,Key是SessionId,Value就是HttpSession。然后请求完成后,在返回的报文中添加Set-Cookie:JSESSIONID=xxx,然后客户端浏览器会保存这个Cookie。当浏览器再次访问这个服务器的时候,都会带上这个Cookie。Tomcat接收到这个请求后,根据JSESSIONID把对应的HttpSession对象取出来,放入HttpSerlvetRequest对象里面。

重点:

1.HttpSession会一直存在服务端,实际上是存在运行内存中。除非Session过期 OR Tomcat奔溃 OR 服务器奔溃,否则会话信息不会消失。

2.如无特殊处理,Cookie JSESSIONID会在浏览器关闭的时候清除。

3.Tomcat中HttpSesion的默认过期时间为30分钟。

4.这些处理都在Security的拦截链之前完成。

posted @ 2022-02-16 22:35  hjy1995  阅读(129)  评论(0编辑  收藏  举报