SpringBoot高级开发(9)Spring中的HttpSession

发布时间 2023-12-08 12:28:53作者: 东方春

1、简述

HttpSession是javaWeb提供的,用来处理会话事务的。session数据保存在后台,当然首次开启会话(即调用req.getSession())的时候也会将该SessionID数值传给前端用作Cookie

2、作用范围

首次访问服务器开始,浏览器关闭后就结束。后端的Session可以存储30分钟,如果30分钟无任何请求,就自动删除。

3、流程

假设后端一个接口如下

    @RequestMapping("/test")
    public HashMap<String,Object> test(HttpServletRequest req) {
        HttpSession session = req.getSession();
        session.setAttribute("test", "no");
        return XXXXX;
    }

step1:前端首次访问/test,此时请求头不带任何Cookie。后端test函数接收到请求后,由于调用了req.getSession()函数,所以后端会创建一个session对象保存在后台,并且在请求返回之后自动给前端植入一个JSESSIONID=XXXXX的Cookie
step2:前端第二次访问的时候,此时请求头自动携带了JSESSION=XXXX的Cookie数据。此时后端的session就是step1中产生的session对象,对量里可以通过setAttr和getAttr来读写基于这个用户的数据。
step3:如果用户关闭浏览器。那么前端的这个JSESSIONID得Cookie就没了。后端的session对象,如果30分钟无任何请求,就自动删除。
此过程中,前端什么都不用做。

4、