关于j2ee 用户在线列表显示问题

不所谓先生 2012-05-05 04:11:48
最近在做一个关于web在线用户显示的问题 后来发现貌似没办法做到完美的及时在线显示

有人说用session监听器 结合session超时设置
但后来发现session超时设置是全局的 也就是说要是我多个用户登入 只要一个用户在进行操作 其他用户管多久多session都不会超时 而且 怎么去触发它销毁session时的方法也很头疼
不知道有什么好的建议和方案 谢谢
...全文
141 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
不所谓先生 2012-05-06
  • 打赏
  • 举报
回复
问题就就是捕捉浏览器关闭时间不好做
ylovep 2012-05-06
  • 打赏
  • 举报
回复
在数据库记录用户的状态 1代表在线 0代表离线 ,呵呵 若死机或者关闭浏览器就会造成数据不正确
这个靠楼主自己把握了
  • 打赏
  • 举报
回复
粗略地就可以了,没必要那么精确
不所谓先生 2012-05-06
  • 打赏
  • 举报
回复
难道真的没有办法了么
不所谓先生 2012-05-06
  • 打赏
  • 举报
回复
如果我每一个用户登入我都分别new 一个新的session对应 设置超时时间
然后再从页面用ajax定一个时间段去处发相应session
如果有的用户关闭了页面 也就是ajax停止触发 那么相对的session超时时间就正常的走 走完把相对应的session销毁 这样行不
不所谓先生 2012-05-05
  • 打赏
  • 举报
回复
flash那真的耗不起了 晕了
吴红军 2012-05-05
  • 打赏
  • 举报
回复
有是有,只怕你耗不起。flash貌似可以。
不所谓先生 2012-05-05
  • 打赏
  • 举报
回复
本来是想用cookie代替
利用随着浏览器关闭存在内存所属的cookie也会删除这个特点来作
后来发现没办法获取全局也就是这个服务所有的cookie来判断那个cookie消失来实现用户下线 而且cookie也很容易被浏览器限制
所以也行不同 所以不知道 还有没有 其他比较好的方法
吴红军 2012-05-05
  • 打赏
  • 举报
回复
那继续头痛或者蛋疼。。这个真的没好的解决办法。
不所谓先生 2012-05-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
这个目前还没有完美的解决方法的。
你可以利用浏览器的Unload事件,当关闭时,清楚用户在线状态。
[/Quote]
这个也不行...因为如果我开启其他的选项卡 我在其他的选项卡里关闭浏览器 那么js是捕捉不到的
头疼啊
吴红军 2012-05-05
  • 打赏
  • 举报
回复
这个目前还没有完美的解决方法的。
你可以利用浏览器的Unload事件,当关闭时,清楚用户在线状态。
不所谓先生 2012-05-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
public void sessionDestroyed(HttpSessionEvent se)
这是HttpSessionListener借口的销毁方法,实现Session监听器,并在web.xml中配置一下
[/Quote]

问题就在这里 web.xml里配置是整个服务的session的超时时间 比如说我有三个用户 其中一个用在操作 二其他两个用户实际已经关闭浏览器停止操作 但是由于用户1在操作 所以session 不会被销毁
JavaMan 2012-05-05
  • 打赏
  • 举报
回复
public void sessionDestroyed(HttpSessionEvent se)
这是HttpSessionListener借口的销毁方法,实现Session监听器,并在web.xml中配置一下

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧