- 浏览: 138042 次
- 性别:
- 来自: 北京
文章分类
最新评论
用户访问超时
解决两种情况下的用户访问超时。
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添加新的头信息,标记该请求超时:
Java代码 收藏代码
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对象完成异步请求交互,每个页面引用:
Js代码 收藏代码
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拦截)。
对于其他的ajax框架,解决用户访问请求超时这个问题的思路是类似的。
解决两种情况下的用户访问超时。
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添加新的头信息,标记该请求超时:
Java代码 收藏代码
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对象完成异步请求交互,每个页面引用:
Js代码 收藏代码
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拦截)。
对于其他的ajax框架,解决用户访问请求超时这个问题的思路是类似的。
发表评论
-
javaScript实现的 数据库
2014-11-06 17:17 15711、LokiJS LokiJS一个基于J ... -
xss攻击
2013-12-27 11:54 589解决方案与建议: 严格过滤用户所能提交的任何数据,特别是能执 ... -
js技巧
2013-08-02 09:02 1718· 事件源对象 event.srcElement.tagNa ... -
jquery combox实现联动效果
2013-05-18 05:15 723需求方要求 所以就想法实现此效果 经过两个小时的看源码、修改、 ... -
jQuery easyui 1.2.5 window、dialog发送两边请求(转)
2013-05-04 12:02 962jQuery easyui 1.2.5 window、dial ... -
跨域问题
2013-05-01 10:04 801可以采用JQuery的getJSON、get方法以JSONP的 ... -
js的base64
2013-04-11 10:55 729var Base64 = { // private prop ... -
JavaScript实现URL编码
2012-07-10 16:46 946<script language="vbscr ... -
jQuery 禁止右键
2012-07-03 14:38 1874用jquery实现你的网站不能右键,很简短的代码: $('b ... -
js技巧
2012-06-12 17:08 7651、jquey查找iframe父页面的标签 $('#id' ... -
jquery easyui -datagrid(悬浮,隐藏)(转)
2012-05-30 16:33 0对于jquery easyui 的datagrid引用碰到了几 ... -
GridView脚注行添加合计,并设置背景图片
2011-09-30 11:00 4122以前在做GridView ... -
ExtJS表格
2011-09-30 10:58 27471. 简单表格控件 (由类Ext.grid.GridPane ... -
行渲染和列渲染
2011-09-30 10:57 1318一,单元格渲染 单元格是最终显示的数据地方,它是根据列定义 ... -
ExtJS表格——行号、复选框、选择模型
2011-09-30 10:57 6223一、 设置行号 行号的设置主要问题在于删除某一行后需要重新 ... -
cookie
2011-09-26 10:02 1110/** * * 获取cookie的值 * @para ... -
js结构语句
2011-09-25 11:02 8511 if 条件语句(可嵌套) 2 if....else 条件 ... -
js循环语句
2011-09-25 10:56 17601 for循环结构语句(可以嵌套); 2 for-in 循环 ... -
使用with语句进行对象操作
2011-09-25 10:45 875在js语言中,with语句是一个内容很少的语句,在程序中多次使 ... -
Iframe
2011-09-23 21:14 8001、Iframe子页面调用父页面函数 window.pare ...
相关推荐
当用户访问网站时,服务器会为每个用户创建一个唯一的会话ID,并将该ID与用户的相关数据关联起来。在本例中,我们检查`session("userid")`是否存在,以此判断用户会话是否仍然有效。 #### 结论 通过上述方法,我们...
这个过滤器会在用户访问受保护的页面之前进行拦截,如果发现用户会话已经超时或者不存在,将重定向到登录页面。在本例中,我们将探讨如何实现这样一个过滤器以及相关的配置。 首先,`web.xml` 是Java Web应用程序的...
- **跨网覆盖**:为了节约成本,一些供应商可能采用跨网覆盖策略,导致用户访问超时严重。 - **资源短缺**:由于供应商自身宽带资源不足,CDN服务质量将变得不稳定。 - **运营商劫持**:运营商的劫持行为可能导致...
过短的超时时间可能会频繁打断用户的操作流程,而过长的超时时间则可能增加未授权访问的风险。 #### 实施步骤详解 1. **登录Vsphere Client**: - 首先需要登录到Vsphere Client,通常可以通过Web浏览器或者安装...
在IT领域,尤其是在Java编程中,访问网络、下载文件、实现爬虫功能以及处理超时问题是非常关键的技术点。本文将深入探讨如何在Java中有效处理这些方面的问题,特别是超时处理解决方案,这对于构建高效、稳定的网络...
在服务器运行过程中,如果一个请求耗时过长,可能导致服务器资源被过度占用,从而影响其他用户的正常访问。通过设定超时时间,可以在特定时间后结束无响应的请求,避免系统资源被长时间锁定,从而提高服务器的性能和...
#region 关闭,退出超时的用户线程 private static DateTime ExitInvalidThreadLoop_LastRunTime = DateTime.Now.Subtract(new TimeSpan(1, 0, 0, 0, 0)); private static bool ExitInvalidThreadLoopRunning { ...
在Android开发中,网络操作是应用与服务器交互的重要部分,涉及到的数据访问往往伴随着各种问题,如网络连接状态、接口返回状态、异常处理以及超时问题。"Android超时处理"这个话题聚焦于如何在Android应用中优雅地...
2. **检测会话状态**:每次用户访问受保护的页面时,都需要检查其Session是否仍然有效。这可以通过在每个控制器方法或全局中间件中添加代码来实现。如果Session已经过期,就需要提示用户重新登录。 3. **自动刷新...
在 SpringBoot 中,Session 超时是指在一定时间内没有任何操作,Session 就会超时失效,导致用户需要重新登录才可以继续访问页面。这是因为 Session 的超时时间是有限制的,默认情况下是 1800 秒,在这个时间内如果...
根据需求,你可能还需要考虑其他因素,如是否允许用户取消超时,是否在后台任务运行时暂停超时,或者在特定条件下延长超时时间等。 通过以上步骤,你可以在WPF应用中实现一个基本的超时退出功能。记住,这只是一个...
太短的超时可能导致因网络短暂波动而引发不必要的错误,而过长的超时则可能导致应用无响应,影响用户体验。因此,根据具体的服务响应时间和网络状况来调整超时值是必要的。 总结起来,这个自定义的`soap jar包`提供...
综上所述,.NET通过配置`web.config`和编写`Global.asax`文件,结合Session管理、权限控制以及防止重复登录的策略,有效地解决了用户登录和超时问题,保证了系统的安全性。在实际应用中,这些方法需要根据具体业务...
这一特性对于提高系统的安全性非常有用,特别是对于那些通过网络访问的用户来说,可以有效地防止因长时间无人操作而造成的安全风险。 #### 如何设置Linux空闲超时时间 根据提供的内容,我们可以了解到设置Linux...
如果目标服务器有并发请求限制,或者对单个IP的访问频率有限制,可能会导致请求被延迟或超时。检查服务器的策略和配置。 7. **代码优化**: 代码中使用了`GetResponse()`方法,该方法会阻塞直到服务器返回响应。...
当Session超时或者用户手动注销时,这个事件会被触发。如果需要立即注销用户,可以调用`Session.Abandon()`方法。 然后,我们来看如何防止用户未登录直接访问页面。这通常通过授权机制实现。ASP.NET提供了一些内置...
#region 关闭,退出超时的用户线程 private static DateTime ExitInvalidThreadLoop_LastRunTime = DateTime.Now.Subtract(new TimeSpan(1, 0, 0, 0, 0)); private static bool ExitInvalidThreadLoopRunning { ...
错误描述:oracle远程连接服务器出现 ORA-12170 TNS:连接超时 错误检查:有很多是oracle自身安装的问题,但是我这里服务器配置正常,监听正常,服务正常,远程可以ping通服务器。 这里主要是防火墙问题,解决办法: ...
用户通过这个程序可以进行商品信息的录入、查询、更新和删除等操作。 其次,"说明.txt"文件很可能是对系统的使用指南或开发过程的简要说明,可能包含系统功能的介绍、操作步骤、注意事项以及可能遇到的问题和解决...
2. **DMA(直接存储器访问)**:在高数据速率传输时,使用DMA可以减轻CPU负担,让DMA控制器直接处理数据传输。结合超时机制,即使在DMA传输中也可以检测到通信问题。 3. **HAL库**:STM32的HAL库提供了一套高级抽象...