javascript+Struts2解决退出清空session以后,点击后退按钮显示原页面信息的问题

Javascript代码:

function outLogon() {
    location.replace("outLogon");  //outLogon即是你所要转的退出登录的Action地址
}

Action代码(Struts2):

 //清空session
 ActionContext.getContext().getSession().clear();
  //使HttpSession失效
  ServletActionContext.getRequest().getSession().invalidate();
 

这样处理之后,点击浏览器的后退按钮,则出现的页面将不会再显示关于session中的信息。

如果Javascript中不用 location.replace(),那么,当你点击后退的时候依然会显示退出前用户的信息,这样就不符合期望。

原因就在于:使用location.replace()该方法通过指定URL替换当前缓存在历史里(客户端)的项目,

因此当使用replace方法之后,你不能通过“前进”和“后退”来访问已经被替换的URL