easyui框架session失效问题

关于easyui框架session问题,easyui用的是iframe 连接后在tab中显示 ,如果后台拦截器或过滤器判断session是否为空,此时登录页面并为完全跳出来而是在easyui框架中的tabs中显示,若想要它跳到登录界面 一句话即可,同样咋框架中还会出现ajax请求而不是像iframe一个普通页面连接跳转,ajax这种请求如果session为空页面不会有任何跳转好像无任何反应。

首先看待第一个问题如何将iframe 跳转到登录界面 后台代码如下:

public boolean preHandle(HttpServletRequest request,
			HttpServletResponse response, Object handler) throws Exception {
		String path=request.getServletContext().getContextPath();

		if(request.getSession().getAttribute("operations")==null){
			//判断是否是ajax请求
			 if (request.getHeader("x-requested-with") != null&& request.getHeader("x-requested-with").equalsIgnoreCase("XMLHttpRequest"))//如果是ajax请求响应头会有,x-requested-with;  
	         {  
	             response.setHeader("sessionstatus", "timeout");//在响应头设置session状态 
	             response.getWriter().print("timeout"); //打印一个返回值,
	             return false;  
	         }else{
	 			response.sendRedirect(path+"/sessionout.jsp");
	 			return false;	 
	         }
		  }else{
			  return true;	  
		  }
	}

编写一个sessoin.jsp页面 写上如下代码:

<script type="text/javascript">
	//父窗口对象 中打开一个连接 连接到我们的登录界面 当页面跳转会自动执行下面的JavaScript代码
	parent.window.location.href="maintainLogin.jsp";
	</script>
当请求被拦截是首先会执行拦截器然后跳转到sessionout.jsp页面,执行JavaScript代码跳转到登录界面。


在看看ajax请求,首先通过$.ajaxSetup 设置全局ajax,编写一个公用的js将如下代码写入,每一个页面引入此js,ajax执行之前执行$.ajaxSetup

$.ajaxSetup({ 
		 error: function (XMLHttpRequest, textStatus, errorThrown){
				if(XMLHttpRequest.status==403){
//					
					$.messager.alert('提示', '限制访问此资源或进行此操作','info');
					return false;
				}
			},  
         complete:function(XMLHttpRequest,textStatus){   
        	 var sessionstatus=XMLHttpRequest.getResponseHeader("sessionstatus"); //通过XMLHttpRequest取得响应头,sessionstatus, 
                if(sessionstatus=='timeout'){   
                      //如果超时就处理 ,指定要跳转的页面  
        		     
                	parent.window.location.href="maintainLogin.jsp"; 

        	      }   
         }   
   }); 

这样就实现了ajax请求未登录跳转到登录界面

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值