如题,系统要求某页面在同一时间只能一个人使用。目前只能提供一个jsp链接让用户退出的时候点击去销毁,但大部分用户会直接关浏览器吧。有什么方法可以检测到用户退出页面呢(暂不考虑掉电、死机等问题了)?
背景:因为系统页面是与实际硬件相连的,所以每一次只能让一个用户进来操作,否则就乱套了。

解决方案 »

  1.   

    http://blog.csdn.net/feiyu84/article/details/6844830 你想知道的是这个吗?
      

  2.   


    你对互联网的知识太少了!大部分用户,会直接从浏览器的地址栏上贴入新的网站地址、输入新的网站地址(例如www.taobao.com),或者从收藏夹里直接找出新的地址,而不是什么想当然的“直接关闭浏览器”。你“暂不考虑”互联网常用操作,你做得就是徒劳的。
      

  3.   

    servlet上有8个事件监听器,在请求,会话,上下文对象上触发.你需要的是监听浏览器的相关事件,跟java,扯不上关系吧
      

  4.   

    @街头小贩 我也是用的监听器,但发现只能监听session销毁的事件,没有监听浏览器关闭的事件,从而用户直接关掉浏览器我就没法重置我的全局变量了。
      

  5.   

    每隔一小段时间向后端发送一次在线请求 超过这个时间没法送就当下线了
    onbeforeonload试下能不能发请求
      

  6.   


    首先你要知道你要捕获的事件在哪发生,servlet的事件在服务器上servlet容器中发生,而你要捕获的是客户端浏览器
      

  7.   


    首先你要知道你要捕获的事件在哪发生,servlet的事件在服务器上servlet容器中发生,而你要捕获的是客户端浏览器所以说无解呀~
      

  8.   


    首先你要知道你要捕获的事件在哪发生,servlet的事件在服务器上servlet容器中发生,而你要捕获的是客户端浏览器所以说无解呀~没有无解的问题。可能是你现在力所不能及的吧。如果用户用的浏览器是你写的哪都不是事
      

  9.   

    应该没有吧。连session都是超时才销毁,如果有这种事件,session不会这么设计吧
      

  10.   

    websocket 长连接考虑一下吧
      

  11.   

    到今天我也碰到同样问题了····session的销毁跟失效根本是两回事啊,一脸懵逼,不过看到Spring框架里说是有个能自动装配session,随时可以使用的,不知道是不是我的环境问题没有成功,不过网上挺多人成功的
      

  12.   

    页面上启个websocket定时发心跳,或者初始化的时候开始轮询,一定时间没有接收到心跳或轮询请求则认为用户下线。