我关掉浏览器后,再打开,发现上次打开时创建的session还在,我想,是cookie里存有sessionID,通过它找到服务器里还没消亡的session。那么,我在程序的最后调用session.invalidate()把服务器里的session清除掉不就行了吗,浏览器通过cookie不就找不到session了吗?
我于是在程序末尾添加了:
Mysession.removeAttribute("cart"); //斩草除根,先干小的
Mysession.invalidate(); //再干老的
request.removeAttribute("Mysession");//把祖宗也…了。
//Mysession 是Session 名字,cart 是Mysession里的一个属性。
奶奶的,就算我怎么心狠手辣,关掉浏览器,再打开,那个Mysession还在!崩溃后我想到了组织。请支援!!!!
我于是在程序末尾添加了:
Mysession.removeAttribute("cart"); //斩草除根,先干小的
Mysession.invalidate(); //再干老的
request.removeAttribute("Mysession");//把祖宗也…了。
//Mysession 是Session 名字,cart 是Mysession里的一个属性。
奶奶的,就算我怎么心狠手辣,关掉浏览器,再打开,那个Mysession还在!崩溃后我想到了组织。请支援!!!!
HttpServletResponse response) throws Exception
{
System.out.println("退出系统");
request.getSession().removeAttribute("user");
request.getSession().removeAttribute("ulimitList");
request.getSession().removeAttribute("store_owner");
request.getSession().removeAttribute("store");
request.getSession().removeAttribute("login_id");
request.getSession().removeAttribute("credit");
request.getSession().removeAttribute("ulimit");
request.getSession().removeAttribute("storeCat");
request.getSession().removeAttribute("role");
ModelAndView mav = new ModelAndView(this.indexView);
addNoticeList(mav);
return mav;
}这是我写的注销类,楼主要的就是这个把
从request里取session把
在session.invalidate()方法后面
加上session.removeAttribute()方法
试试
还有浏览器关闭有很多种原因,用户手动结束只是一种情况。还有可能同时开了几个窗口在用系统....
个人觉得最好的还是定个时间,让它自动消亡。
个人意见,哈哈
然后在看看session 如果代码里不起作用的话 在xml中设置session的时间!
偶是菜鸟. 但是我觉得清除不了的话,就设置它的失效时间吧
<session-config>
<session-timeout>失效时间</session-timeout>
</session-config>
这样既简单又方便!