重写 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 超时跳转到登录页面实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

时间: 2024-11-02 01:50:15

重写 ajax 实现 session 超时跳转到登录页面实例代码的相关文章

如何在java controller实现登录超时跳转到登录页面

问题描述 如何在java controller实现登录超时跳转到登录页面 如何在java controller实现登录超时跳转到登录页面 超时后点击所有功能都跳转到登录页面对整个web工程都有用 解决方案 Struts 拦截器权限控制[通过拦截器实现登录后跳转到登录前页面]Struts 拦截器权限控制[通过拦截器实现登录后跳转到登录前页面]Struts 拦截器权限控制[通过拦截器实现登录后跳转到登录前页面] 解决方案二: 写个拦截器,在里面判断session过期,跳转 解决方案三: 最简单的是写

ajax提交session超时跳转页面使用全局的方法来处理_AJAX相关

在过滤器中写入如下方法: 复制代码 代码如下: public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest httprequest = (HttpServletRequest) request; HttpServletResponse httpresponse =

ajax提交session超时跳转页面使用全局的方法来处理

在过滤器中写入如下方法: 复制代码 代码如下: public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest httprequest = (HttpServletRequest) request; HttpServletResponse httpresponse =

webix+springmvc session超时跳转登录页面_javascript技巧

引言 最近做项目,发现ajax请求不能在服务器中直接重定向到登录页面.查了些资料发现jquery的ajax请求有人给出了方法.但是webix的ajax请求和jquery的有些区别.这里模仿jquery的处理方式实现webix的ajax请求session超时跳转. 具体的做法: 1.查看webix.js源码发现webix.ajax只有请求前的监听函数 "onBeforeAjax", 要做到获取返回状态跳转登录页面必须要有个返回的监听函数,但是源码没有.所以我修改了下源码,加了个返回的监听

Android利用CountDownTimer实现倒计时功能 Android实现停留5s跳转到登录页面

利用CountDownTimer实现倒计时,停留5s跳转到登录页面功能,具体如下 举个栗子,引导页面最后一个界面要停留5s跳转到登录页面.代码如下: //假设 这是引导页面最后一个界面 public class MainActivity extends Activity { private TextView count_time; private MyCountDownTimer myCountDownTimer; @Override protected void onCreate(Bundle

jquery ajax方法调用在session超时以后如何跳转到登录页面?

问题描述 jquery ajax方法调用在session超时以后如何跳转到登录页面?session超时以后虽然被过滤器过滤到了,但是并不会跳转到登录页面请求具体的解决方法.我参考了这篇文章,但是我调用ajaxStart不起作用.http://www.blogjava.net/vickzhu/archive/2009/06/05/280223.htmlext jquery 用户访问超时(ext session过期) 解决两种情况下的用户访问超时.a)普通http请求的session超时.b)异步h

ajax请求 session超时

问题描述 ajax请求 session超时 ajax请求,session超时的情况下,怎么跳转到首页?通过request.getHeader(""x-requested-with"")可以获取到是ajax请求的,也知道将信息放到response,但是页面上要写一个jquery.ajaxSetup({...})处理ajax请求时session的超时,这个是怎么用的???放到什么位置 解决方案 超时的时候你返回一个特殊信息,如offline,ajax判断返回信息存在of

Session过期后自动跳转到登录页面的实例代码_java

最近做了一个项目其中有需求,要实现自动登录功能,通过查阅相关资料,打算用session监听来做,下面给大家列出了配置监听器的方法: 1.在项目的web.xml文件中添加如下代码: <!--添加Session监听器--> <listener> <listener-class> 监听器路径 </listener-class> </listener> 2.编写java类. public class SessionListener implements

实例-webconfig如何配置实现所有错误页跳转到登录页面

问题描述 webconfig如何配置实现所有错误页跳转到登录页面 我是把用户的登录名还有密码都保存到了session里面,但是现在出现问题就是session 一旦过期,后台就会出现未将对象引用设置到对象的实例,请问如何解决这个问题.. 解决方案 你需要加上个判断 if (session["xxx"] != null) { 你的代码 } 解决方案二: 这是webconfig配置网站信息http://blog.csdn.net/babyface945/article/details/420