首页 > 代码库 > session知识总结

session知识总结

0.什么是会话?

- 简单理解:打开浏览器到关闭浏览器过程中的操作、请求。

1.Session是什么?

- session是HttpSession的简称;

- 用于保存会话状态;

- 将会话状态保存在服务器端;

- Tomcat实现HttpSession的完整类名及引用:org.apache.catalina.session.StandardSessionFacade@1524e17

2.Session是用户级别的对象。

- 在一次会话过程中,web服务器为用户维护着一个会话对象。

- 在web容器中,存储着一个session列表。

3.为什么当前会话中的每一次请求都可以拿到自己的会话对象?

- 服务器响应浏览器第一次请求的时候,会创建一个session对象,同事向浏览器发送一个Cookie;

- 浏览器再次发出请求的时候,当服务器接收到该Cookie,则判断为是同一次会话。

- Set-Cookie:"JSESSIONID=B6416390E900458658B696659B5CD92B; Path=/prj-session/; HttpOnly"

- Cookie的关联路径:Path=/prj-session/;v

- 这个特殊的Cookie名字是JSESSIONID,value是一个32位长度的字符串;

- 当浏览器再次发送请求,将缓存中的Cookie发送到服务器,服务器端获取Cookie后进行验证;

- 当浏览器关闭之后,这个session对象将被销毁。

4.Cookie被禁用之后怎么办?

- 重写URL:URL;JSESSIONID=B6416390E900458658B696659B5CD92B

5.Seesion对象在什么时候被销毁?

- web服务器中引入session超时的概念;

- 当很长一段时间(这个时间可以设置)session不再被使用时,session将自动销毁

- 设置方法如下:

6.一次会话的含义:

- session对象的创建到session对象的销毁,是一次完整意义的会话。

7.HttpSession中常用的方法:

- Object getAttribute(String name)

- void removeAttribute(String name)

- void setAttribute(String name, Object value)

- void invalidate()

8.范围对象对比:

- ServletContext、HttpSession、HttpServletRequest接口

- ServletContext是应用级别对象;

- HttpSession是会话级别对象;

- HttpServletRequest是请求级别的对象;

- ServletContext在整个应用程序级别共享数据,HttpSession跨请求共享数据,HttpServletRequest 跨Servlet共享数据。

session知识总结