HttpSession

1.Cookie可以将会话状态保存在客户端,Session可以将会话状态保存在服务器端

2.Session是一个会话级别的的对象,一次会话对应一个Session对象

3.什么是一次会话?
用户打开浏览器,可以将对浏览器发出多次请求,直到最终关闭浏览器表示一次完整的会话

4.在会话进行过程中,web服务器一直为当前用户维护一个会话对象/HttpSession

5.web容器中维护了大量的Session对象,换句话说web容器中应该有一个Session列表

6.为什么当前会话每一次都可以获取到自己的Session?Session的实现原理?
-打开浏览器,向浏览器发出首次请求
-服务器会创建一个HttpSession对象,该对象代表一次会话
-同时生成该Session对象对应的Cookie对象,并且Cookie对象的name是JESSIONID,Cookie的value是32为长度的字符串
-服务器将Cookie的value和HttpSession对象绑定到Session列表中
-服务器将Cookie完整的发到浏览器客户端
-浏览器客户端将Cookie保存到缓存中
-只要浏览器不关闭,Cookie就不会消失
-当再次发送请求时,会自动提交缓存中的Cookie
-服务器接收到Cookie,验证Cookie的name确实是JESSIONID,然后获取Cookie的value
-通过Cookie的value去Session列表中检索Session对象
HttpSession
HttpSession
HttpSession
HttpSession
HttpSession

HttpSession常用的方法
-void setAttribute(String name,Object obj)
-Object getAttribute(String name)
-void remoteAttribute(String name)
-void invalidate()
HttpSession
HttpSession
HttpSession