Как я могу разделить логин для администратора и пользователя с помощью сервлета - PullRequest
1 голос
/ 03 августа 2020

У меня есть столбец ролей со значением 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...