Session有个事件监听器!!不过我不知道怎么用!!

解决方案 »

  1.   

    就算客户关闭了页面,服务器好像没有办法侦听,就算用sessionListener来侦听也没有什么作用!但如果session过期失效是可以用SessionListener来侦听的
      

  2.   

    我试过了session的几个监听器都没有什么反应。
      

  3.   

    关闭页面的时候,执行session.invalidate();
    然后监听
      

  4.   

    我是想做个这种东西就是一个网站,用户登陆的时候(没有注销之前)不允许这个用户再登陆,但是如果用户再客户端要是把页面都关闭了对于用户来说要是再想对这个网站进行什么操作的话,因为session已经断开了,所以还需要再次登陆才行,但是用户关闭网页这个动作在服务器端没有办法知道,这就构成了矛盾。(对了在登陆的时候写一个用户列表,注销的时候在移除,没有移除的用户,不允许再次登陆,用户关闭页面后在服务器端没有将信息给移除,这就是矛盾的所在。)我想解决这个问题,不知道各位高手有什么好的建议。
      

  5.   

    jsp关闭后,服务器里面的destory()就会打印出来。
      

  6.   

    你这个根本不是问题。你可以去看看用JSP统计在线人数的源代码。
      

  7.   

    jsp统计人数的源代码是登陆时在服务器上留下信息,然后注销的时候去掉,可是关闭浏览器对于用户来说时注销了(因为再次进入需要登陆),但是对于服务器不是,它不可能知道你关闭浏览器了,我看了很多资料现在终于知道了没有办法,除非在关闭时用body 的onunload属性想服务器发个消息。但是这种方法没有办法确定是否所有的浏览器都关闭了,要是每个关闭都发消息的话,在服务器端也没有办法判断,估计时没有什么好的解决方法了。
      

  8.   

    这个问题应该是没有什么直接的解决方法的。
    只能等待session失效,再判定。
    可以想些其他的方法,看看能不能解决。
      

  9.   

    关闭浏览器会触发body的unload事件,当然页面跳转也会触发。所以你要区分下是关闭浏览器还是跳转,。至于拔电源这种没人性的操作就无能为力了。