资讯动态

Spring MVC(3)-Cookie和Session

发布时间:2026/10/26 1:51:30 来源:尧图企业网站定制
1.HTTP协议无状态什么叫无状态HTTP协议是无状态的就是没有记忆力默认情况下HTTP协议的客户端和服务器之间这次通信和下次通信之间没有直接的联系。Cookie客户端Session服务器Session类似于一个哈希表存储键值对结构2.一个客户端对应一个sessionID当用户登陆服务器时服务器会在Session中新增一个记录并把【sessionId】返回给【客户端】通过HTTP响应中的Set-Cookie字段返回——》客户端后续再给服务器发送请求的时候都会在请求中带上【sessionId】通过HTTP请求中的Cookie字段带上——》服务器收到请求后根据请求中的sessionId 在Session信息中获取到 对应用户信息再进行后续操作如果根据sessionId找不到对应Session信息服务器就会重新创建Session并把SessionId返回给客户端。3.获取Cookie1.传统获取Cookie内置对象2.简洁获取CookieCookieValueCookieValue String type直接从本次请求携带的Cookie里取出指定名字的【Cookie值】并赋值给后面的参数【type】4.获取SessiongetSession底层等价于getSessiontrue作用是拿到当前请求对应的HttpSession对象true如果这个请求已经带了JSESSIONID服务器找到对应的session返回这个session如果没有找到session服务器会自动创建一个Session并且把新的sessionId放到Cookie返回给浏览器。false如果能找到对应的session返回这个session如果没有找到session不会创建直接返回null。客户端请求服务器会set-Cookie返回一个值客户端把这个值设置进Cookie里。接收参数【HttpServletRequest】与【HttpRequest】的区别HttpSessionSpring MVC底层帮你调用request.getSession把session对象直接传进来。5.设置Session设置session前 先获取session获取session服务端有多个HttpSession每一个访问网站的浏览器用户都会单独分配一个属于她的Session对象。各个session对象互不干扰服务器内部用以一个map存。第一次getSession对象用户第一次访问网站浏览器还没有JSESSIONID这个Cookie。调用getSession服务器新建一个Session生成唯一的sessionId把sessionId放到Cookie里返回给浏览器浏览器存下这个Cookie后续getSession对象的区别根据代码true浏览器带着JSESSIONID来服务器拿着sessionId去找对应的session找到就返回已有的找不到就返回一个新建的false找到就返回已有的找不到直接返回null根据sessionId取到对应的session对象浏览器每次请求自动带上Cookie里面存着sessionId。服务器拿到这个sessionId去session容器里按id找对应的session后续就可以读取里面存的信息换sessionId可以调用session.invalidate()让当前 session 直接失效重启服务器session会丢失要重新设置Tomcat的session默认存在服务器内存里服务器一关内存全部清空所有session直接消失6.获取Header1.2.RequestHeaderRequestHeader (User-Agent) String UserAgent:从请求头里取出指定名字的请求头的值赋给后面的参数UserAgent

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑