页面自动刷新,导致session不能自动销毁

由于页面不断向后台发送请求,session不会自动销毁
解决办法
JSP页面:

//手动设置session失效
    //定义计时器
     var monitorCount = 0;

     //绑定body的onclick处理函数
     document.body.onclick = function()
     {
       if(typeof bodyOnClickFunction == 'function')
       {
         bodyOnClickFunction();
       }
     }

     //body的单击处理函数
     function bodyOnClickFunction()
     {
       resetTimeoutCount();
     }

     //重置计数器为0
     function resetTimeoutCount()
     {
       monitorCount = 0
     }

     var timeOutFunction = "sessionTimeOutMonitor()";

     function sessionTimeOutMonitor()
     {
       var sessionTimeCount = document.getElementById("sessionTimeCount").value / 60;

       if(monitorCount < sessionTimeCount)
       {
         monitorCount++;
         setTimeout(sessionTimeOutMonitor,60 * 1000);
       }
       else
       {
         //调用ajax或者dwr调用使后台的session失效
           $.ajax({
                url:"session",
                data:"&ac=3&status=0",
                type:'post',
                dataType: 'xml', 
                cache:false, 
                timeout: 200000,
                contentType:"application/x-www-form-urlencoded; charset=utf-8",
                error: function(){

                },
                success:function(xml){      

                     location.reload();
                }
            });
       }   
     }

后台的servlet方法


        //获取请求方法
        String action = request.getParameter("ac");
        int method = TypeConvUtil.parseInt(action, 0);
        //根据方法进行对应操作
        switch (method){
            case 3:
                destroy(request, response);
                break;
            default :
                break;
        }

servlet中destroy方法

//自定义获取session的方法
Session session = new com.yx.web.servlet.Session(request);
//自定义方法清空session并使其无效
        session.clear();
        session.invalidate();

设置body的onload时间

<body onload="sessionTimeOutMonitor();">
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值