Аутентификация при входе в систему с использованием JDB C и JSP: Как проверить, что имя пользователя и пароль, введенные пользователем, существуют в базе данных? - PullRequest
0 голосов
/ 23 февраля 2020

Под JSP, после JDB C соединение успешно установлено, и 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>");
}

1 Ответ

0 голосов
/ 23 февраля 2020

Я предполагаю, что вы уже получили пароль и имя пользователя из формы, а имя пользователя и пароль хранятся в базе данных в виде плоского текста. Если это так, то этот пример кода поможет вам:

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
}

Поскольку будет только пользователь с данным именем пользователя, то если вы запросите запись с указанными c именем пользователя и паролем это будет иметь результат, если такой пользователь существует. Это можно отнести к успешному входу в систему.

...