重写 ajax 实现 session 超时跳转到登录页面实例代码

 更新时间:2017年05月09日 16:04:49   投稿:mrr  
这篇文章主要介绍了重写 ajax 实现 session 超时跳转到登录页面实例代码,需要的朋友可以参考下

问题:使用window.location.href来跳转页面的时候,后端只需实现一个过滤器就可以在session超时的情况下重定向到登陆页面。但是使用ajax呢?使用ajax来执行会发生302错误,并且页面不可能跳转。下面就针对这个问题来贴上我的前后端代码。

1、session过滤器

import java.io.IOException;
<p style="text-align: center"><img alt=""import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
<p style="text-align: center"><img alt=""public class SessionFilter implements Filter {
<p style="text-align: center"><img alt="" public void doFilter(ServletRequest req, ServletResponse res, FilterChain filterChain)
   throws IOException, ServletException {
  HttpServletRequest request = (HttpServletRequest) req;
  HttpServletResponse response = (HttpServletResponse) res;
<p style="text-align: center"><img alt=""  String requestUri = request.getRequestURI();
<p style="text-align: center"><img alt=""  if (requestUri.indexOf("/login.html") > 0 || requestUri.indexOf("/system/login") > 0) {
   return ;
  }
<p style="text-align: center"><img alt=""  HttpSession session = request.getSession(false);
<p style="text-align: center"><img alt=""  if (session == null) {
   // 如果是session超时,在此处做处理。
   response.sendRedirect(request.getContextPath() + "/login.html");
   return ;
  }
  try {
   filterChain.doFilter(request, response);
  } catch (Exception e) {
   e.printStackTrace();
  }
  return ;
 }
}

2、web.xml添加配置:

<filter>
  <filter-name>sessionFilter</filter-name>
  <filter-class>com.manager.filter.SessionFilter</filter-class>
</filter>
<filter-mapping>
  <filter-name>sessionFilter</filter-name>
  <url-pattern>/manager/*</url-pattern>
</filter-mapping>

*3、重写ajax

注意:此段代码放在index页

jQuery(function($){
   var _ajax=$.ajax;
   $.ajax=function(opt){
    var _success = opt && opt.success || function(a, b){};
    var _opt = $.extend(opt, {
     success:function(data, textStatus){
      _success(data, textStatus); 
     },
     error:function(XMLHttpRequest, textStatus, errorThrown){
      //alert(XMLHttpRequest.responseText);
      //如果请求发生错误,会返回登陆页面源代码,如果源代码里面存在lovnx这个字符串,前端就重定向到登陆页面
      var reData = XMLHttpRequest.responseText + "";
      if(reData.indexOf('lovnx') != -1) {
       window.location.href="/manager/login.html" rel="external nofollow" ;
       return;
      }
     }
    });
    return _ajax(_opt);
   };
  });

4、登陆页面添加代码

<input type="hidden" value="lovnx">

以上所述是小编给大家介绍的重写 ajax 实现 session 超时跳转到登录页面实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • 探秘ajax跨域请求

    探秘ajax跨域请求

    本文讲解的是怎么利用ajax实现跨域请求,那么知道“同源策略”,就可以解决很多疑问:“为毛我的ajax加载不了数据!”“为毛浏览器控制台会对我如此漂亮的代码报错!”这就是我们今天要主要探讨的内容了。
    2015-03-03
  • Ajax传Jsond Mvc后台接收实例

    Ajax传Jsond Mvc后台接收实例

    Ajax传Jsond Mvc后台接收,前后台实现代码如下,感兴趣的朋友可以参考下哈,希望对大家有所帮助
    2013-06-06
  • Ajax表单异步上传文件实例代码(包括文件域)

    Ajax表单异步上传文件实例代码(包括文件域)

    这篇文章主要介绍了Ajax表单异步上传文件实例代码(包括文件域),非常不错,具有参考借鉴价值,感兴趣的朋友一起看下吧
    2016-08-08
  • ajax获取php页面的返回参数,控件赋值的方法

    ajax获取php页面的返回参数,控件赋值的方法

    下面小编就为大家带来一篇ajax获取php页面的返回参数,控件赋值的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-10-10
  • 使用AJAX返回WebService里的集合具体实现

    使用AJAX返回WebService里的集合具体实现

    如何使用AJAX返回WebService里的集合,在本文将有一个完美的实现,感兴趣的朋友可以参考下哈,希望可以帮助到你
    2013-05-05
  • Ajax按需读取数据生成下级菜单

    Ajax按需读取数据生成下级菜单

    Ajax按需读取数据生成下级菜单...
    2006-08-08
  • 浅析json与jsonp区别及通过ajax获得json数据后格式的转换

    浅析json与jsonp区别及通过ajax获得json数据后格式的转换

    一言以蔽之,json返回的是一串数据;而jsonp返回的是脚本代码(包含一个函数调用);接下来通过本文给大家介绍json与jsonp区别及通过ajax获得json数据后格式的转换,需要的朋友参考下
    2016-03-03
  • Ajax 传递JSON实例代码

    Ajax 传递JSON实例代码

    虽然ajax全称是asynchronous javascript and XML。但目前使用ajax技术时,传递JSON已经成为事实上的标准。这篇文章主要介绍了Ajax 传递JSON实例代码,需要的朋友可以参考下
    2017-03-03
  • Ajax实现步骤和原理解析

    Ajax实现步骤和原理解析

    Ajax是一种用于创建快速动态网页的技术,Ajax的工作原理相当于在用户和服务器之间加了—个中间层(AJAX引擎),使用户操作与服务器响应异步化,这篇文章主要介绍了Ajax实现步骤和原理,需要的朋友可以参考下
    2023-11-11
  • Ajax象棋演示和并提供代码下载

    Ajax象棋演示和并提供代码下载

    Ajax象棋提供,与asp.net结合
    2008-07-07

最新评论