在下面的代码段中,始终会调用else
。即使成功输入了if
块,也永远不会输入while
。
while (rs.next()) {
username = rs.getString(2);
password = rs.getString(3);
}
if(rs.next())
{
response.sendRedirect("Welcome.jsp");
}
else {
response.sendRedirect("Fail.jsp");
}
这是如何引起的?如何解决?
答案 0 :(得分:1)
你可能想要的东西:
if(rs.next()) {
username = rs.getString(2);
password = rs.getString(3);
response.sendRedirect("Welcome.jsp");
} else {
response.sendRedirect("Fail.jsp");
}
答案 1 :(得分:0)
查看结果集next()
next
方法的文档。
当对
rs.next()
方法的调用返回false时,光标为 位于最后一排之后。
因此,当控件来自while循环时,游标已经到达最后一行之后的位置,因此boolean exists = false;
while(rs.next(){
exists = true;
//other logic
}
if(exists){
response.sendRedirect("Welcome.jsp");
}
永远不会返回true。我想建议一些改变:
在while循环中添加一个标志,设置为true,控制进入while循环,然后检查该标志,例如:
librabbitmq-dev
在代码中添加适当的here。