JavaWeb 怎么检测客户端浏览器关闭并销毁session

hunterlew 2016-03-11 09:58:31
如题,系统要求某页面在同一时间只能一个人使用。目前只能提供一个jsp链接让用户退出的时候点击去销毁,但大部分用户会直接关浏览器吧。有什么方法可以检测到用户退出页面呢(暂不考虑掉电、死机等问题了)?
背景:因为系统页面是与实际硬件相连的,所以每一次只能让一个用户进来操作,否则就乱套了。
...全文
2882 16 打赏 收藏 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
讨厌走开啦 2019-04-16
  • 打赏
  • 举报
回复
页面上启个websocket定时发心跳,或者初始化的时候开始轮询,一定时间没有接收到心跳或轮询请求则认为用户下线。
一只程序员外 2019-04-16
  • 打赏
  • 举报
回复
到今天我也碰到同样问题了····session的销毁跟失效根本是两回事啊,一脸懵逼,不过看到Spring框架里说是有个能自动装配session,随时可以使用的,不知道是不是我的环境问题没有成功,不过网上挺多人成功的
顾小林 2016-03-30
  • 打赏
  • 举报
回复
websocket 长连接考虑一下吧
  • 打赏
  • 举报
回复
应该没有吧。连session都是超时才销毁,如果有这种事件,session不会这么设计吧
街头小贩 2016-03-19
  • 打赏
  • 举报
回复
引用 11 楼 hunterlew 的回复:
[quote=引用 10 楼 xiaofanku 的回复:] [quote=引用 8 楼 hunterlew 的回复:] @街头小贩 我也是用的监听器,但发现只能监听session销毁的事件,没有监听浏览器关闭的事件,从而用户直接关掉浏览器我就没法重置我的全局变量了。
首先你要知道你要捕获的事件在哪发生,servlet的事件在服务器上servlet容器中发生,而你要捕获的是客户端浏览器[/quote] 所以说无解呀~[/quote]没有无解的问题。可能是你现在力所不能及的吧。如果用户用的浏览器是你写的哪都不是事
hunterlew 2016-03-18
  • 打赏
  • 举报
回复
引用 10 楼 xiaofanku 的回复:
[quote=引用 8 楼 hunterlew 的回复:] @街头小贩 我也是用的监听器,但发现只能监听session销毁的事件,没有监听浏览器关闭的事件,从而用户直接关掉浏览器我就没法重置我的全局变量了。
首先你要知道你要捕获的事件在哪发生,servlet的事件在服务器上servlet容器中发生,而你要捕获的是客户端浏览器[/quote] 所以说无解呀~
街头小贩 2016-03-16
  • 打赏
  • 举报
回复
引用 8 楼 hunterlew 的回复:
@街头小贩 我也是用的监听器,但发现只能监听session销毁的事件,没有监听浏览器关闭的事件,从而用户直接关掉浏览器我就没法重置我的全局变量了。
首先你要知道你要捕获的事件在哪发生,servlet的事件在服务器上servlet容器中发生,而你要捕获的是客户端浏览器
街头小贩 2016-03-14
  • 打赏
  • 举报
回复
要实现唯 一身份在线也不难,无非是在登录时判断一下此会员是否未处于在线状态
街头小贩 2016-03-14
  • 打赏
  • 举报
回复
servlet上有8个事件监听器,在请求,会话,上下文对象上触发. 你需要的是监听浏览器的相关事件,跟java,扯不上关系吧
似梦飞花 2016-03-14
  • 打赏
  • 举报
回复
每隔一小段时间向后端发送一次在线请求 超过这个时间没法送就当下线了 onbeforeonload试下能不能发请求
hunterlew 2016-03-14
  • 打赏
  • 举报
回复
@街头小贩 我也是用的监听器,但发现只能监听session销毁的事件,没有监听浏览器关闭的事件,从而用户直接关掉浏览器我就没法重置我的全局变量了。
  • 打赏
  • 举报
回复
引用 楼主 hunterlew 的回复:
如题,系统要求某页面在同一时间只能一个人使用。目前只能提供一个jsp链接让用户退出的时候点击去销毁,但大部分用户会直接关浏览器吧。有什么方法可以检测到用户退出页面呢(暂不考虑掉电、死机等问题了)?
你对互联网的知识太少了! 大部分用户,会直接从浏览器的地址栏上贴入新的网站地址、输入新的网站地址(例如www.taobao.com),或者从收藏夹里直接找出新的地址,而不是什么想当然的“直接关闭浏览器”。 你“暂不考虑”互联网常用操作,你做得就是徒劳的。
hunterlew 2016-03-13
  • 打赏
  • 举报
回复
@顾小林 二楼链接解决不了,我的背景和账户是没有关系的,不同账户在同一时间也只能是一个人操作硬件。
hunterlew 2016-03-13
  • 打赏
  • 举报
回复
是啊,难道就无解了吗...
顾小林 2016-03-11
  • 打赏
  • 举报
回复
http://blog.csdn.net/feiyu84/article/details/6844830 你想知道的是这个吗?
hunterlew 2016-03-11
  • 打赏
  • 举报
回复
顶起来,有人看到吗,有没有人解决过这个问题

87,984

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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