java过滤器对ext异步请求跳转(转)
来源:互联网 发布:超级阿里云租用价格 编辑:程序博客网 时间:2024/05/16 13:57
用户访问超时
解决两种情况下的用户访问超时。
a)普通http请求的session超时。
b)异步http请求的session超时,使用ext后大部分的界面刷新都是异步的ajax请求。
不管是那种类型的http请求总是可以由一个过滤器来捕捉。
分类:普通http请求的header参数中没有x-requested-with:XMLHttpRequest头信息,而异步的有。
其实对于常见的ajax框架,header中还有标示自己身份的header信息。
对于普通的http请求,发现session超时后直接重定向到一个超时页面,显示访问超时。
对于异步http请求,发现session超时后则向请求的response中写入特定的超时头信息,客户端ajax对象检测
头信息,发现有超时状态标志后调用显示超时信息的javascript方法,提示用户访问超时。
服务器端session超时后在过滤器中为response添加新的头信息,标记该请求超时:
- if(httpRequest.getSession().getAttribute("USER") == null){
- String ajax = httpRequest.getHeader("x-Requested-with");
- if(ajax != null && ajax.equals("XMLHttpRequest")){
- httpResponse.setHeader("sessionstatus", "timeout");
- } else {
- //普通http请求 session超时处理
- wrapper.sendRedirect("......");
- }
- } else {
- chain.doFilter(request, response);
- }
if(httpRequest.getSession().getAttribute("USER") == null){ String ajax = httpRequest.getHeader("x-Requested-with"); if(ajax != null && ajax.equals("XMLHttpRequest")){httpResponse.setHeader("sessionstatus", "timeout"); } else {//普通http请求 session超时处理wrapper.sendRedirect("......"); }} else { chain.doFilter(request, response);}
使用Ext.Ajax对象完成异步请求的交互,Ext.Ajax是单实例对象(非常重要,全局单一Ext.Ajax实例!)。
注册Ext.Ajax的requestcomplete事件,每个ajax请求成功后首先响应该事件。在该事件的回调函数里面判断
访问请求是否超时。使用Ext.Ajax对象的好处是,只需要引入一个包含了几行超时处理代码的js文件,就可以
为当前应用增加超时处理功能,原有代码不需要做任何修改。
使用Ext.Ajax对象完成异步请求交互,每个页面引用:
- Ext.Ajax.on('requestcomplete', function(conn,response,options){
- if(response.getResponseHeader("sessionstatus")){
- window.location = "<c:url value='/'>";
- }
- });
Ext.Ajax.on('requestcomplete', function(conn,response,options){if(response.getResponseHeader("sessionstatus")){window.location = "<c:url value='/'>";}});
可以利用的几个特性:
a)所有的ajax请求均带有x-requested-with:XMLHttpRequest头信息
b)Ext.Ajax是单实例对象(非常重要,全局单一Ext.Ajax实例!)
c)注册Ext.Ajax的requestcomplete事件,每个ajax请求成功后首先响应该事件(概念类似spring的aop拦截)。
- java过滤器对ext异步请求跳转
- java过滤器对ext异步请求跳转(转)
- java过滤器对ext异步请求跳转(转)
- Ext.Ajax.request异步请求
- 识别设备跳转不同请求(过滤器)
- ext异步请求动态设置列头
- Ext异步请求session过期解决方案
- java过滤器---一异步处理
- java 异步请求转同步结果
- Java异步HTTP请求
- Java异步HTTP请求
- 过滤器对ajax请求的处理
- UserServlet对前端异步请求的支持
- spring mvc对异步请求的处理
- spring mvc对异步请求的处理
- spring mvc对异步请求的处理
- spring mvc对异步请求的处理
- java使用过滤器实现 请求转发
- friebird建立外键约束
- platform Builder 6.0破解
- “我的恩典是够你用的”(哥林多后书十二章9节)
- ril层的所有代码分析
- Kinect for Windows SDK开发入门(四):景深数据处理 上
- java过滤器对ext异步请求跳转(转)
- VC: Nafxcwd.lib(appcore.obj) : error LNK2001: 无法解析的外部符号___argv
- 如何用C语言实现C++的基本特性:封装、继承、多态
- <一>--RIL层代码分析-RIL_RadioFunctions *RIL_Init(funcs =rilInit()->mainloop()
- <二>---RIL层代码分析---RIL_startEventLoop()->eventLoop()->ril_event_loop()
- linux 多线程时出错:Create pthread error! Resource temporarily unavailable
- 海阔天空 在勇敢以后 --我的求职路
- <三>--RIL层代码分析---RIL_register()
- 研究生不是想读就应该去读的!