* 1.使用filter,在过滤器doFilter方法中添加: public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException{................其他处理................../*** easyui session超时处理*/if (request.getHeader('x-requested-with')!=null&&request.getHeader('x-requested-with').equalsIgnoreCase('XMLHttpRequest')){ response.setHeader('sessionstatus', 'timeout');//在响应头设置session状态 response.getWriter().print('timeout'); //打印一个返回值,没这一行,在tabs页中无法跳出(导航栏能跳出),具体原因不明 return ;}
2.新建一个common.js文件,添加如下2个function $.ajaxSetup({ error: function (XMLHttpRequest, textStatus, errorThrown){ if(XMLHttpRequest.status==403){ alert('您没有权限访问此资源或进行此操作'); return false; } }, complete:function(XMLHttpRequest,textStatus){ var sessionstatus=XMLHttpRequest.getResponseHeader('sessionstatus'); //通过XMLHttpRequest取得响应头,sessionstatus, if(sessionstatus=='timeout'){ //如果超时就处理 ,指定要跳转的页面 var top = getTopWinow(); //获取当前页面的顶层窗口对象 alert('登录超时, 请重新登录.'); top.location.href='/index.jsp'; //跳转到登陆页面,可以修改为自己需要跳转的页面 } } });/** * 在页面中任何嵌套层次的窗口中获取顶层窗口 * @return 当前页面的顶层窗口对象 */function getTopWinow(){ var p = window; while(p != p.parent){ p = p.parent; } return p; }
|
|