public class CheckLogin {
    public String checkLogin(String username,String userPassword){
        BaseConn conn=null;     //已定义好数据库连接
        String index="";
        try{
            conn=new BaseConn();
            String sql="select * from userInfo where nickname=?";
            PreparedStatement ps=conn.preparedStatement(sql);
            ps.setString(1, username);
            
            ResultSet rs=conn.executeQuery();
            if(rs.next()){
                if(rs.getString("userPassword").equals(userPassword)){
                    SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"    );
                    String time=sdf.format(new java.util.Date());//登录时间
                    sql="update userInfo set lastLoginTime=? where nickname=?";
                    ps=conn.preparedStatement(sql);
                    ps.setString(1, time);
                    ps.setString(2, username);
                    conn.executeUpdate();
                    
                    return index="succes";
                }
                else{
                    return index="wrongpassword";
                }
            }
            else{
                return index="no";
            }
        }
        catch(Exception e){
            e.printStackTrace();
            return index;
        }
        finally{
            conn.close();
        }
    }<jsp:useBean id="check" class="mytalk.CheckLogin"/>
  <body>
  <%
   request.setCharacterEncoding("gb2312");
   String nickname=request.getParameter("nickname");  <!--用户的输入名-->
   String userPassword=request.getParameter("userPassword");<!--密码-->
   String loginMsg=check.checkLogin(nickname,userPassword);
   if(loginMsg.equals("success"))
       {
           session.setAttribute("user",nickname);
           
           session.setAttribute("login","success");
           
           response.sendRedirect("chatRoomList.jsp");
   }
   else if(loginMsg.equals("wrongpassword")){
           out.println("你输入的用户名或密码错误,请核实后重新输入");
           if(session.getAttribute("login")!=null)
               session.removeAttribute("login");
       }
       else if(loginMsg.equals("no")){
           check.saveToDataBase(nickname,userPassword);
           session.setAttribute("user",nickname);
           session.setAttribute("login","success");
           response.sendRedirect("chatRoomList.jsp");
    }
    else{
        out.println("程序出错!");
    
    }
   %>
  
    
  
  </body>
为什么运行该jsp文件的时候,未执行if{}else if{}中的代码,只输出了"程序出错!"

解决方案 »

  1.   

    你调试下看你的值 
    String nickname=request.getParameter("nickname");  <!--用户的输入名-->
    String userPassword=request.getParameter("userPassword");<!--密码-->是否正确获取到了
      

  2.   

    嗯,我试了一下,nickname和userPassword的值都传递过来了,就是中间的那些判断条件代码没有执行
      

  3.   

    貌似被trychach了
      e.printStackTrace();
    这个有没有打印出什么啊
      

  4.   

    打印下loginMsg
    顺便在方法里也都加上打印 看看进去了没有
      

  5.   

    输出一下loginMsg 这个就好啦。看看传的参数对不对?貌似我发现问题了,你的bean里
    return index="succes";跟JSP页面对比的值都不一样
    if(loginMsg.equals("success"))分拿来吧!嘻嘻
      

  6.   

    index为no 或者 为空单步跟一下,有可能是数据库没有查到数据,也有可能是try里面出错被catch了。前者导致index为no,后者导致index为空
      

  7.   

    怎么打印出loginMsg的值是"Connection false!",这怎么回事儿?
      

  8.   

    loginMsg的值是"Connection false!”????
      

  9.   


    注意看一下6L,还有return 直接写成 “return success”别赋值了,本人觉得没啥用!至于为何是 Connection false 真不知道!