小鸟问个会员验证的问题!
我自已试着写会员验证的代码,刚开始用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中,本身它就有一条内容,所以它不管查询到与否,它是非空的。