热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关于session不能超时的问题,求各位大神指点,搞不定啊!!!

好奇怪的问题,publicclassLogoutHttpSessionListenerimplementsHttpSessionListener{**
好奇怪的问题,
public class LogoutHttpSessionListener implements HttpSessionListener {
    
    /**
     * {@inheritDoc}
     */
    public void sessionCreated(HttpSessionEvent event) {
    }
    
    /**
     * {@inheritDoc}
     */
    public void sessionDestroyed(HttpSessionEvent event) {
        HttpSession session = event.getSession();
        if (GeneralUtils.isNotNull(session.getAttribute(PortalConstants.SESSION_USER_INFO))) {
            session.removeAttribute(PortalConstants.SESSION_USER_INFO);
        }
    }
}

sessionDestroyed这个方法打包后就不执行,自己测试的时候调系统时间后就执行了(比如设置30分钟超时,那我把系统时间调30分钟后就执行了),但是如果我放着页面不动,第二天回来上班,他就没执行过这个方法。所以就不能超时。,只要方法执行了就能超时,成功退出。


求大神指点啊!!!

30 个解决方案

#1


你页面是不是有定时的请求呢

#2


引用 1 楼 whos2002110 的回复:
你页面是不是有定时的请求呢
后台是有定时请求,比如有个任务是200秒执行一次入库,这种冲突吗?

#3


不会哎,帮顶下吧

#4


页面应该有定时刷新的代码

#5


引用 4 楼 crskyp 的回复:
页面应该有定时刷新的代码
那也不至于每个页面都有定时刷新吧

#6


http 是无状态的,你客户端不刷新的话,服务器就认为你已经断开

#7


下个抓包工具,看看你的页面是不是定时在发请求。

#8


引用 6 楼 defonds 的回复:
http 是无状态的,你客户端不刷新的话,服务器就认为你已经断开
是DWR引起的,它是无刷新与服务器交互的,但是不知道怎么解决,网上也找不到关于DWR推送引起session不过期的问题

#9


引用 7 楼 gaofuqi 的回复:
下个抓包工具,看看你的页面是不是定时在发请求。
现在问题已经定位了,是dwr推送引起的

#10


引用 9 楼 u012252681 的回复:
Quote: 引用 7 楼 gaofuqi 的回复:

下个抓包工具,看看你的页面是不是定时在发请求。
现在问题已经定位了,是dwr推送引起的

看看发送的链接是什么,是不是在什么页面上配置了。

#11


引用 10 楼 gaofuqi 的回复:
Quote: 引用 9 楼 u012252681 的回复:

Quote: 引用 7 楼 gaofuqi 的回复:

下个抓包工具,看看你的页面是不是定时在发请求。
现在问题已经定位了,是dwr推送引起的

看看发送的链接是什么,是不是在什么页面上配置了。
没发什么链接啊,就推送了一个桌面消息,而且按道理只在某些动作下才会执行推送

#12


引用 11 楼 u012252681 的回复:
Quote: 引用 10 楼 gaofuqi 的回复:

Quote: 引用 9 楼 u012252681 的回复:

Quote: 引用 7 楼 gaofuqi 的回复:

下个抓包工具,看看你的页面是不是定时在发请求。
现在问题已经定位了,是dwr推送引起的

看看发送的链接是什么,是不是在什么页面上配置了。
没发什么链接啊,就推送了一个桌面消息,而且按道理只在某些动作下才会执行推送

消息推送的http地址是什么?仔细检查页面的所有Javascript,看看到底什么哪条语句触发的。

#13


引用 9 楼 u012252681 的回复:
Quote: 引用 7 楼 gaofuqi 的回复:

下个抓包工具,看看你的页面是不是定时在发请求。
现在问题已经定位了,是dwr推送引起的


服务器推送session基本上是不会失效的

#14


引用 13 楼 whos2002110 的回复:
Quote: 引用 9 楼 u012252681 的回复:

Quote: 引用 7 楼 gaofuqi 的回复:

下个抓包工具,看看你的页面是不是定时在发请求。
现在问题已经定位了,是dwr推送引起的


服务器推送session基本上是不会失效的
那有什么办法解决吗

#15


引用 13 楼 whos2002110 的回复:
Quote: 引用 9 楼 u012252681 的回复:

Quote: 引用 7 楼 gaofuqi 的回复:

下个抓包工具,看看你的页面是不是定时在发请求。
现在问题已经定位了,是dwr推送引起的


服务器推送session基本上是不会失效的

#16


引用 14 楼 u012252681 的回复:
Quote: 引用 13 楼 whos2002110 的回复:

Quote: 引用 9 楼 u012252681 的回复:

Quote: 引用 7 楼 gaofuqi 的回复:

下个抓包工具,看看你的页面是不是定时在发请求。
现在问题已经定位了,是dwr推送引起的


服务器推送session基本上是不会失效的
那有什么办法解决吗

服务器推也只是针对特定的页面推送, 你不打开这个页面就不会有长连接或者ajax轮询,session失效还是会的, 难道你一定要留在推送的页面等session失效么。
 还有你弄清楚你的推送是哪种实现方式,ajax长轮询比较多, 它要一直请求怎么可能session过期呢

#17


引用 16 楼 whos2002110 的回复:
Quote: 引用 14 楼 u012252681 的回复:

Quote: 引用 13 楼 whos2002110 的回复:

Quote: 引用 9 楼 u012252681 的回复:

Quote: 引用 7 楼 gaofuqi 的回复:

下个抓包工具,看看你的页面是不是定时在发请求。
现在问题已经定位了,是dwr推送引起的


服务器推送session基本上是不会失效的
那有什么办法解决吗

服务器推也只是针对特定的页面推送, 你不打开这个页面就不会有长连接或者ajax轮询,session失效还是会的, 难道你一定要留在推送的页面等session失效么。
 还有你弄清楚你的推送是哪种实现方式,ajax长轮询比较多, 它要一直请求怎么可能session过期呢
的确是这样的,我们就是加了一个像CSDN这种通知,(CSDN也是无刷新的),这个通知就是在每一个页面都能看见得,所以长连接在main页面开启的。那按道理CSDN也是不超时的?

#18


引用 17 楼 u012252681 的回复:
Quote: 引用 16 楼 whos2002110 的回复:

Quote: 引用 14 楼 u012252681 的回复:

Quote: 引用 13 楼 whos2002110 的回复:

Quote: 引用 9 楼 u012252681 的回复:

Quote: 引用 7 楼 gaofuqi 的回复:

下个抓包工具,看看你的页面是不是定时在发请求。
现在问题已经定位了,是dwr推送引起的


服务器推送session基本上是不会失效的
那有什么办法解决吗

服务器推也只是针对特定的页面推送, 你不打开这个页面就不会有长连接或者ajax轮询,session失效还是会的, 难道你一定要留在推送的页面等session失效么。
 还有你弄清楚你的推送是哪种实现方式,ajax长轮询比较多, 它要一直请求怎么可能session过期呢
的确是这样的,我们就是加了一个像CSDN这种通知,(CSDN也是无刷新的),这个通知就是在每一个页面都能看见得,所以长连接在main页面开启的。那按道理CSDN也是不超时的?

csdn是长轮询实现的, 每次请求一分钟完了继续请求。 这样session肯定不会超时的。 

#19


firebug会用不,前台肯定是发送Reauest了,否则不会不超时

#20


引用 19 楼 lwb314 的回复:
firebug会用不,前台肯定是发送Reauest了,否则不会不超时
是的,发送的是DWR的推送

#21


引用 20 楼 u012252681 的回复:
Quote: 引用 19 楼 lwb314 的回复:

firebug会用不,前台肯定是发送Reauest了,否则不会不超时
是的,发送的是DWR的推送
你自己不请求后台它自己推送,不会吧,它知道地址是什么就推送啊

#22


引用 21 楼 lwb314 的回复:
Quote: 引用 20 楼 u012252681 的回复:

Quote: 引用 19 楼 lwb314 的回复:

firebug会用不,前台肯定是发送Reauest了,否则不会不超时
是的,发送的是DWR的推送
你自己不请求后台它自己推送,不会吧,它知道地址是什么就推送啊
不算是请求的,它是在后台直接调用Js,所以一直处于交互状态

#23


不懂啊,帮顶吧

#24


引用 22 楼 u012252681 的回复:
Quote: 引用 21 楼 lwb314 的回复:

Quote: 引用 20 楼 u012252681 的回复:

Quote: 引用 19 楼 lwb314 的回复:

firebug会用不,前台肯定是发送Reauest了,否则不会不超时
是的,发送的是DWR的推送
你自己不请求后台它自己推送,不会吧,它知道地址是什么就推送啊
不算是请求的,它是在后台直接调用Js,所以一直处于交互状态
你看到了?

#25


引用 24 楼 lwb314 的回复:
Quote: 引用 22 楼 u012252681 的回复:

Quote: 引用 21 楼 lwb314 的回复:

Quote: 引用 20 楼 u012252681 的回复:

Quote: 引用 19 楼 lwb314 的回复:

firebug会用不,前台肯定是发送Reauest了,否则不会不超时
是的,发送的是DWR的推送
你自己不请求后台它自己推送,不会吧,它知道地址是什么就推送啊
不算是请求的,它是在后台直接调用Js,所以一直处于交互状态
你看到了?
看到了,实际上就是定时请求。DWR长连接开启后就是不断向页面发送定时请求。那理论上就不能超时了吧?CSDN是怎么实现的?

#26


引用 18 楼 whos2002110 的回复:
Quote: 引用 17 楼 u012252681 的回复:

Quote: 引用 16 楼 whos2002110 的回复:

Quote: 引用 14 楼 u012252681 的回复:

Quote: 引用 13 楼 whos2002110 的回复:

Quote: 引用 9 楼 u012252681 的回复:

Quote: 引用 7 楼 gaofuqi 的回复:

下个抓包工具,看看你的页面是不是定时在发请求。
现在问题已经定位了,是dwr推送引起的


服务器推送session基本上是不会失效的
那有什么办法解决吗

服务器推也只是针对特定的页面推送, 你不打开这个页面就不会有长连接或者ajax轮询,session失效还是会的, 难道你一定要留在推送的页面等session失效么。
 还有你弄清楚你的推送是哪种实现方式,ajax长轮询比较多, 它要一直请求怎么可能session过期呢
的确是这样的,我们就是加了一个像CSDN这种通知,(CSDN也是无刷新的),这个通知就是在每一个页面都能看见得,所以长连接在main页面开启的。那按道理CSDN也是不超时的?

csdn是长轮询实现的, 每次请求一分钟完了继续请求。 这样session肯定不会超时的。 
但是CSDN是会超时的啊,它怎么实现的

#27


引用 26 楼 u012252681 的回复:
Quote: 引用 18 楼 whos2002110 的回复:

Quote: 引用 17 楼 u012252681 的回复:

Quote: 引用 16 楼 whos2002110 的回复:

Quote: 引用 14 楼 u012252681 的回复:

Quote: 引用 13 楼 whos2002110 的回复:

Quote: 引用 9 楼 u012252681 的回复:

Quote: 引用 7 楼 gaofuqi 的回复:

下个抓包工具,看看你的页面是不是定时在发请求。
现在问题已经定位了,是dwr推送引起的


服务器推送session基本上是不会失效的
那有什么办法解决吗

服务器推也只是针对特定的页面推送, 你不打开这个页面就不会有长连接或者ajax轮询,session失效还是会的, 难道你一定要留在推送的页面等session失效么。
 还有你弄清楚你的推送是哪种实现方式,ajax长轮询比较多, 它要一直请求怎么可能session过期呢
的确是这样的,我们就是加了一个像CSDN这种通知,(CSDN也是无刷新的),这个通知就是在每一个页面都能看见得,所以长连接在main页面开启的。那按道理CSDN也是不超时的?

csdn是长轮询实现的, 每次请求一分钟完了继续请求。 这样session肯定不会超时的。 
但是CSDN是会超时的啊,它怎么实现的

csdn会超时么?  我好像没遇到过,你怎么知道csdn会超时的?  让你重新登录了?

#28


引用 27 楼 whos2002110 的回复:
Quote: 引用 26 楼 u012252681 的回复:

Quote: 引用 18 楼 whos2002110 的回复:

Quote: 引用 17 楼 u012252681 的回复:

Quote: 引用 16 楼 whos2002110 的回复:

Quote: 引用 14 楼 u012252681 的回复:

Quote: 引用 13 楼 whos2002110 的回复:

Quote: 引用 9 楼 u012252681 的回复:

Quote: 引用 7 楼 gaofuqi 的回复:

下个抓包工具,看看你的页面是不是定时在发请求。
现在问题已经定位了,是dwr推送引起的


服务器推送session基本上是不会失效的
那有什么办法解决吗

服务器推也只是针对特定的页面推送, 你不打开这个页面就不会有长连接或者ajax轮询,session失效还是会的, 难道你一定要留在推送的页面等session失效么。
 还有你弄清楚你的推送是哪种实现方式,ajax长轮询比较多, 它要一直请求怎么可能session过期呢
的确是这样的,我们就是加了一个像CSDN这种通知,(CSDN也是无刷新的),这个通知就是在每一个页面都能看见得,所以长连接在main页面开启的。那按道理CSDN也是不超时的?

csdn是长轮询实现的, 每次请求一分钟完了继续请求。 这样session肯定不会超时的。 
但是CSDN是会超时的啊,它怎么实现的

csdn会超时么?  我好像没遇到过,你怎么知道csdn会超时的?  让你重新登录了?
CSDN超时时间是七天

#29


引用 28 楼 u012252681 的回复:
Quote: 引用 27 楼 whos2002110 的回复:

Quote: 引用 26 楼 u012252681 的回复:

Quote: 引用 18 楼 whos2002110 的回复:

Quote: 引用 17 楼 u012252681 的回复:

Quote: 引用 16 楼 whos2002110 的回复:

Quote: 引用 14 楼 u012252681 的回复:

Quote: 引用 13 楼 whos2002110 的回复:

Quote: 引用 9 楼 u012252681 的回复:

Quote: 引用 7 楼 gaofuqi 的回复:

下个抓包工具,看看你的页面是不是定时在发请求。
现在问题已经定位了,是dwr推送引起的


服务器推送session基本上是不会失效的
那有什么办法解决吗

服务器推也只是针对特定的页面推送, 你不打开这个页面就不会有长连接或者ajax轮询,session失效还是会的, 难道你一定要留在推送的页面等session失效么。
 还有你弄清楚你的推送是哪种实现方式,ajax长轮询比较多, 它要一直请求怎么可能session过期呢
的确是这样的,我们就是加了一个像CSDN这种通知,(CSDN也是无刷新的),这个通知就是在每一个页面都能看见得,所以长连接在main页面开启的。那按道理CSDN也是不超时的?

csdn是长轮询实现的, 每次请求一分钟完了继续请求。 这样session肯定不会超时的。 
但是CSDN是会超时的啊,它怎么实现的

csdn会超时么?  我好像没遇到过,你怎么知道csdn会超时的?  让你重新登录了?
CSDN超时时间是七天

你说的这个是自动登录功能,是通过COOKIE控制的, 7天是COOKIE的保存时间,跟session不搭嘎

#30


引用 29 楼 whos2002110 的回复:
Quote: 引用 28 楼 u012252681 的回复:

Quote: 引用 27 楼 whos2002110 的回复:

Quote: 引用 26 楼 u012252681 的回复:

Quote: 引用 18 楼 whos2002110 的回复:

Quote: 引用 17 楼 u012252681 的回复:

Quote: 引用 16 楼 whos2002110 的回复:

Quote: 引用 14 楼 u012252681 的回复:

Quote: 引用 13 楼 whos2002110 的回复:

Quote: 引用 9 楼 u012252681 的回复:

Quote: 引用 7 楼 gaofuqi 的回复:

下个抓包工具,看看你的页面是不是定时在发请求。
现在问题已经定位了,是dwr推送引起的


服务器推送session基本上是不会失效的
那有什么办法解决吗

服务器推也只是针对特定的页面推送, 你不打开这个页面就不会有长连接或者ajax轮询,session失效还是会的, 难道你一定要留在推送的页面等session失效么。
 还有你弄清楚你的推送是哪种实现方式,ajax长轮询比较多, 它要一直请求怎么可能session过期呢
的确是这样的,我们就是加了一个像CSDN这种通知,(CSDN也是无刷新的),这个通知就是在每一个页面都能看见得,所以长连接在main页面开启的。那按道理CSDN也是不超时的?

csdn是长轮询实现的, 每次请求一分钟完了继续请求。 这样session肯定不会超时的。 
但是CSDN是会超时的啊,它怎么实现的

csdn会超时么?  我好像没遇到过,你怎么知道csdn会超时的?  让你重新登录了?
CSDN超时时间是七天

你说的这个是自动登录功能,是通过COOKIE控制的, 7天是COOKIE的保存时间,跟session不搭嘎


问题已经解决了,你说的没错,页面有定时请求,用struts2的方式session是不可能超时的,我是根据拦截器去判断上次拦截的时间与本次拦截的时间差是否达到超时时间了,如果超出了,就让session失效,从而达到session超时的目的。

推荐阅读
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • Servlet多用户登录时HttpSession会话信息覆盖问题的解决方案
    本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ... [详细]
  • POCOCLibraies属于功能广泛、轻量级别的开源框架库,它拥有媲美Boost库的功能以及较小的体积广泛应用在物联网平台、工业自动化等领域。POCOCLibrai ... [详细]
  • Allegro总结:1.防焊层(SolderMask):又称绿油层,PCB非布线层,用于制成丝网印板,将不需要焊接的地方涂上防焊剂.在防焊层上预留的焊盘大小要比实际的焊盘大一些,其差值一般 ... [详细]
  • XMLhttpREquest_Ajax技术总结之XmlHttpRequest
    Ajax1、 什么是ajax   ... [详细]
  • 1、概述首先和大家一起回顾一下Java消息服务,在我之前的博客《Java消息队列-JMS概述》中,我为大家分析了:然后在另一篇博客《Java消息队列-ActiveMq实战》中 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  •  项目地址https:github.comffmydreamWiCar界面做的很难看,美工方面实在不在行。重点是按钮触摸事件的处理,这里搬了RepeatListener项目代码,例 ... [详细]
  • pc电脑如何投屏到电视?DLNA主要步骤通过DLNA连接,使用WindowsMediaPlayer的流媒体播放举例:电脑和电视机都是连接的 ... [详细]
  • centos php部署到nginx 404_NodeJS项目部署到阿里云ECS服务器全程详解
    本文转载自:http:www.kovli.com20170919ecs-deploy作者:Kovli本文详细介绍如何部署NodeJS项目到阿里云ECS上, ... [详细]
  • 初学反射基本原理
    反射:框架设计的灵魂*框架:半成品软件。可以在框架的基础上进行软件开发,简化编码*反射:将类的各个组成部分封装为其他对象 ... [详细]
  • OAuth2.0指南
    引言OAuth2.0是一种应用之间彼此访问数据的开源授权协议。比如,一个游戏应用可以访问Facebook的用户数据,或者一个基于地理的应用可以访问Foursquare的用户数据等。 ... [详细]
  • maven配置阿里云仓库的实现方法(2022年)_java
    本文主要介绍了maven配置阿里云仓库的实现方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的 ... [详细]
  • 首先,我有点像jQuerynoob和整个PHPnoob,所以如果这是一个愚蠢的问题,我感到很抱歉(尽管我已经搜索了Internet,尤其是这个网站的上下无法弄清我的意思.错了).另 ... [详细]
author-avatar
街对面的怪蜀黍
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有