<%
    String user = request.getParameter("userN");
String pass = request.getParameter("passW");
out.println(user+":::"+pass);
if(user != null && pass != null){          //密码和用户名不为空
    if(user.trim().toUpperCase().equals("HOTEN")&&pass.trim().toUpperCase().equals("HOTEN")){//合法用户
        Integer count;
        if(session.isNew()){
            count = new Integer(1);
            session.setAttribute("HOTEN", count);
        }
        else{
            if(session.getAttribute("HOTEN") == null){
                count = new Integer(1);
                session.setAttribute("HOTEN", count);
            }
        }
    }//合法用户结束
}
%>

解决方案 »

  1.   

    为什么不把用户写入session中???
      

  2.   

    为什么不把用户写入session中???就是为了避免覆盖!
      

  3.   

    其实session应该是给每个客户端都分配一个的 ,这个是真的啊.你不要误解了.
     你这个是写一个类,把帐号和密码都放进类里面了.所以你每一次登陆你都把前一个的数据都覆盖了.   就是这user.setUserId(userId);
      user.setPassword(password); 两句话.  解决办法就是你应该声明一个向量类. 每一次你登陆的时候,你都把整个类放进向量里面.  然后再把这个向量放进session里面.  
    不然就会象你上面所写的那样. 登陆一次就会把写如类里面的东西改变了. 
      

  4.   

    我明白了!
    因为javabean是存在与服务器端,多个用户是同时使用同一个类的,比如说user类。这样就会使得类中得数据发生覆盖得现象。那么是不是需要做同步处理呢?
    这似乎有点象数据库中的多用户访问。。
    不知道说的对不对,希望二位高手指教!!
      

  5.   

    不对,每次NEW一次的时候,是新分配内存地址空间,多个用户可以互相操作。不干扰的。
    你就将session.setAttribute("user", usercount);
    就可以了。usercount是变量。
      

  6.   

    to : jery_lee(U2-G2000) (
    我已经这样写了:
    User user = new User();
      

  7.   

    只要你的userID不是全局变量就可以了
      

  8.   

    to : doli(大夫) (
    我的userId当然不是全局变量了