引言:HTTP协议是无状态的,也就是说,当服务器接收到浏览器后,它并不知道是谁发过来的,也就没办法识别当前请求是谁发过来的,没有一个状态值来记录识别请求对象。Session可以来解决这个问题。
使用:已知可以在服务器上保存session对象,session中可以保存记录自定义的值,比如用户的登录信息,这样,当打开其他页面时,服务器可以识别当前的请求时合法的,因为从session中可以拿到用户信息。
弊端:session信息是保存在服务器中的,当集群环境有多个tomcat时,其他tomcat并不知道某个tomcat保存的session信息,导致当用户下次访问的是其他的tomcat时,会由于查询不到用户 信息而出错。所以,我们就需要做到session共享。
解决:1. 利用redis,将session信息保存到redis中,不过需要自己编码实现redis工具类来对session信息的保存和销毁进行操作;
2. 利用springsession,它就想帮我们上面对redis的操作,我们做好的相应的配置后,在操作session上跟之前单个服务器上那样操作一样,spring框架会自动帮我们把信息保存到redis中,这样,集群环境下,由于有同样的session配置,所以可以做到都去redis取session信息,也就做到session共享;