Структура проекта
База данных
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
Su usuario o clave son incorrectos
Login
Страница закрыть
<%--
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”