JavaWeb 之 Session(会话) 总结

本文介绍了JavaWeb中的Session概念,它是一个会话级别的对象,存储在服务器端,确保重要信息的安全。Session与Cookie的主要区别在于存储位置,Cookie在客户端,而Session在服务器端。详细解析了Session的实现原理,包括会话的创建、Cookie的作用以及两者间的交互过程。此外,还探讨了Session在实际应用中的场景,如保存登录用户信息、购物车管理和存储常用数据。
摘要由CSDN通过智能技术生成

1. Session(会话)

Session 是一个会话级别的对象,一次会话对应一个HttpSession 对象。javax.servlet.http.HttpSession session,简称Session(会话)。

服务器会为每个用户创建一个Session,并存放在服务器端。

2. Session与Cookie 区别

Cookie 可以将会话状态保存在客户端,可以保存多个;
Session 可以将会话状态保存在服务器端,保存重要信息,减少服务器资源浪费。

3. Session 的实现原理

思考:为什么当前会话的每一次请求可以获取到属于自己的会话对象?

  • 打开浏览器,在浏览器上首次发送请求;
  • 服务器会创建一个HttpSession 对象,该对象代表一次会话;同时生成HttpSession 对象和与之对应的Cookie 对象,并且Cookie 对象的name 是JSESSIONID,Cookie 的Value 是32位长度的字符串;
  • 服务器将Cookie 的Value 和HttpSession 对象绑定到Session 列表中;
    Session 列表:在Web 容器中有一个Session 列表,用于维护大量的HttpSession 对象。
  • 服务器将Cookie 完整发送给浏览器客户端;
  • 浏览器客户端将Cookie 保存到缓存中,只要浏览器不关闭,Cookie 不会消失;
  • <
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值