Filter配置会话超时跳转页面
来源:互联网 发布:例外女装淘宝 编辑:程序博客网 时间:2024/05/22 03:53
前言
上篇博客针对EasyUI+SpringMvc配置session过期跳转页面做了介绍,但是在运用过程中会出现在IE8中有时候不能正常使用的情况,也会出现和导入的操作冲突问题,经过一系列的探索发现这种方法针对不同浏览器尤其是IE会出现瑕疵,而且很难找到问题的所在,所以就又通过filter机制来完善了一下此功能。 具体filter的机制的就不再过多介绍,咱们直接进入主题,来看看怎么进行配置完成此功能。
问题分析
由于用的是EasyUI,所以会有很多异步的请求,所以就需要解决两种问题:一是普通的http请求的session超时处理,另一种是异步的session超时处理,这两种情况都通过filter来实现。 在写filter之前要清楚,这两种请求的区别就是普通的http请求的header参数中没有x-requested-with:XMLHttpRequest头信息,而异步的有。
Filter编写
所以filter就会变成这种:account is session.accountattr;account is null --> go to if else logic -->If requestheader is x-requested-with -->if urls can pass then dofilter, -->else response.setheader,attribute is sessionstatus ,value is timeout 【在此处特别注意,如果是easyui等有tab标签的这种,需要在这里通过response打印一句话,并且注意writer关闭的问题,主要是为了能够在session过期时,tab标签中也能够跳转到相应页面中】。 -->If requestheader is not x-requested-with --> response sendredirects to loginpage. account is not null 直接dofilter,go on。
JS监听
$.ajaxSetup({ error: function (XMLHttpRequest, textStatus, errorThrown){if(XMLHttpRequest.status==403){alert('您没有权限访问此资源或进行此操作');return false;}}, complete:function(XMLHttpRequest,textStatus){ try{ var sessionstatus=XMLHttpRequest.getResponseHeader("sessionstatus"); //通过XMLHttpRequest取得响应头,sessionstatus, if(sessionstatus=='timeout'){ //如果超时就处理 ,指定要跳转的页面 var top = getTopWinow(); //获取当前页面的顶层窗口对象 alert('登录超时, 请重新登录.'); top.location.href=path+"/login.jsp"; //跳转到登陆页面 } } }catch(e){} });
特别注意此处try catch语句不能省略,在ie8中easyui的跳转会和导入有冲突,会影响导入的成功。
web.XML编写
最后就是配置web.XML的filter,此处主要是配置filter的pararm,这里可以填写能够通过的urls,此urls在逻辑中有所体现。
总结
通过这三步配置就会完美的完成session过期跳转页面了。本功能的具体代码会上传到代码库中随后供大家下载。
0 0
- Filter配置会话超时跳转页面
- shiro权限控制,会话超时跳转登录页面只有iframe跳转,父页面没有跳转
- session 超时 页面跳转
- session 超时 页面跳转
- session超时,跳转页面
- Apache Shiro会话超时,登录页面跳转到父窗体的解决方法
- Tomcat会话超时的配置
- Tomcat会话超时的配置
- Session超时跳转到指定页面(filter实现)解决了图片被过滤问题
- JS实现超时跳转页面
- 配置会话HttpSession的超时时间
- ASP.NET会话丢失,Session超时配置
- Session超时Filter控制页面调转
- 会话超时
- ajax提交session超时跳转页面,全局
- Extjs4 ajax请求超时页面跳转
- ajax超时跳转到登陆页面
- 页面请求超时的配置
- 看下效果
- 面试题9:斐波那契数列
- leetcode 021_merge two list
- testlink_在线考试系统
- 什么是大数据?
- Filter配置会话超时跳转页面
- 机房收费系统——总结篇
- PAT Basic level practice 23
- Spring笔记(第一弹:简单模拟Spring IOC)
- LeetCode之Maximum Product Subarray
- 质数中的质数 SDUT 3305
- 机房收费系统总结篇(3)--------验收总结
- 17 Letter Combinations of a Phone Number
- centos 7.0 mysql的启动问题