在JSP下,成功完成JDBC连接之后,并且ResultSet显示一些值。
如何检查用户在文本字段(使用HTML表单)中输入的登录值(用户名和密码)是否正确并存在于数据库中?
编辑:无论是否输入凭据,它都会显示错误的用户名和密码:
if (rs.next()) {
out.printf("Welcome, %s! You've successfully logged in!\n", username);
} else {
out.print("Incorrect username or password!");
}
if (username == "" || password == "") {
out.print("<body>Username or password cannot be empty!</body>");
}
我假设您已经从表单中获得了密码和用户名,并且用户名和密码作为平面文本存储在数据库中。如果是这种情况,那么此示例代码将为您提供帮助:
Connection con = DriverManager.getConnection("url","username","password");
String sql = "select * from MyTable where username=? and password=?";
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1, "yourUsername");
ps.setString(2, "yourPassword");
ResultSet rs = ps.executeQuery();
if(rs.next()) {
System.out.println("login successful");
//code to redirect to login page
}
由于将只有一个具有给定用户名的用户,因此,如果您查询具有特定用户名和密码的记录,那么如果存在这样的用户,它将得到结果。这可以说明登录成功。