JAVA WEB中的 会话跟踪 (基于Cookie或者HTTPSession)

本文介绍HTTP作为无状态协议的问题,并探讨如何通过使用Cookie、URL重写等方法解决上下文缺失问题。重点讲解了利用HTTPSession进行会话管理的方法,包括会话对象的创建、存储及销毁过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HTTP是“无状态”的协议,每读取一个页面都要建立一次单独的连接,服务器不会自动去维护客户的上下文信息,一般来说就算是支持持续性的HTTP连接的服务器也不会内建维护上下文信息。
没了上下文的支持,导致解决类似购物车这样需求难以实现。对于这类需求我们可以使用Cookie,URL重写,隐藏表单的形式来实现。但是使用这些实现都不自在。一般我们会使用HTTPSession来实现我们的这一需求。

HttpSession session=request.getSession();


首先,HttpSession对象存在于服务器端,它们不会在网络上来回传送,它们是通过某种后台机制,比如:COOKIE或URL重写自动与客户关联在一起,这些会话对象中拥有内建的散列表的支持,可以任意去存储任意数量的键与值。查找之前存储的值使用session.getAttribute("key");

如:

HttpSession session=request.getSession();
User user=(User)session.getAttribute("id");
if(user=null){
user= new User();
user.setId(1);
session.setAttribute("User",user);
}


如果需要在系统中实现分布执行,需要对会话属性实现Serializable接口。

如果要废气这个会话,可以有3种选择。

[quote]1,只废气自己的会话。
removeAttribute("key");

2,使用invalidate。废气整个当前WEB应用会话。

3,调用logout将客户从WEB服务器中注销。[/quote]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值