日期:2014-05-18  浏览次数:20866 次

为什么Session.invalidate()后request.getSession(true)又得到一个session的id不同,但刷新以后session的id就相同了
为什么Session.invalidate()后request.getSession(true),
又得到一个session的id不同,
但刷新以后session的id就相同了.

代码如下
<%HttpSession   s2=request.getSession(true);   %>
<%=s2.getId()%>
<%s2.invalidate();   %>
<%HttpSession   s3=request.getSession(true);   %>
<%=s3.getId()   %>

第一次访问的结果是
aWTekOtBry25ruGv2n         aGJEBV3qy5daruGv2n  
刷新一下就变成aGJEBV3qy5daruGv2n   aGJEBV3qy5daruGv2n  

为什么?

------解决方案--------------------
第一次:aWTekOtBry25ruGv2n

第二次:aGJEBV3qy5daruGv2n

第三次:aGJEBV3qy5daruGv2n

第四次:aGJEBV3qy5daruGv2n

你发现没有,第二次,第三次,第四次的值

你用 <%=session%> 来查看对象的值你就明白了。我也不知道为什么第四次的值是那个。
------解决方案--------------------
學習~~~~
------解决方案--------------------
路过,友情up
------解决方案--------------------
呵呵,我也觉得楼主的结果有点问题!呵呵:)
------解决方案--------------------
当你session 存在的时候就不为你产生新的sessionid了,没有则产生一个新的session id
------解决方案--------------------
好像清除session后,
只有刷新后才会真的清除。