怎样销毁session中的各个变量

在j2ee中,要在用户点击退出后把session变量清空,可在action类中使用一下代码:

HttpSession session = request.getSession();
  for(Enumeration e = session.getAttributeNames(); e.hasMoreElements();){
   String var = e.nextElement().toString();
   if(session.getAttribute(var)!=null){
    session.removeAttribute(var);
   }
  }

1.session.getAttributeNames(); 会得到一个enumeration类型数据,然后在使用上述格式进行遍历,为安全起见,先判断一下session.getAttribute(var)!=null,然后再进行清除,enumeration类型数据使用上述方法进行遍历

2.在一个hasMoreElements()方法后只能使用一次nextElement()方法,如果第二次调用的话将出现java.util.NoSuchElementException异常

3.有时将有一个org.apache.struts.action.LOCALE对象用于struts的国际化

 

待解决问题:如果一个页面点击链接打开了另外一个新的窗口,那么两个页面将共同使用一个session变量,在新打开的页面有可以打开更多页面,如果这样在后打开的页面中,点击退出的话,页面定位到重新登录页面,有以一个新的用户类型进行登录了,session中将重新注入新的变量,那么在其他没有关闭的窗口中将无法也公用新的session变量,那将会产生新的问题,如何把使用相同session变量的页面全部关闭?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值