当前端在用ajax请求时,如果没有设置session超时时间并且做跳转到登录界面的处理,那么只是靠后台是很难完成超时的一系列动作的;但是如果后台

没有封装一个ajax请求公共类,那么在ajax请求上下功夫解决session超时的问题是不行的,只有考虑在后台或者前台通过全局来进行对ajax请求超时的

处理了。

本人用的是spring security来处理的,想只通过后台来进行处理,但是尝试了很多种办法,但是一直没有成功,session一超时,前台页面就一直显示遮

罩层,只有在刷新后才能正常操作。最终还是考虑在前台上下功夫,通过使用jquery的全局事件,就搞定了。

1.在spring-security.xml配置session超时时触发的方法(配置在<security:http>标签内)

<security:http>

<security:session-management invalid-session-url="/timeout"></security:session-management>

</security:http>

2.超时处理方法代码

@RequestMapping(value = "/timeout")

    public void sessionTimeout(HttpServletRequest request,HttpServletResponse response) throws IOException { 


        if (request.getHeader("x-requested-with") != null  

                && request.getHeader("x-requested-with").equalsIgnoreCase(  

                        "XMLHttpRequest")) { // ajax 超时处理  

            response.getWriter().print("timeout");  //设置超时标识

            response.getWriter().close();

        } else {

             response.sendRedirect("/login");  

        }

    } 



3.前台监听超时方法

$(document).ajaxComplete(function(event,obj,settings){

        if (obj.responseText == 'timeout') { //超时标识

            location.href='/login'; //跳转到登录页面

        }

    })

这里使用jquery的全局事件,通过 ajaxComplete() 方法规定的函数会在请求完成时运行,即使请求并未成功

spring security:ajax请求的session超时处理的更多相关文章

  1. mvc下ajax请求遇到session超时简单处理方式

    转自:http://blog.csdn.net/yeyicsdn/article/details/50032787 参考网址:http://www.cnblogs.com/RachelChen/p/5 ...

  2. Spring Security(13)——session管理

    1.1     检测session超时 1.2     concurrency-control 1.3     session 固定攻击保护 Spring Security通过http元素下的子元素s ...

  3. Spring Security 之集群Session配置

    1.   新建Maven项目 cluster-session 2.   pom.xml <project xmlns="http://maven.apache.org/POM/4.0. ...

  4. spring security防御会话伪造session攻击

    1. 攻击场景 session fixation会话伪造攻击是一个蛮婉转的过程. 比如,当我要是使用session fixation攻击你的时候,首先访问这个网站,网站会创建一个会话,这时我可以把附有 ...

  5. Java过滤器应用-对Ajax请求做Session失效判断

    过滤器常用来对Session过期做判断 Layout.js 1.为ajax请求添加标识 2.无论ajax请求成功与否,complete函数终会执行 // 全局Ajax设置, 用于session过期后的 ...

  6. Spring Security Ajax 被拦截

    背景是项目中使用Spring Security 进行安全控制 再使用Ajax的时候会报 403(ajax get  方式是没问题的 post 的时候会报) Spring Security 原本是 防止 ...

  7. Spring Boot内嵌Tomcat session超时问题

    最近让Spring Boot内嵌Tomcat的session超时问题给坑了一把. 在应用中需要设置session超时时间,然后就习惯的在application.properties配置文件中设置如下, ...

  8. spring mvc ajax请求

    jar包中增加 jackson-annotations-2.5.0.jar jackson-core-2.5.0.jar jackson-databind-2.5.0.jar springmvx.xm ...

  9. java Servlet Filter 拦截Ajax请求,统一处理session超时的问题

    后台增加filter,注意不要把druid也屏蔽了 import java.io.IOException; import javax.servlet.Filter; import javax.serv ...

随机推荐

  1. OC-变量和数据类型

    对象的初始化 Fraction *myFract=[[Fraction alloc] init];//初始化对象 [myFract setTo:1 over:3];//设置初始值 初始化对象和设置初始 ...

  2. C# 加密总结 一些常见的加密方法

    C# 加密总结 一些常见的加密方法 一 散列数据 代码如下: ? private static string CalculateSHA512Hash(string input)         {   ...

  3. Python之路2Day(基础深入)

    一,整数 1.int型 具有的功能: class int(object): (1).返回表示该数字的时占用的最少位数 def bit_length(self): 例: >>> bin ...

  4. 2440裸机驱动之PWM开发

    原文http://blog.chinaunix.net/uid-14114479-id-3125685.html ARM驱动蜂鸣器的方式有两种:一种是PWM输出口直接驱动,另一种是利用IO定时翻转电平 ...

  5. 某大神C#框架后台发送信息的查找及破解

    最近在博客园瞎逛的时候,发现了某个大神发布的一个c#框架,一看框架,叫牛逼框架,嗯,装B效果太好了,界面很炫,虽然有很多的组件还是不怎么完善,但是,已经可以初步运用于项目了. 先来看看界面:   在进 ...

  6. Oracle 数据备份、恢复以及导入时表空间不存在的解决方案

    一.数据备份(导出) 1.exp命令导出dmp文件(exp -help查看帮助信息) 命令:exp username/userpasswd@192.168.99.199/orcl file=C:\jd ...

  7. 办理多伦多大学(本科)学历认证『微信171922772』Toronto学位证成绩单使馆认证University of Toronto

    办理多伦多大学(本科)学历认证『微信171922772』Toronto学位证成绩单使馆认证University of Toronto Q.微信:171922772办理教育部国外学历学位认证海外大学毕业 ...

  8. python 2.7 字符串处理

    python 2 字符串处理小结: 字符替换:new_str = old_str.replace(char_old, char_new)--可用于清除字符串中所有的空格 字符分割(正/反):str_n ...

  9. 【Excel】Excel筛选迟点时间的公式

    效果是这样: 方法: 在B列第2排,输入=if(HOUR(A2) >=9,"迟点","") 然后就是复制,粘贴整个列就OK了.不想复制也可以按住的右下角那 ...

  10. springmvc-interceptor(拦截器)

    在大配置中配置拦截器代码如下: <mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/**" ...