Структура проекта
База данных
create database login; use login; create table usuario( idUsuario int primary key, nombreUsuario varchar(50), clave varchar(50), tipoUsuario varchar(50)/* Administrador || Cliente*/ ); insert into usuario values(1,'admin','123','Administrador'); insert into usuario values(2,'cliente','321','Cliente');
Класс Подключения
package com.conexion; import java.sql.*; /** * Nombre de Clase: Conexion. * Fecha: 29-09-2017. * Version: 1.0. * Copyright: ITCA-FEPADE. * @author Victor Alvarado */ public class Conexion { private Connection con; public Connection getCon() { return con; } public void setCon(Connection con) { this.con = con; } public void conectar() throws Exception { try { Class.forName("com.mysql.jdbc.Driver"); con=DriverManager.getConnection(); } catch (ClassNotFoundException | SQLException e) { throw e; } } public void desconectar() throws Exception { try { if(con!=null) { if(con.isClosed()==false) { con.isClosed(); } } } catch (SQLException e) { throw e; } } }
Класс Пользователя
package com.modelo; /** * Nombre de Clase: Usuario. * Fecha: 29-09-2017. * Version: 1.0. * Copyright: ITCA-FEPADE. * @author Victor Alvarado */ public class Usuario { private int idUsuario; private String nombreUsuario; private String clave; private String tipoUsuario; public Usuario() { } public Usuario(int idUsuario, String nombreUsuario, String clave, String tipoUsuario) { this.idUsuario = idUsuario; this.nombreUsuario = nombreUsuario; this.clave = clave; this.tipoUsuario = tipoUsuario; } public int getIdUsuario() { return idUsuario; } public void setIdUsuario(int idUsuario) { this.idUsuario = idUsuario; } public String getNombreUsuario() { return nombreUsuario; } public void setNombreUsuario(String nombreUsuario) { this.nombreUsuario = nombreUsuario; } public String getClave() { return clave; } public void setClave(String clave) { this.clave = clave; } public String getTipoUsuario() { return tipoUsuario; } public void setTipoUsuario(String tipoUsuario) { this.tipoUsuario = tipoUsuario; } }
Класс Accessuser
package com.modelo; import com.conexion.Conexion; import java.sql.PreparedStatement; import java.sql.ResultSet; /** * Nombre de Clase: AccederUsuario. * Fecha: 29-09-2017. * Version: 1.0. * Copyright: ITCA-FEPADE. * @author Victor Alvarado */ public class AccederUsuario extends Conexion { public String login(Usuario usu)throws Exception { String estado = ""; ResultSet rs; try { this.conectar(); String sql = "select tipoUsuario from usuario where nombreUsuario=? and clave=?"; PreparedStatement ps =this.getCon().prepareStatement(sql); ps.setString(1, usu.getNombreUsuario()); ps.setString(2, usu.getClave()); rs= ps.executeQuery(); if (rs.next()) { estado = "true"; } usu.setTipoUsuario(rs.getString("tipoUsuario")); } catch (Exception e) { throw e; } return estado; } }
Page index
<%-- Document : index Created on : 09-29-2017, 04:49:38 PM Author : VA --%> <%@page contentType="text/html" pageEncoding="UTF-8"%>.::Login::.
Страница vistaAdmin
<%-- Document : vistaAdmin Created on : 09-29-2017, 04:53:37 PM Author : VA --%> <%@page contentType="text/html" pageEncoding="UTF-8"%> <%@page session="true" %>Admin <% String user = ""; HttpSession objSesion = request.getSession(); String usuario; if (objSesion.getAttribute("usuario") != null && objSesion.getAttribute("nivel") == "Administrador") { usuario = objSesion.getAttribute("usuario").toString(); user = ""; } else if (objSesion.getAttribute("usuario") != null && objSesion.getAttribute("nivel") == "Cliente") { out.print(""); } else { out.print(""); } %>Vista Administrador
Bienvenido <% out.print(user);%>
El administrador tiene acceso total a todo
Vista Cliente Cerrar sesion
Страница vistaCiente
<%-- Document : vistaCliente Created on : 09-29-2017, 04:53:50 PM Author : VA --%> <%@page contentType="text/html" pageEncoding="UTF-8"%> <%@page session="true" %>Cliente <% String user = ""; String admin = ""; HttpSession objSesion = request.getSession(); String usuario; if (objSesion.getAttribute("usuario") != null && objSesion.getAttribute("nivel") == "Cliente") { usuario = objSesion.getAttribute("usuario").toString(); user = ""; } else if (objSesion.getAttribute("usuario") != null && objSesion.getAttribute("nivel") == "Administrador") { usuario = objSesion.getAttribute("usuario").toString(); user = ""; admin = ""; } else { out.print(""); } %>Vista Cliente
<% out.print(admin); %>Bienvenido <% out.print(user);%>
Cerrar sesion
Страница ошибка
<%-- Document : error Created on : 09-29-2017, 05:34:57 PM Author : VA --%> <%@page contentType="text/html" pageEncoding="UTF-8"%>Error
Login
Su usuario o clave son incorrectos
Страница закрыть
<%-- Document : cerrarSesion Created on : 09-29-2017, 04:53:15 PM Author : VA --%> <%@page contentType="text/html" pageEncoding="UTF-8"%> <%@page session="true" %> <% HttpSession objSesion = request.getSession(); objSesion.invalidate(); out.print(""); %>
Логин для доступа к сервлету класса
package com.controlador; import com.modelo.AccederUsuario; import com.modelo.Usuario; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; /** * Nombre de Clase: AccesoLogin. Fecha: 29-09-2017. Version: 1.0. Copyright: * ITCA-FEPADE. * * @author Victor Alvarado */ public class AccesoLogin extends HttpServlet { /** * Processes requests for both HTTP GET and POST * methods. * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); if (request.getParameter("btnAcceder") != null) { Usuario usu = new Usuario(); String user = request.getParameter("nombreUsuario"); String clave = request.getParameter("clave"); usu.setNombreUsuario(user); usu.setClave(clave); AccederUsuario login = new AccederUsuario(); String estado; try { estado = login.login(usu); if ("true".equals(estado)) { HttpSession objSesion = request.getSession(); if (usu.getTipoUsuario().equals("Administrador")) { objSesion.setAttribute("usuario", user); objSesion.setAttribute("nivel", "Administrador"); response.sendRedirect("jsp/vistaAdmin.jsp"); } else if (usu.getTipoUsuario().equals("Cliente")) { objSesion.setAttribute("usuario", user); objSesion.setAttribute("nivel", "Cliente"); response.sendRedirect("jsp/vistaCliente.jsp"); } } } catch (Exception ex) { response.sendRedirect("./jsp/error.jsp"); } } } ///** * Handles the HTTP GET method. * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } /** * Handles the HTTP POST method. * * @param request servlet request * @param response servlet response * @throws ServletException if a servlet-specific error occurs * @throws IOException if an I/O error occurs */ @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } /** * Returns a short description of the servlet. * * @return a String containing servlet description */ @Override public String getServletInfo() { return "Short description"; }// }
Вход в систему Vista
Ошибка Vista
Представление Администратора
Администратор имеет доступ общий
Вид Клиента
Скачать Файлы
Оригинал: “https://dev.to/victoralvarado/login-en-jsp-y-mysql-haciendo-uso-de-mvc-con-tipos-de-usuario-1o06”