使用onbeforeunload,在关闭页面前location到退出页面,在退出页面中让session失效,该用户就退出了~~~~

解决方案 »

  1.   

    据我所知,B/S结构是无法真正实时探测浏览器推出的。
    如果用户老老实实点你的退出Button当然好,但一般人都是点
    浏览器窗口右边的小叉叉退出的。所以你无法捕捉到这样的事件。
    实际上,这既是B/S结构的优势,也是它的短处吧。
      

  2.   

    笨办法:  browser每秒发个信息回服务器,服务器连续三次收不到,就当它是退出。
        不好的就是服务器性能可能不会好
      

  3.   

    我想知道的是用户实时的退出,超时会有一个时间段,如果session的timeout时间设了30分钟,那就只有等30分钟后才知道用户退出
      

  4.   

    servlet 容器的web.xml
    里有个web.xml 文件可以配置filter
    这样每次用户有所动作,都可以记录下来(就是不管他点击了,页面的什么链接,都得通过filter)。这个不知道有没有帮助
      

  5.   

    http协议的连接是非持续性的,即客户端连接服务器并返回请求后,连接并不能保持。
    客户端关闭了,并不会自动通知服务器。
    这是他的优点也是缺点。看你怎么用。如果非要监控用户关闭浏览器事件,
    只能通过在窗口关闭前触发一个客户端的javascript或html事件,
    然后向服务器提交告知。比如:window.onClose(),window.onUnload().事件。
    但onUnload()事件在刷新窗口时也触发。
    所以,最好用onClose()事件,新建窗口,向服务器提交关闭信息,再自动关闭窗口。另外,Filter是在服务器端控制的,只有向服务器提交请求时才触发。
    他最多只能监听TimeOut事件,
    不能实时监听浏览器关闭事件。
      

  6.   

    to 云飞扬  window.close()事件可不可以捕获?如果能,怎么捕获?
      

  7.   

    这是javascript的技术,不是jsp的。
    你自己可以查找啊,具体怎样我忘了。
      

  8.   

    必须有嵌入容器才行,如用Applet可以实现。
    做一个客户端与服务器通讯程序,可实时交换数据。
      

  9.   

    楼主不要再费劲了。如果要求不高,用session timeout基本就可以满足要求了。
    有很多网站上的在线统计就是这样的做的。
    如果你的应用对实时性有较高的要求,当初就不应采用B/S结构,
      

  10.   

    根本办不到的
    HTTP协议的本质决定的
      

  11.   

    用js的Onclose来执行logout,或者用applet啦
      

  12.   

    一句话:不可能实现。简单的解决办法
    1:timeout
    2:添加心跳信息