Session 会话

一个浏览器(客户端)一个会话。同一个浏览器多个请求都是一个会话

Session 只能单服务器使用,无法直接在集群服务器使用

会话跟踪

纯 Cookie :最早的方式,不安全

Session :改进

JWT 令牌 :主流

JSESSIONID

自动设置在 Cookie 中,后端根据此值,来判断是否为同一个Session。判断自动进行,直接获取就是。

获取 Session

Controller 形参声明:

1
2
3
4
5
@Controller
public class SpringSessionController {
@GetMapping("/")
public String process(Model model, HttpSession session) {
// 。。。

HttpServletRequest request 对象获取:

1
2
public String process(HttpServletRequest request) {
request.getSession();

操作

文档:HttpSession (Servlet 4.0 API Documentation - Apache Tomcat 9.0.82)

invalidate() 使其无效

setAttribute​(java.lang.String name, java.lang.Object value)
设置属性

getAttribute​(java.lang.String name)
获取属性