0 0

想让session不超时,对于我这个问题怎么处理?30

我的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处理这个事。
2011年11月12日 20:31

3个答案 按时间排序 按投票排序

0 0

采纳的答案

1.设置定时器或者线程 当你启动扫描时候 同时向后台启动线程或者开始计时

2011年11月14日 10:04
0 0

那就用cookies 每30分钟取一次

2011年11月14日 09:52
0 0

在web.xml 设置<session-config><session-timeout>-1</session-timeout/></session-config>

2011年11月14日 08:40

相关推荐

    Ajax请求session超时处理流程

    Ajax请求session超时处理流程 java服务器端处理: SessionValidateFilter中修改: if (ServerInfo.isAjax(request)) { request.setAttribute("statusCode", 301); request.setAttribute("message", "Session ...

    JS之Session超时提示代码

    本篇文章将深入分析一个通过JavaScript(简称JS)实现的Session超时提示逻辑,该逻辑不依赖于服务器端请求,而是利用前端技术监测用户行为并在Session即将过期时给予提示。 #### 二、核心功能概述 根据提供的部分...

    session 超时

    因此,在用户登录系统时,可以在session中设置一个属性,当session失效时,通过判断这个属性来让系统知道session已经失效。 知识点五:web应用的发展历程 随着网络技术的不断发展,尤其是基于web的信息发布和检索...

    登录超时完整实例、session超时设置、JSP页面会话超时

    本教程将深入探讨"登录超时完整实例",包括如何进行`session超时设置`以及在`JSP页面`中处理会话超时的问题。 首先,我们需要理解什么是登录超时。登录超时是指用户在一定时间内未进行任何操作,系统自动判断该用户...

    JSPsession超时提示

    ### JSP Session超时提示知识点解析 #### 一、背景介绍 在Web应用程序中,`session` 是一种常用的技术手段,用于保存用户的状态信息。它能够帮助开发者在多个页面请求之间保持用户的数据一致性。然而,为了提高安全...

    JSF如何监测和处理session超时

    本篇文章将详细介绍如何在JSF中监测和处理session超时,特别是通过监听恢复视图阶段的`ViewExpiredException`异常。 首先,我们需要理解JSF的生命周期。JSF有多个阶段,包括恢复视图(Restore View)阶段。在这个...

    php中精确控制session超时时间

    例如,若想让session在30分钟后过期,可将其设置为1800秒。这样,即使用户未关闭浏览器,只要超过30分钟无操作,session ID也会从客户端删除。 2. **设置服务器端`session.gc_maxlifetime`**:这是session数据在...

    J简单的springmvc包括拦截、session设置,超时跳转

    当Session超时时,通常需要将用户重定向到登录页面,提示他们重新登录。这可以通过监听器、过滤器或者在拦截器中实现。例如,在拦截器的`preHandle()`方法中,检查当前请求的Session是否有效,如果发现Session已经...

    session ajax超时问题处理方案

    NULL 博文链接:https://ait.iteye.com/blog/1867548

    小程序server请求微信服务器超时的解决方法

    今天有同学在测试小程序的过程中,发现一个问题,调用 微信官方的服务端接口超时 ,比如这个接口,https://api.weixin.qq.com/sns/jscode2session ,因为我们小程序登录的时候,会在自己server端调用微信的API,这个...

    .net解决了防止用户重复登陆,session超时

    对于处理中文字符的问题,我们需要设置请求和响应的编码为GB2312: ```xml ``` 接下来,我们设定Session超时为1分钟,并启用无Cookie模式: ```xml &lt;sessionState mode="InProc" cookieless="true" timeout="1" ...

    Javaweb项目session超时解决方案

    Javaweb项目Session超时解决方案 在Java Web开发中,Session机制为我们提供了许多方便,...解决Javaweb项目Session超时问题需要对所有的/web/请求进行登录拦截,配置Session超时时间,并使用拦截器来处理后端请求。

    关于session丢失问题

    2. **Session超时**:服务器通常会设置一个Session的过期时间,超过这个时间未收到客户端的任何请求,服务器就会自动清理对应的Session,导致用户登录状态丢失。 3. **服务器重启或内存溢出**:当服务器重启或内存...

    ASP技术常遇问题解答-如何处理超时事件?.zip

    1. **Session超时**:默认情况下,ASP.NET会话状态在20分钟无活动后自动过期。开发者可以通过在Web.config文件中设置`&lt;sessionState&gt;`元素的`timeout`属性来调整这个时间。 2. **Application超时**:应用程序域...

    验证码的session问题

    开发者需要设置合理的Session超时时间,并处理Session过期后的用户体验,例如提示用户重新获取验证码。 2. **Session冲突**:在同一台服务器上,如果多个用户同时使用相同的Session ID,可能会导致验证码混淆,这...

    在asp.net中使用session常见问题集锦

    如果想让这个事件生效,需要确保在请求处理流程中正确地调用了`AcquireRequestState`方法。 #### 如何获取当前Session的所有键? 可以使用`Session.Keys`来获取当前Session中所有键的集合。这是一个非常有用的API...

    Web 开发中Ajax的Session 超时处理方法

    在Web开发中,Session超时处理是一个常见的需求,特别是在用户长时间无操作或系统设定的特定时间后,为了保护用户的数据安全,系统会自动结束用户的会话。对于传统的HTTP请求,服务器端可以通过重定向来提示用户重新...

    session过期问题

    3. **无痕退出**:对于安全性要求较高的应用,Session过期后,不应让用户停留在当前页面,而是立即清除任何敏感信息,执行无痕退出。 **Session过期问题的常见场景及解决方案** 1. **用户长时间未操作**:设置合理...

    JSP Session超时设置的实现方法

    会话管理是Web应用中的关键部分,确保正确设置Session超时可以帮助优化性能,防止安全问题,如会话劫持。开发者可以定期检查Session ID或相关键值来检测Session的有效性。如果遇到Session过期,可以设计一个机制...

Global site tag (gtag.js) - Google Analytics