【问题标题】:Resetting session timeout重置会话超时
【发布时间】:2012-04-11 18:32:57
【问题描述】:

我有一个网页,用户可以在其中使用 AJAX 调用服务器来扩展会话。如果应用程序配置的会话超时为 30 分钟,他可以通过按下按钮将会话延长 5 分钟。当该用户提交页面时,我需要将此会话超时值重置回全局会话超时值。

在 Java 中是否可以重置它? 要么 是否可以读取 web.xml 中配置的全局会话超时值?

编辑:

我正在使用以下代码来扩展会话

request.getSession().setMaxInactiveInterval(300000);

【问题讨论】:

    标签: java session session-timeout


    【解决方案1】:

    用户如何延长会话。我的意思是你是否提供了一个关于它的 javascript 警报/确认框。

    理想情况下,会话应该在用户向服务器提交请求时自动扩展。

    代码中的 setMaxInactiveInterval() 和 web.xml 中的 <session-config> 应该在正常情况下执行此操作。

    分享你的应用的确切情况

    编辑: 向 JSP 发送一个虚拟请求应该会自动延长会话,因为会话超时是根据非活动间隔来衡量的,并且虚拟请求应该放弃直到现在的非活动间隔。

    【讨论】:

      【解决方案2】:

      我通过在执行动作类时将默认会话设置为会话变量来解决它,然后在需要时使用它来重置。 我不确定这是解决这个问题的正确方法。但它至少解决了我的问题。

      【讨论】:

        【解决方案3】:

        超时和休息功能在这里,它将根据服务响应工作。

        时间设置功能:

        $rootScope.SessionTime =localStorage.getItem('mint');
                   $rootScope.tickDuration=1000;
                        $rootScope.myInterval=setInterval(function(){
        
                          $rootScope.SessionTime=$rootScope.SessionTime-$rootScope.tickDuration
                          //console.log("secs:::::"+$rootScope.SessionTime);
                         if($rootScope.SessionTime<300000 && $rootScope.tickDuration >0){
                            $('#session').modal('show');
                            $rootScope.tickDuration =0;
                         }
                   },$rootScope.tickDuration);
        

        超时功能:

         $scope.myTimeout = function(){            
                   var sessionId=getcokkies.getsessionId(); 
                   $http({
                           url: config.apiUrl + '/user/refreshsession?sessionId='+sessionId,
                         method: "POST",
                           headers: {
                               'Content-Type': 'application/x-www-form-urlencoded'
                           },
                           data: $.param({
                               'userId': parseInt(getcokkies.getUserId()),
                           })
                       }).then(function successCallback(response) {
                           //localStorage.setItem("mint", 600000);
                            //$rootScope.SessionTime = 600000;
                           clearInterval($rootScope.myInterval); 
                           localStorage.setItem("mint", 600000); 
                           $rootScope.SessionTime =localStorage.getItem('mint');
                          // console.log("after++++"+$rootScope.SessionTime);
                           $rootScope.tickDuration=1000; 
        
        
                       }, function errorCallback(response) {});
        
                   }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2010-11-23
          • 2012-05-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多