Войти с типом пользователя в веб-Java - PullRequest
1 голос
/ 16 июня 2019

Мне нужен для моего проекта колледжа логин с аутентификацией типа пользователя, он уже работает с электронной почтой и паролем, но я не знаю, как я могу отправить пользователя на просмотр в зависимости от типа его пользователя.

Iиспользовать базу данных оракула, которую я создал, вот так:

TypeUser(table one)
-idUser PK
-description

User(table two)
-correo PK
-pass
-TypeUser_IdUser FK

Я никогда не делал этого раньше, поэтому я не знаю, как запустить

//the java class 

public class Consultas extends Conexion{

    static Connection conn;


    //Email - Pass
    public boolean autenticacion(String correo, String pass) {
        OraclePreparedStatement pst = null;
        OracleResultSet rs = null;
        conn = Conexion.conexion();

        try {
            String consulta = "select * from usuario where correo = ? and pass = ?";
            pst = (OraclePreparedStatement) conn.prepareStatement(consulta);
            pst.setString(1, correo);
            pst.setString(2, pass);
            rs = (OracleResultSet) pst.executeQuery();

            if (rs.next()) {
            return true;

            }

        } catch (Exception e) {
            System.err.println("Error" + e);
        } finally {
            try {
                if (pst != null) {
                    pst.close();
                }
                if (rs != null) {
                    rs.close();
                }
            } catch (Exception e) {
                System.err.println("Error" + e);
            }
        }
        return false;
    }



}

    //this is the servlet

    String correo = request.getParameter("correo");
    String pass = request.getParameter("pass");
    String mensaje="";

    Consultas co = new Consultas();
    if (co.autenticacion(correo, pass)) {
        HttpSession objsesion = request.getSession(true);
        objsesion.setAttribute("correo", correo);

        if (co.autenticacion(correo, pass) || correo.equals ("efrensotex@gmail.com")) {
            response.sendRedirect("index.jsp");
        }else if(correo.equals("empleado.2l@gmail.com")){
            response.sendRedirect("indexEmpleado.jsp");
        }else if(correo.equals("prov@gmail.com")){
            response.sendRedirect("indexProve.jsp");
        }else{
        response.sendRedirect("indexCliente.jsp");
        }
    } else {

        mensaje = "Usuario desconocido";
        request.setAttribute("mensaje", mensaje);
        request.getRequestDispatcher("login.jsp").forward(request, response);

    }

вСервлет Я должен поставить админку по электронной почте, чтобы отправить пользователю его пользовательский вид.Любая помощь или учебник, я был бы очень благодарен

PD: я использую Netbeans и SqlDeveloper

Ответы [ 2 ]

0 голосов
/ 19 июня 2019

Я также столкнулся с этой ситуацией. Поэтому я использовал код, упомянутый ниже. Надеюсь, вы найдете несколько альтернативных способов улучшить свой код.

processLogin.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@page import="com.elibrary.DAO.UserDAO"%>
<%@page import="com.elibrary.beans.UserBean"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Verifying login</title>
</head>
<body>
<jsp:useBean id="user" class="com.elibrary.beans.UserBean"/>
<c:set property="email_id" target="${user}" value='${param.email_id}'/>
<c:set property="password" target="${user}" value='${param.password}'/>
<%
UserBean userbean=UserDAO.varifyLogin(user);
if(userbean!=null){
    if(userbean.getUser_type_id()==1){
        Cookie cookie=new Cookie("email_id",userbean.getEmail_id());
        cookie.setMaxAge(86400);
        session.setAttribute("admin",userbean);
        response.addCookie(cookie);
        response.sendRedirect("admin/adminhome.jsp");
    }else if(userbean.getUser_type_id()==2){
        Cookie cookie=new Cookie("email_id",userbean.getEmail_id());
        cookie.setMaxAge(86400);
        session.setAttribute("librarian",userbean);
        response.addCookie(cookie);
        response.sendRedirect("librarian/librarianhome.jsp");
    }else if(userbean.getUser_type_id()==3){
        Cookie cookie=new Cookie("email_id",userbean.getEmail_id());
        cookie.setMaxAge(86400);
        session.setAttribute("student",userbean);
        response.addCookie(cookie);
        response.sendRedirect("student/studenthome.jsp");
    }
}else{
    response.sendRedirect("login.jsp?invalid=1");
}
%>
</body>
</html>
0 голосов
/ 17 июня 2019

Поскольку вы используете сервлет,

Вы можете получить idUser из TypeUser вместе с correo и передать, выполнив запрос на соединение.Следовательно, вы получите тип пользователя. После проверки учетных данных, если они действительны, вы можете использовать регистр переключения для типа пользователя и перенаправить их в соответствии с их типами.

     if (co.autenticacion(correo, pass){
        int userType = request.getParameter("userType");
        Switch(usertype){
         case 1:
            redirect("1.jsp");
            break;      
        case 2:
            redirect("2.jsp");
            break;      
        }
     }

Надеюсь, это поможет вам.

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