HttpSession和Session的区别

本文详细介绍了JSP内置对象Session的作用、创建过程以及与ServletSession的异同。强调了Session在会话管理中的重要性,尤其是在HTTP协议无状态特性下的用户状态保持。

jsp内置对象Session

Session对象是一个JSP内置对象,它在第一个JSP页面被装载时自动创建,完成会话期管理。从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间切换,服务器应当通过某种办法知道这是一个客户,就需要Session对象。

当用户首次访问jsp页面时,jsp引擎会创建一个Session对象,并分配一个ID,这个ID会发送给客户端并保存在Cookie中,这样就建立起了客户端和服务端之间的会话关系。这种对应关系在客户关闭浏览器时被销毁,等待下一次访问服务器时再创建一个新的Session对象。

HttpSession

HttpSession对象将在用户第一次访问服务器时由容器创建,当用户调用其失效方法(invalidate())或超过其最大不活动时间时会失效,在会话有效期间,用户与服务器之间的多次请求都属于同一会话。

服务器在创建session对象时,会为其分配一个唯一的会话标识sessionID,以JSESSIONID的属性名保存在客户端Cookie中。在用户的后续请求中,服务器通过获取Cookie中的JSESSIONID属性值来识别不同的用户,从而实现对每个用户的会话跟踪。

区别

sp的Session和Servlet的Session本质上是一致的,区别是:jsp中session是作为隐式对象存在的,可以直接使用;Servlet中的session需要手动提取后才能使用.

Session在网络中被称为会话。由于HTTP协议是一种无状态的协议,也就是当一个客户端发送请求,服务器端收到请求,并返回响应后,该连接就结束了,而服务器不保存任何相关的信息。为了弥补这一缺点,HTTP协议提供了session。通过session可以在应用程序的web页面间进行跳转时,保存用户的状态,使得整个用户会话一直存在下去,直到浏览器关闭。

一个session就是一系列某用户和服务器间的通讯。服务器有能力分辨出不同的用户。一个session的建立是从一个用户向服务器发第一个请求开始,而以用户显式结束或session超时为结束。当需要为用户端建立一个session时,servlet容器就创建了一个HttpSession对象。其中存储了和本session相关的信息。所以,在一个servlet中有多少个不同用户连接,就会有多少个HttpSession对象。
 


参考文章:httpSession和Session傻傻分不清_httpsession session_时间邮递员的博客-优快云博客

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值