要实现倒是可以,只是觉得似乎没必要..可以写一个servlet,让它对当前的session进行判断,每当有新的session进来的时候把旧的session kill掉就可以了,也就是说只保留最新进来的唯一一个session就对了.

解决方案 »

  1.   


    对session进行监控 后一个session把前一个session提出就行
      

  2.   

    session 只能有一个session有效就可以了
      

  3.   

    做一个session监听器放到session中,可以管理用户的在线状态。
    建议你不要让新登录的用户顶替前一个同身份的用户,这样的话很不合理。
    如果你正在做一件事,而其它人把你顶掉了,你愿意吗?对吧?
      

  4.   

    这个很容易啊,你在后台随便用一个Static变量存放上一个登陆用户的信息,每次页面有请求的时候就察看session里的用户和这个变量一不一样,不一样就就是另一个用户了。不过,你用后到先得的方式恐怕不好,你这样做的话,A进来把B赶出去,B看到自己被赶出去了马上又进来,把A赶出去,然后.....页面就在这两个用户间不断争夺了。我觉得应该是先到先得比较好,后来的要等前面释放了才能进入这个页面。或者你可以多加一个时间参数。如果上一个用户有10分钟或多少时间没有访问这个页面,那么下个用户可以抢走,否则上一个用户依然存在
      

  5.   

    赫赫,监听session就可以了~不过实现起来有些难度~要好好想想规则了~
      

  6.   

    各位大侠,如何来监听session,给个例子
      

  7.   

    public class User implements HttpSessionBindingListener{
      public User(){}
      public void valueBound(User user,HttpSessionBindingEvent event){
        System.out.println("login.");
      }
      public void valueUnbound(User user,HttpSessionBindingEvent event){
        System.out.println("logout");
      }
    }
    User u=new User();
    session.setAttribute("user",u);//输出:login
    session.removeAttribute("user");//输出:logout
      

  8.   

    简单的做法就是在登陆页面给用户一个id,放入session,然后在需要的地方去出来判断~~~比如说有两个用户,userA,userB在登陆页面
    <%
     userA="1";userB="0";
     session.setAyyribute("userA",userA);
     session.setAyyribute("userB",userB);
    %>在需要的地方
    <%
     String userA=session.getAyyribute("userA");
     String userB=session.getAyyribute("userB");
     if(userA.equals("1"))
     {
      //可以访问这个页面
      session.setAyyribute("userB","0");
     }
     else
     {
      //无权访问
     }
    if(userB.equals("1"))
     {
      //可以访问这个页面
      session.setAyyribute("userA","0"); }
     else
     {
      //无权访问
     }%>
      

  9.   

    用session listener。但是如何得到前一个session呢?这个问题很难实现的,因为java中不同的sesssion是无法互相访问的,即是说后一个session根本无法操作前一个session,那么当然也无法让它超时退出,所以不管用session的什么方法都无法实现
      

  10.   

    session是面向用户的,不行吧,可以查看下Application有没有可以用到的
      

  11.   

    用application.getAttribute()和application.setAttribute()
      

  12.   

    用Application不能实现,没有这么简单。如果实现将前一个用户踢出去,就会产生重复踢的问题,这样的程序就没有意义
      

  13.   

    数据库方法
    login:
    if(select count(*) from 在线用户表 where username= and pwd=)>1
      exit
    esle
     insert into 在线用户表错错错,这样不行,怎么判断用户关闭窗口session方法
    不可行application
    不可行总之,俺认为楼主的想法是不可行的
    如果有的话,那些大型网站早就作出来了
      

  14.   

    数据库方法
    login:
    if(select count(*) from 在线用户表 where username= and pwd=)>1
      exit
    esle
     insert into 在线用户表错错错,这样不行,怎么判断用户关闭窗口session方法
    不可行application
    不可行总之,俺认为楼主的想法是不可行的
    如果有的话,那些大型网站早就作出来了
      

  15.   

    数据库方法
    login:
    if(select count(*) from 在线用户表 where username= and pwd=)>1
      exit
    esle
     insert into 在线用户表错错错,这样不行,怎么判断用户关闭窗口session方法
    不可行application
    不可行总之,俺认为楼主的想法是不可行的
    如果有的话,那些大型网站早就作出来了