日期:2014-05-18  浏览次数:20599 次

小鸟问个会员验证的问题!
我自已试着写会员验证的代码,刚开始用BEAN出错,然后我把驱动写在页面里,结果还是有问题,不管输入的用户名和密码对不对他都跳到下个页面!!疯掉了!帮忙看看那里有问题
    String   driver   = "org.gjt.mm.mysql.Driver ";
        String   url= "jdbc:mysql://localhost:3306/news?characterEncoding=GB2312 ";
        String   user= "root ";
        String   password= "123456 ";
        Connection   con=null;
        ResultSet   rs=null;
          Class.forName(driver);
          con   =   DriverManager.getConnection(url,user,password);
          Statement   stmt=con.createStatement();
          String   sql= "select   *   from   admin   where   name= ' "+name+ " 'and   password= ' "+pass+ " ' ";  
          rs=stmt.executeQuery(sql);

 
    if   (rs!=null)
    {
              session.setAttribute( "name ",name);
              response.sendRedirect( "news.jsp ");
             
    }
    else
    {
    out.print( "你的用户名有误 ");
    }

------解决方案--------------------
你不能判断 rs 是否为 null,因为不管有没有结果 rs 都不会为空。你需要改成。

String username = null;
while(rs.next()){
  username = rs.getString( "name ");
}

if(username != null) {
  ...
}else{
  ...
}

------解决方案--------------------
if (rs!=null)
改成
if(rs.next())

在rs中,本身它就有一条内容,所以它不管查询到与否,它是非空的。