想做一个唯一用户登录的判断,我是通过session做的,我现在如果点注销可以清除session,然后就可以再次登录,但是现在如果是点击IE的关闭按钮,或者是其他非正常的关闭了页面,要怎样清除session?

解决方案 »

  1.   

    session是保存在服务器端的,如果客户端偷偷关掉浏览器或者极端情况下比如掉电等情况,服务器端是无法捕获的,解决你这个需求的办法有几种:
    1.如果不考虑客户端断网或掉电的情况,只考虑点了IE的关闭按钮,你捕捉客户端的onclose时间,给服务器发ajax数据,通知要对客户端session做invalid操作。
    2.如果考虑客户端断电或断网的情况,你在服务器端写 session listener,当客户端登陆的时候判断之前的session是否还存在,存在的话不允许登录,要不就让客户端等到session过期以后再来。
      

  2.   

    补充,在服务器端web.xml中配置session超时时间配置的短点,然后让你的客户端程序定期自动请求一下某个页面来维持session,一旦客户端非法退出或关闭时你的session可以很快的过期。
      

  3.   


    你可以试一下这个onunload事件是在哪里执行的,如果关闭标签的时候不执行那就应该没问题。