初学javaee
Session①
什么是Session
Session指的是在一段时间内,单个客户与Web服务器的一连串相关的交互过程。
• Session用于跟踪客户的状态。
• 在一个Session中,客户可能会多次请求访问同一个网页,也有可能请求访问一个Web应用的多个页面。
• JSP利用servlet提供的HttpSession接口来识别一个用户,存储这个用户的所有访问信息。
Session 运行机制
1.当一个Session开始时,Servlet容器将创建一个HttpSession对象,在HttpSession对象中存放客户状态的信息。
2.Servlet容器为HttpSession对象分配一个惟一标志符,称为Session ID。Servlet容器把Session ID作为Cookie保存在客户端的浏览器中。
3.客户向Web应用发出HTTP请求时,会发送包含SessionID的Cookie,Servlet容器从HttpRequest对象中读取Session ID,然后根据Session ID找到相应的HttpSession对象,从而获取客户的状态信息。
4.不断重复步骤3,直到当前Session被销毁
HttpSession API接口
Session的生命周期
什么情况下,开始一个会话Sesion?
• 当客户第一次访问Web应用中支持Session的某个网页时,会开始一个新Session。
当客户浏览这个Web应用的不同网页时,始终处于同一个Session。
• 当客户浏览器与Web应用的一次会话被销毁后,客户端再次访问Web应用的任一网页,开始新的Session。默认情况下,JSP网页都是支持Session的,也可通过语句显示声明支持Session:<%@ page session=“true”>
哪些情况,Session将结束生命周期,Servlet容器会将Session所占用的资源释放掉:a. 客户端关闭浏览器、b. Session过期、c. 服务器端调用了HttpSession的invalidate()方法
• Session过期是指当Session开始后,在一段时间内客户没有和Web服务器交互,Servlet容器会销毁该Session。
• HttpSession类的setMaxInactiveInterval()方法设置允许Session保持不活动状态的时间,如果超过这一时间,Session就会失效。
•Tomcat设定的会话默认不活动时间为1800