У меня есть столбец ролей со значением admin в моей базе данных. Я ввел одного пользователя с ролью администратора в базе данных и другого пользователя без роли администратора. Теперь я хочу убедиться, что когда пользователь с ролью администратора вводит данные для входа, они передаются на страницу администратора, а когда данные вводятся обычным пользователем, у которого нет роли администратора в базе данных, они передаются на страницу для обычных пользователей. Итак, это мой код на данный момент. Он отлично работает без ролей, но теперь я хочу вставить это.
<%
try {
Class.forName("com.mysql.jdbc.Driver"); //load driver
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/cs230projekat", "root", ""); //create connection
if (request.getParameter("btn_login") != null) //check login button click event not null
{
String dbemail, dbpassword;
String email, password, role;
email = request.getParameter("txt_email"); //txt_email
password = request.getParameter("txt_password"); //txt_password
role = request.getParameter("role");
PreparedStatement pstmt = null; //create statement
pstmt = con.prepareStatement("select * from user where email=? AND password=?"); //sql select query
pstmt.setString(1, email);
pstmt.setString(2, password);
ResultSet rs = pstmt.executeQuery(); //execute query and store in resultset object rs.
if (rs.next()) {
dbemail = rs.getString("email");
dbpassword = rs.getString("password");
if (email.equals(dbemail) && password.equals(dbpassword)) {
session.setAttribute("login", dbemail); //session name is login and store fetchable database email address
response.sendRedirect("welcome.jsp"); //after login success redirect to welcome.jsp page
}
} else {
request.setAttribute("errorMsg", "Invalid email or password!"); //invalid error message for email or password wrong
}
con.close(); //close connection
}
} catch (Exception e) {
out.println(e);
}
%>
Вот как я пытался добиться этого:
if (rs.next()) {
dbemail = rs.getString("email");
dbpassword = rs.getString("password");
role = rs.getString("role");
if (email.equals(dbemail) && password.equals(dbpassword) && role.equals(role)) {
session.setAttribute("login", dbemail); //session name is login and store fetchable database email address
response.sendRedirect("admin.jsp");//after login success redirect to welcome.jsp page
}
} else if (email.equals(dbemail) && password.equals(dbpassword)){
session.setAttribute("login", dbemail); //session name is login and store fetchable database email address
response.sendRedirect("welcome.jsp"); //after login success redirect to welcome.jsp page
}else{
request.setAttribute("errorMsg", "Invalid email or password!");
}
con.close(); //close connection
}
Программа выдает ошибку, когда я добавляю else if
: void cannot be converted to boolean