-
httpsession
是javaWeb服务端创建的用来与客户端建立会话状态的对象,
客户端访问服务器是以请求方式来进行访问,请求是基于http协议,http协议是单向性,无状态,
无状态:当客户端访问服务器后,服务器并不会记录客户端的信息,
想要服务器与客户端保存关系记录是靠cookie 和session对象, -
session共享
一个浏览器访问多个web服务器,服务器中的session数据需要共享, -
session 共享的使用场景
1 单点登录:一个应用可以有多个服务,访问一个服务后,这个服务会有一个session对象,当在访问另外的服务时还需要重新创建session对象,这个是很麻烦的,如果单独建立一个session服务用来管理session对象,这样通过创建一个session对象利用session服务来访问每一个服务,这样就是保持了一个session多个服务,
2 web服务器集群:当一个应用是横向扩展就是集群,通过负载均衡来使用不同的web服务,但是还要保持一个session对象, -
session共享的实现方式
1 session复制 开启服务器中的session复制,在集群中的服务器之间同步session对象,
2 独立部署一个session服务器进行统一管理,客户端和服务器之间交互时都需要session服务器来管理,
可以使用redis或是mongoDB等内存数据库,来保存session中的数据,替换掉httpsession,达到session共享, -
SpringSession
SpringSession是spring项目之一,提供了创建和管理ServletHttpSession的方案,默认采用redis来存储session数据,来解决session对象共享的问题, -
httpsession
服务器会为每一个用户创建一个独立的httpsession对象,
当用户第一次访问servlet时,服务器给用户创建一个独立的httpsession对象,并生成一个session id,这个sessionId会在浏览器响应时返回给客户端放到cookid对象中,
当用户第二次访问servlet时,请求中会带着sessionid去访问,这样来识别session对象,算是身份验证,
域的范围 context > session >request
session对象生命周期是会话不结束之前,默认是20分钟, -
session 进行身份验证
当第一次访问服务器时,客户端的请求没有标识,服务器无法识别客户端请求身份,所以会创建一个对应的session对象,在响应时会返回session ID给客户的cookie中,key -value形式的保存, -
servlet中的三大作用域
1 request 作用域为当前请求连接,一般用于参数传递,
2 session 会话对象,session数据只能在当前会话中所有servlet共享,
3 servletContext对象,服务器会为每一个web应用创建一个servletContext对象,声明周期是在服务器启动之后和关闭之前,
创建一个javaWeb项目就是一个servelt -
httpServletRequest对象
这个对象是浏览器客户端的请求,客户通过http协议访问服务器时http请求所有信息都会被tomcat解析封装在这个对象中,
这个对象的生命周期:当请求到达tomcat时,tomcat会创建httpServletRequest对象,封装成参数传递到servlet中,当处理完成后该对象生命结束, -
httpServletResponse对象
httpServletResponse对象代表服务器的响应,这个对象封装响应给浏览器的信息,响应可以存放重定向, -
ServletContext对象
Servlet上下文对象,全局唯一,所有对象共享,
作用是相对路径转绝经路径,配置信息, -
httpsession对象
保存在服务器,数据是key-value结构,
httpSession对象是维持客户端和服务器之间的会话状态,
销毁httpSession对象有两种方式
超时时间 默认最后一次请求之后的30分钟,
调用invallidata方法来销毁, -
springsession
http协议是无状态的,为了保存会话信息,浏览器用cookie服务器用session来保存数据,
但是如果是集群,多进程的场景,显然不同的服务器上同一个客户端请求的sessionid是不一样的,
所以要实现session数据共享的问题, springsession就是将session数据存放在数据库中,
添加springsession data redis 可以将session存放到redis中,
使用注解@EnableRedisHttpSession
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)