大哥
这是不好控制的
有一个不是办法的办法
就是把session的生存时间尽量的设置的短一点
因为页面直接关闭的话session没有了但是服务器却不知道
这样就会限制一个人的登陆
它直接关闭页面会在一段时间内自己也无法登陆
所以你可以设置session时间短一点

解决方案 »

  1.   

    1、第二次登录前检查是否还在登录状态,如果已经登录了,则拒绝登录——很少这么做的,因为不方便;
    2、第二次登录时,将第一个会话强行注销——友好的方式是提示用户:你已经在另外一个位置登录了,当前会话被强行过期。注销会话的方法就多了,如果你用的是 jsp 自己提供的 Session,就把你 Session 里面保存的用于判断是否已经登录的变量置为 false,再保存提示信息到一个变量。当用户继续浏览的时候,其它网页判断该变量时就知道已经过期并提示用户了。如果是自己做的 Session 机制——比如我喜欢用数据库来实现,则删除该用户原先的Session记录,用户浏览其它网页时就知道已经被注销了,而新的登录的SessionKey显然与原先不同。最后,有朋友说用cookie等等,实际上和你用 jsp 的 session 一样的道理。如果浏览器禁用了 cookie,jsp 的 session 机制一样实效——因为asp/jsp的Session机制就是利用有效期仅仅为浏览器打开期间的Cookie来实现的(Cookie里面保存了来自服务器的SessionKey来区分不同的会话,保存了Session创建的时间和最新更新时间,虎虎,浏览器Session欺骗的原理哦)。