使用JDBC和JSP进行登录身份验证:如何检查用户输入的用户名和密码是否存在于数据库中?

问题描述 投票:0回答:1

在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>");
}
java html jsp authentication jdbc
1个回答
0
投票

我假设您已经从表单中获得了密码和用户名,并且用户名和密码作为平面文本存储在数据库中。如果是这种情况,那么此示例代码将为您提供帮助:

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
}

由于将只有一个具有给定用户名的用户,因此,如果您查询具有特定用户名和密码的记录,那么如果存在这样的用户,它将得到结果。这可以说明登录成功。

© www.soinside.com 2019 - 2024. All rights reserved.