为什么无法调用jdbc.findUser()方法,我在main函数实验都可以调用

@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的。
所以你要确定到底是没执行,还是查询到的数据为空。