session过期,处理ajax请求,使其重新登录

来源:互联网 发布:电子请柬制作软件 编辑:程序博客网 时间:2024/06/05 06:29

在session的filter中增加,当发现是过期的情况,如果是ajax请求,则写回一些信息

//session过期,如果是AJAX请求,就写回SESSIONSTATE:0if(request.getHeader("x-requested-with")!=null && request.getHeader("x-requested-with").equalsIgnoreCase("XMLHttpRequest")){ PrintWriter printWriter = response.getWriter(); printWriter.print("{sessionState:0,url:"+request.getContextPath()+"}"); printWriter.flush(); printWriter.close(); }else{response.sendRedirect(request.getContextPath());}



页面中,增加这个,就可以了

//处理AJAX的session过期问题$.ajaxSetup({ contentType:"application/x-www-form-urlencoded;charset=utf-8", cache:false , complete:function(XHR,TS){ var resText=XHR.responseText; if(resText!=null && resText.indexOf("sessionState:0")>0){  document.location.href='whatever_justTotheLoginPage.action';  alert("您的登录已超时, 请点确定后重新登录!");   //showMsg("您的登录已超时, 请重新登录!",'error');} } });