分享

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

 121软件 2012-04-14

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


HttpSession session=request.getSession();



首先,HttpSession对象存在于服务器端,它们不会在网络上来回传送,它们是通过某种后台机制,比如:COOKIEURL重写自动与客户关联在一起,这些会话对象中拥有内建的散列表的支持,可以任意去存储任意数量的键与值。查找之前存储的值使用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服务器中注销。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多