先讲怎么设置Session吧,其实也很简单,一句话写Session:

HttpSession session = req.getSession(true);             //获得一个Session,没有的话就创建新的
session.setAttribute("IP", req.getRemoteAddr());       //设置Session,一个IP地址

这样我们的Session就写好了,再来读它:

String ip = (String)session.getAttribute("IP");//这就取到了

 

上面两句看上去没有上面联系,其实不是的,Session是没有状态的,也就是说,你这次写的Session会被保存在服务器上,但与客户端是不会一直联系着的,只有当你下次要用的时候去取,那怎么知道要取的就是你的呢,服务器上有很多Session呢,这个就是与Cookie有关了,创建一个Session会产生一个SessionId,这个是唯一的,会被保存在Cookie中,用的时候其实就是用这个SessionId去找对应的Session对象。如果Cookie被禁用了,Session也同样会失效,但可以URL重写来解决这个问题,就是说我们建立一个Session的时候把它那个值放在一个隐藏的文本字段中,随着HTTP协议一起传来传去,这样我们就始终有SessionId。Session默认在服务器上的存活时间是30分钟,这个在web.xml中可以设置。

 posted on 2012-07-15 17:11  MBingo  阅读(151)  评论(0编辑  收藏  举报