对于普通的http请求,可以通过过滤器Filter来判断session超时,然后跳转到登录页面;但是对于Ajax请求,则不会如期待的那样自动转到登录页面(我试了网站上的许多种方案,都是停留在当前页面),好不容易找一篇,但是代码还是有点问题,不能运行,自己修改了下,并测试通过,所以拿出来分享下。
不论是普通http请求还是ajax请求,都可以通过过滤器/拦截器来将请求捕获,而且区分这两种请求在于头部信息的不同:普通http请求的header参数中没有x-requested-with:XMLHttpRequest头信息,而异步的有。
自己定义一个Filter,然后在doFilter()中加如下代码:
if (request.getHeader("x-requested-with") != null
&& request.getHeader("x-requested-with").equalsIgnoreCase( //ajax超时处理
"XMLHttpRequest")) {
response.addHeader("sessionstatus", "timeout");
}else{//http超时的处理
}
再在WEB.XML文件中配置这个Filter,并且要放在STRUTS2的StrutsPrepareAndExecuteFilter前面,相关代码:
<filter>
<filter-name>xxxFilter</filter-name>
<filter-class>xx.xxx.xxx.xxxxFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>xxxFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
在每个功能JS中添加代码:
Ext.Ajax.on('requestcomplete',checkUserSessionStatus, this);
function checkUserSessionStatus(conn,response,options) {
var sessionStatus = response.getResponseHeade["sessionstatus"];
if(typeof(sessionStatus) != "undefined"){
Ext.Msg.alert('提示', '会话超时,请重新登录!', function(btn, text){
if (btn == 'ok'){
var redirect = 'http://localhost:8080/项目名/login.jsp';
window.location = redirect;
}
});
}
}
分享到:
相关推荐
使用filter来做后台,Ext.Ajax.on('requestcomplete', checkUserSessionStatus, this);用requestcomplete这个方法来异步判断session是否已经失效了
Extjs 4.1 (MVC) 如何动态加载控制层以及session 过期该如何处理
关于ExtJS内存泄漏问题,一直是ExtJS开发人员困扰的问题,这篇文档很好地解释了什么是内存泄漏,为什么会产生内存泄漏。能够帮助程序员使用ExtJS开发出更高效安全的代码。
extjs 富客户端界面设计 grid分页后台处理
项目进行前端框架升级——extJS 4升级至extJS6.6所遇的一些问题及相对应的解决方案建议
extjs editgrid 回显问题.rarextjs editgrid 回显问题.rarextjs editgrid 回显问题.rar
EXTJS应用EXTJS应用EXTJS应用EXTJS应用EXTJS应用EXTJS应用
extjs资料extjs资料extjs资料extjs资料extjs资料
Extjs例子Extjs例子Extjs例子Extjs例子Extjs例子
1.主要是Extjs方面的一些学习笔记。重点方面有事件处理,动态载入等相关介绍。
ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门 ExtJS快速入门ExtJS快速入门 ExtJS快速入门 ExtJS...
对extjs时间的介绍,期待您的参与,我们一起努力
xtJs已经升级到了5.0了,目前可能多数应用还在使用ExtJs 3.系列。 从开发大型的web后台或者企业管理系统来看,ExtJs3的缺陷还是比较明显的,从ExtJs4 开始引入了MVC架构,从而能够从容的组织系统的JS文件了。 从...
extjs电子书,extjs电子书,extjs电子书,extjs电子书
EXTJS实例 EXTJS树,可以编辑的EXTJS,EXTJS3.0
适合ExtJs开发人员extjs技术上手以及深入
extJs3升级extjs4方案, extJs3升级extjs4需要修改大量代码
extjsapi,extjs文档,api手岫
一个extjs的OA项目 extjs-OA extjs-oaextjs-OA extjs-oa
ExtJS 实现动态处理加载 grid 实现了CRUD还有分页功能