Session

概念介绍
Session是基于Cookie的一种会话机制。
–> 当前的域对象
Cookie是服务器返回一小份数据给客户端,并且存放在客户端上。
Session是,数据存放在服务器端。

工作流程
当访问服务器时,服务器自动检测是否携带了名为JSESSIONID的cookie

首次
服务器创建一个对象session–>生成一个id(保证无重复)
这个id与刚才创建的session对象映射,放入session池中
类map集合
map{
随机字符串:session
}
在服务器完成业务逻辑之后,在返回的内容中,服务器会将随机字符串封装成一个个cookie ==> 即new cookie(JSESSIONID, 随机字符串)由服务器自动完成,送达浏览器
–> 默认的路径是项目路径,存活时间为会话级别

非首次
服务器自动将JSESSIONID这个cookie进行取值(随机字符串)
自动去session池中取出对应的session对象

某次访问出现意外 –> 浏览器重启了
去session池中无法找到session对象
–> 重复首次操作

常用API
//创建&获取session对象
HttpSession session = request.getSession();
//获取id
String id = session.getId();
//取值
session.getAttribute(name)
//存值
session.setAttribute(name, value);
//移除值
session.removeAttribute(name);

移除Session中的元素
//强制干掉会话,里面存放的任何数据就都没有了。
session.invalidate();

//从session中移除某一个数据
//session.removeAttribute(“cart”);

Session生命周期
○ 创建
当某一个用户首次访问服务器的时候,开始他的会话
如果有在servlet里面调用了 request.getSession()
● 销毁
session 是存放在服务器的内存中的一份数据。 当然可以持久化. Redis . 即使关了浏览器,session也不会销毁。
1.关闭服务器
2.session会话时间过期。 有效期过了,默认有效期: 30分钟。
3.//强制干掉会话,里面存放的任何数据就都没有了。
session.invalidate();

简单购物车

数据准备
cart.jsp

您的购物城的商品如下:


<%
//先获取到MAP
Map

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值