我的test.jsp页面内容如下:
<%
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath();
%>
<html>
<body>
<input type="button" value="扫描" onclick="scan">
</body>
</html>
<!--扫描控件-->
<OBJECT id='CltObj' width=0 height=0 classid="clsid:9DD39FAF-00E4-4890-97FC-086C4BD3DD2D"></OBJECT>
<script>
function createXmlHttpObj() {
var xmlHttp = false;
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e2) {
xmlHttp = false;
}
}
if (!xmlHttp && typeof XMLHttpRequest != "undefined") {
xmlHttp = new XMLHttpRequest();
}
return xmlHttp;
//保持session不超时,每隔指定秒数数进行一次ajax访问页面
function keepSessionNotTimeOut(pointedSecond){
var __xmlHttp = createXmlHttpObj();
var __url='<%=basePath%>/common/index/blank.jsp'; //我在此页面已经有打印,访问没问题
var id=window.setInterval(function (){
__xmlHttp.open('get',__url,true);
__xmlHttp.send(null);
},pointedSecond*1000);
}
keepSessionNotTimeOut(1);
function scan(){
var txt='<xml><id="23"></xml>'
var retValue = CltObj.DocsNewCCZG(txt,''); //这是扫描空间的显示界面执行发法
//接下来就是我程序对扫描控件返回值retValue 做一些数据库插入 ,以后的代码省略
}
}
</script>
问题详细:因为扫描控件界面我可能要操作30分钟以上,甚至要达到3小时,而我设置的SESSION超时是30分钟,首先我不能把SESSION超时设置3个小时。当运行扫描完资料,超过30分钟,当我再拿控件返回的数据进行插入数据库操作,则会提示超时。
我的设想:执行scan方法的时候,keepSessionNotTimeOut方法一直在进行保持session不超时的ajax提交,这样即便扫描控件使用3小时,也不会因为超时而不能对控件返回的数据进行数据库插入。
实现的糟糕结论:当我点击“扫描”按钮之后,keepSessionNotTimeOut的发送请求就不会执行,怎么看到没有执行,是我在被请求页面进行的输出得出结果。但是当我,关闭扫描界面,接着执行keepSessionNotTimeOut方法。
请求各位帮忙,怎么实现我的设想?是不是<Object>对优先于ActiveXObject对象的执行?这是我的表象结论。
问题补充:qq1988627 写道
在web.xml 设置<session-config><session-timeout>-1</session-timeout/></session-config>
这个显然不是我想要的处理方式,太影响性能了。
问题补充:qq1988627 写道
那就用cookies 每30分钟取一次
愚昧的问一下,在我占用浏览器做其他事情,可能这个占用要持续3小时之久,这个同时怎么让它进行cookie请求?我现在做不了的就是AJAX的请求
问题补充:qq1988627 写道
1.设置定时器或者线程 当你启动扫描时候 同时向后台启动线程或者开始计时
现在只能发送后台java处理这个事。
相关推荐
Ajax请求session超时处理流程 java服务器端处理: SessionValidateFilter中修改: if (ServerInfo.isAjax(request)) { request.setAttribute("statusCode", 301); request.setAttribute("message", "Session ...
本篇文章将深入分析一个通过JavaScript(简称JS)实现的Session超时提示逻辑,该逻辑不依赖于服务器端请求,而是利用前端技术监测用户行为并在Session即将过期时给予提示。 #### 二、核心功能概述 根据提供的部分...
因此,在用户登录系统时,可以在session中设置一个属性,当session失效时,通过判断这个属性来让系统知道session已经失效。 知识点五:web应用的发展历程 随着网络技术的不断发展,尤其是基于web的信息发布和检索...
本教程将深入探讨"登录超时完整实例",包括如何进行`session超时设置`以及在`JSP页面`中处理会话超时的问题。 首先,我们需要理解什么是登录超时。登录超时是指用户在一定时间内未进行任何操作,系统自动判断该用户...
### JSP Session超时提示知识点解析 #### 一、背景介绍 在Web应用程序中,`session` 是一种常用的技术手段,用于保存用户的状态信息。它能够帮助开发者在多个页面请求之间保持用户的数据一致性。然而,为了提高安全...
本篇文章将详细介绍如何在JSF中监测和处理session超时,特别是通过监听恢复视图阶段的`ViewExpiredException`异常。 首先,我们需要理解JSF的生命周期。JSF有多个阶段,包括恢复视图(Restore View)阶段。在这个...
例如,若想让session在30分钟后过期,可将其设置为1800秒。这样,即使用户未关闭浏览器,只要超过30分钟无操作,session ID也会从客户端删除。 2. **设置服务器端`session.gc_maxlifetime`**:这是session数据在...
当Session超时时,通常需要将用户重定向到登录页面,提示他们重新登录。这可以通过监听器、过滤器或者在拦截器中实现。例如,在拦截器的`preHandle()`方法中,检查当前请求的Session是否有效,如果发现Session已经...
NULL 博文链接:https://ait.iteye.com/blog/1867548
今天有同学在测试小程序的过程中,发现一个问题,调用 微信官方的服务端接口超时 ,比如这个接口,https://api.weixin.qq.com/sns/jscode2session ,因为我们小程序登录的时候,会在自己server端调用微信的API,这个...
对于处理中文字符的问题,我们需要设置请求和响应的编码为GB2312: ```xml ``` 接下来,我们设定Session超时为1分钟,并启用无Cookie模式: ```xml <sessionState mode="InProc" cookieless="true" timeout="1" ...
Javaweb项目Session超时解决方案 在Java Web开发中,Session机制为我们提供了许多方便,...解决Javaweb项目Session超时问题需要对所有的/web/请求进行登录拦截,配置Session超时时间,并使用拦截器来处理后端请求。
2. **Session超时**:服务器通常会设置一个Session的过期时间,超过这个时间未收到客户端的任何请求,服务器就会自动清理对应的Session,导致用户登录状态丢失。 3. **服务器重启或内存溢出**:当服务器重启或内存...
1. **Session超时**:默认情况下,ASP.NET会话状态在20分钟无活动后自动过期。开发者可以通过在Web.config文件中设置`<sessionState>`元素的`timeout`属性来调整这个时间。 2. **Application超时**:应用程序域...
开发者需要设置合理的Session超时时间,并处理Session过期后的用户体验,例如提示用户重新获取验证码。 2. **Session冲突**:在同一台服务器上,如果多个用户同时使用相同的Session ID,可能会导致验证码混淆,这...
如果想让这个事件生效,需要确保在请求处理流程中正确地调用了`AcquireRequestState`方法。 #### 如何获取当前Session的所有键? 可以使用`Session.Keys`来获取当前Session中所有键的集合。这是一个非常有用的API...
在Web开发中,Session超时处理是一个常见的需求,特别是在用户长时间无操作或系统设定的特定时间后,为了保护用户的数据安全,系统会自动结束用户的会话。对于传统的HTTP请求,服务器端可以通过重定向来提示用户重新...
3. **无痕退出**:对于安全性要求较高的应用,Session过期后,不应让用户停留在当前页面,而是立即清除任何敏感信息,执行无痕退出。 **Session过期问题的常见场景及解决方案** 1. **用户长时间未操作**:设置合理...
会话管理是Web应用中的关键部分,确保正确设置Session超时可以帮助优化性能,防止安全问题,如会话劫持。开发者可以定期检查Session ID或相关键值来检测Session的有效性。如果遇到Session过期,可以设计一个机制...