关于session不能超时的有关问题,求各位大神指点,搞不定啊
关于session不能超时的问题,求各位大神指点,搞不定啊!!!
好奇怪的问题,
sessionDestroyed这个方法打包后就不执行,自己测试的时候调系统时间后就执行了(比如设置30分钟超时,那我把系统时间调30分钟后就执行了),但是如果我放着页面不动,第二天回来上班,他就没执行过这个方法。所以就不能超时。,只要方法执行了就能超时,成功退出。
求大神指点啊!!!
------解决方案--------------------
你页面是不是有定时的请求呢
------解决方案--------------------
不会哎,帮顶下吧
------解决方案--------------------
页面应该有定时刷新的代码
------解决方案--------------------
http 是无状态的,你客户端不刷新的话,服务器就认为你已经断开
------解决方案--------------------
下个抓包工具,看看你的页面是不是定时在发请求。
------解决方案--------------------
看看发送的链接是什么,是不是在什么页面上配置了。
------解决方案--------------------
消息推送的http地址是什么?仔细检查页面的所有Javascript,看看到底什么哪条语句触发的。
------解决方案--------------------
服务器推送session基本上是不会失效的
------解决方案--------------------
顶
------解决方案--------------------
服务器推也只是针对特定的页面推送, 你不打开这个页面就不会有长连接或者ajax轮询,session失效还是会的, 难道你一定要留在推送的页面等session失效么。
还有你弄清楚你的推送是哪种实现方式,ajax长轮询比较多, 它要一直请求怎么可能session过期呢
------解决方案--------------------
csdn是长轮询实现的, 每次请求一分钟完了继续请求。 这样session肯定不会超时的。
------解决方案--------------------
firebug会用不,前台肯定是发送Reauest了,否则不会不超时
------解决方案--------------------
你自己不请求后台它自己推送,不会吧,它知道地址是什么就推送啊
------解决方案--------------------
不懂啊,帮顶吧
------解决方案--------------------
你看到了?
------解决方案--------------------
好奇怪的问题,
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分钟后就执行了),但是如果我放着页面不动,第二天回来上班,他就没执行过这个方法。所以就不能超时。,只要方法执行了就能超时,成功退出。
求大神指点啊!!!
------解决方案--------------------
你页面是不是有定时的请求呢
------解决方案--------------------
不会哎,帮顶下吧
------解决方案--------------------
页面应该有定时刷新的代码
------解决方案--------------------
http 是无状态的,你客户端不刷新的话,服务器就认为你已经断开
------解决方案--------------------
下个抓包工具,看看你的页面是不是定时在发请求。
------解决方案--------------------
看看发送的链接是什么,是不是在什么页面上配置了。
------解决方案--------------------
没发什么链接啊,就推送了一个桌面消息,而且按道理只在某些动作下才会执行推送 现在问题已经定位了,是dwr推送引起的
下个抓包工具,看看你的页面是不是定时在发请求。
看看发送的链接是什么,是不是在什么页面上配置了。
消息推送的http地址是什么?仔细检查页面的所有Javascript,看看到底什么哪条语句触发的。
------解决方案--------------------
现在问题已经定位了,是dwr推送引起的
下个抓包工具,看看你的页面是不是定时在发请求。
服务器推送session基本上是不会失效的
------解决方案--------------------
现在问题已经定位了,是dwr推送引起的
下个抓包工具,看看你的页面是不是定时在发请求。
服务器推送session基本上是不会失效的
------解决方案--------------------
那有什么办法解决吗 现在问题已经定位了,是dwr推送引起的
下个抓包工具,看看你的页面是不是定时在发请求。
服务器推送session基本上是不会失效的
服务器推也只是针对特定的页面推送, 你不打开这个页面就不会有长连接或者ajax轮询,session失效还是会的, 难道你一定要留在推送的页面等session失效么。
还有你弄清楚你的推送是哪种实现方式,ajax长轮询比较多, 它要一直请求怎么可能session过期呢
------解决方案--------------------
的确是这样的,我们就是加了一个像CSDN这种通知,(CSDN也是无刷新的),这个通知就是在每一个页面都能看见得,所以长连接在main页面开启的。那按道理CSDN也是不超时的? 那有什么办法解决吗 现在问题已经定位了,是dwr推送引起的
下个抓包工具,看看你的页面是不是定时在发请求。
服务器推送session基本上是不会失效的
服务器推也只是针对特定的页面推送, 你不打开这个页面就不会有长连接或者ajax轮询,session失效还是会的, 难道你一定要留在推送的页面等session失效么。
还有你弄清楚你的推送是哪种实现方式,ajax长轮询比较多, 它要一直请求怎么可能session过期呢
csdn是长轮询实现的, 每次请求一分钟完了继续请求。 这样session肯定不会超时的。
------解决方案--------------------
firebug会用不,前台肯定是发送Reauest了,否则不会不超时
------解决方案--------------------
是的,发送的是DWR的推送
firebug会用不,前台肯定是发送Reauest了,否则不会不超时
------解决方案--------------------
不懂啊,帮顶吧
------解决方案--------------------
不算是请求的,它是在后台直接调用Js,所以一直处于交互状态 你自己不请求后台它自己推送,不会吧,它知道地址是什么就推送啊 是的,发送的是DWR的推送
firebug会用不,前台肯定是发送Reauest了,否则不会不超时
------解决方案--------------------