1:把html标签换成 <!DOCTYPE html>
2:网页中引入js
/**
* 设置未来(全局)的AJAX请求默认选项
* 主要设置了AJAX请求遇到Session过期的情况
*/
$.ajaxSetup({
contentType:"application/x-www-form-urlencoded;charset=utf-8",
complete:function(XMLHttpRequest,textStatus){
//通过XMLHttpRequest取得响应头,sessionstatus
var sessionstatus=XMLHttpRequest.getResponseHeader("sessionstatus");
var basePath = XMLHttpRequest.getResponseHeader('basePath');
if(sessionstatus=="timeout"){
//这里怎么处理在你,这里跳转的登录页面
var top = getTopWinow();
var yes = confirm('由于您长时间没有操作, 与服务器会话已过期, 请重新登录!');
if (yes){top.location.href =basePath;}
}
}
});
/**
* 在页面中任何嵌套层次的窗口中获取顶层窗口
* @return 当前页面的顶层窗口对象
*/
function getTopWinow(){
var p = window;
while(p != p.parent){
p = p.parent;
}
return p;
}
3:后台过滤器代码
//如果是ajax提交. 过期了就整个框架返回.
String headerX = httpRequest.getHeader("X-Requested-With");
if(headerX != null && headerX.equalsIgnoreCase("XMLHttpRequest")){
httpResponse.setHeader("sessionstatus", "timeout");
httpResponse.setHeader("basePath", basePath);
return;
}else{//浏览器访问的验证返回
httpResponse.sendRedirect(basePath);//返回到过期页面.里面有JS进行返回登陆页面
return;
}