Session:称为“会话控制”。Session 对象存储特定用户会话所需的属性及配置信息。
(1)当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。
(2)当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象。
(3)当会话过期或被放弃后,服务器将终止该会话。
Session 对象最常见的一个用法就是存储用户的首选项。例如,如果用户指明不喜欢查看图形,就可以将该信息存储在 Session 对象中。
Session机制:
- session机制采用的是在服务器端保存 HTTP 状态信息的方案 。
- 服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息。
- 当程序需要为某个客户端的请求创建一个session时,服务器首先检查这个客户端的请求里是否包含了一个session标识(即sessionId),如果已经包含一个sessionId则说明以前已经为此客户创建过session,服务器就按照session id把这个session检索出来使用(如果检索不到,可能会新建一个,这种情况可能出现在服务端已经删除了该用户对应的session对象,但用户人为地在请求的URL后面附加上一个JSESSION的参数)。如果客户请求不包含sessionId,则为此客户创建一个session并且生成一个与此session相关联的sessionId,这个session id将在本次响应中返回给客户端保存。
![](https://i-blog.csdnimg.cn/blog_migrate/3c9cbdda758eb2767b34b2a2e1d14f1c.png)
参考:https://blog.csdn.net/yuchao2015/article/details/55806504