@WebServlet(name = "loginServlet",urlPatterns="/loginServlet")
public class loginServlet extends HttpServlet {
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
String name = req.getParameter("userName");
String password = req.getParameter("password");
boolean a=false;
JDBC jdbc=new JDBC();
try {
a=jdbc.findUser(name,password);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
if(a){
resp.sendRedirect("/welcome1.html");
}
else {
resp.sendRedirect("/welcome2.html");
}
}
}
JDBC类
public class JDBC {
public boolean findUser(String username ,String password) throws ClassNotFoundException, SQLException {
boolean flag=false;
Class.forName("com.mysql.cj.jdbc.Driver");
String url="jdbc:mysql://localhost:3306/text001?serverTimezone=GMT%2B8";
Connection connection= DriverManager.getConnection(url,"root","123");
String sql = "select * from user where userName= ? and password= ? ";
PreparedStatement preparedStatement=connection.prepareStatement(sql);
preparedStatement.setString(1,username);
preparedStatement.setString(2,password);
ResultSet resultSet=preparedStatement.executeQuery();
User user=new User();
if(resultSet.next()){
flag=true;
}
resultSet.close();
preparedStatement.close();
connection.close();
return flag;
}
}
是报错,还是结果预想的不一样?
你看看是不是protected的问题
按照你 findUser
的逻辑,如果sql查询结果是空的,flag也是返回false
的。
所以你要确定到底是没执行,还是查询到的数据为空。