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

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种选择。

引用
1,只废气自己的会话。
removeAttribute("key");

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

3,调用logout将客户从WEB服务器中注销。

你可能感兴趣的:(java,Web,应用服务器,网络应用,网络协议)