Академический Документы
Профессиональный Документы
Культура Документы
Facultad de Ingeniería
y Ciencias Naturales
El desarrollo de aplicaciones requiere que se dedique tiempo para el manejo de usuarios y permisos
que estos tendrán con respecto a las operaciones que el sistema ejecutará. De manera que los
accesos se manejen en función de perfiles previamente definidos por el administrador de la
aplicación. Esto se traduce en la creación de tablas dentro de la base de datos que almacenaran
información sobre los usuarios, grupos de usuarios, opciones del menú y permisos que los usuarios
tendrán con respecto a las opciones.
Por otro lado el manejo de las operaciones con la base de datos (Lógica de Negocio), debe
estructurarse de manera que satisfaga las exigencias de los procesos.
Guía 7 1
FICN
Facultad de Ingeniería
y Ciencias Naturales
Preparando el proyecto.
Se creara dos carpetas en Web Pages para agregar los recursos proporcionados para el estilo de la
página.
Guía 7 2
FICN
Facultad de Ingeniería
y Ciencias Naturales
Las dos carpetas a crear serán css y otra llamada iconos en las cuales agregaremos los archivos
proporcionados en la carpeta correspondiente.
<title>Aerolinea Project</title>
<link rel="stylesheet" type="text/css" href="css/reset.css" />
<link rel="stylesheet" type="text/css" href="css/main.css"
media="screen" />
<style type="text/css">
.login {margin: 0 auto}
.login td{padding:5px 0px}
#header >h1{margin-left: 0px;padding-top: 110px;}
#content >h1{text-align: center}
</style>
Esto nos servirá para el estilo incluido a la página.
<div id="header">
<h1>Aerolínea DSi</h1>
</div>
<div id="content">
<hr/>
<h1>Inicio de Sesión</h1><br/>
<form name="main" action="login.jsp" method="POST">
<table class="login">
<tr><td>Usuario</td></tr>
<tr><td><input type="text" name="txtUsuario"
size="30px"/></td></tr>
<tr><td>Contraseña</td></tr>
<tr><td><input type="password" name="txtClave"
size="30px"/></td></tr>
<tr><td>
<div class="buttons">
<ul>
<li><input type="submit" value="Entrar"
name="btnEntrar"/></li>
</ul>
</div>
</td></tr>
</table>
</form>
<br/><br/><br/><br/>
Guía 7 3
FICN
Facultad de Ingeniería
y Ciencias Naturales
<hr/>
</div>
Para el manejo de errores devueltos ya sea por error de conexión o usuario y contraseña incorrecta
agregaremos el código jsp en la posición en la que queramos mostrar el mensaje de error para este
caso la incluiremos antes del formulario:
<%
String Mensaje[] = new String[3];
Mensaje[0] = "Ha introducido usuario o contraseña Incorrecta!!!<br>";
Mensaje[1] = "Ha ocurrido un error en la conexion, Intente de nuevo<br>";
String Error = request.getParameter("error");
if (Error!=null)
out.println("<center><font color='red'
size='2'>"+Mensaje[Integer.parseInt(Error)]+"</font><br></center><br>");
%>
Este código manejará el error enviado por el método post de la variable llamada error, si es 0 usuario
o contraseña incorrecta si es 1 error de conexión.
login.jsp
Ya creada la página de inicio crearemos la página que se encargará de verificar el usuario y contraseña
son correctos y se encuentra en la base de datos y se encargará de enlazar a la página
correspondiente en caso que se necesite manejar más de un tipo de usuario.
<%@page import="com.aerolinea.entidades.Entidad"%>
<%@page import="com.aerolinea.entidades.Usuarios"%>
<%@page import="com.aerolinea.procesos.Operaciones"%>
<%@page import="java.util.HashMap"%>
<%@page import="com.aerolinea.procesos.ConexionPool"%>
<%@page import="com.aerolinea.procesos.Conexion"%>
<%@page contentType="text/html" pageEncoding="UTF-8" session="true"%>
<%
String usuario = request.getParameter("txtUsuario");
String clave = request.getParameter("txtClave");
if (usuario==null)
usuario = "";
if (clave==null)
clave = "";
Conexion conn = new ConexionPool();
Operaciones.setConexion(conn);
if (conn == null){
response.sendRedirect("index.jsp?error=1");
}
else
Guía 7 4
FICN
Facultad de Ingeniería
y Ciencias Naturales
{
HttpSession sesion = request.getSession();
HashMap<String, String> hpUsuario = new HashMap();
hpUsuario = Operaciones.getRegistro(new Usuarios(), usuario);
if (hpUsuario.get("idusuario")!=null){
out.println(hpUsuario.get("clave"));
out.println(Entidad.getHash(clave));
if (hpUsuario.get("clave").equals(Entidad.getHash(clave))){
sesion.setAttribute("Usuario",hpUsuario.get("idusuario"));
sesion.setAttribute("Nombre",hpUsuario.get("nombres")+" "+
hpUsuario.get("apellidos"));
sesion.setAttribute("Rol",hpUsuario.get("idrol"));
response.sendRedirect("principal.jsp");
}else{
response.sendRedirect("index.jsp?error=0");
}
}
else
{
response.sendRedirect("index.jsp?error=0");
}
}
%>
Página principal
La página principal estará diseñada, para reutilizar, por una página llamada _top.jsp y _down.jsp que
tendrán el código de Encabezado y menú, y el pie de página respectivamente. Y un archivo llamado
principal.jsp que se encargará de incluir los dos archivos.
Código _top.jsp
Guía 7 5
FICN
Facultad de Ingeniería
y Ciencias Naturales
Código _down.jsp
</div>
<div id="footer">
<hr/>
<br/>
<p>
<a href="">Home</a> |
<a href="">Usuarios</a> |
<a href="">Aeropuertos</a> |
<a href="">Aviones</a> |
<a href="">Paises</a> |
<a href="">Roles</a> |
<a href="">Vuelos</a>
</p>
<br/>
<p>© Copyright 2014 | Design by: | Developed by: </p>
</div>
</body>
</html>
Código principal.jsp
logout.jsp
Esta página se encargará de cerrar la sesión cuando el usuario así lo desea.
Una vez creados los elementos anteriores verificar el funcionamiento, para ello recordad el código de
la guía anterior en la que se encontraba el uso de las clases que se crearon.
“Para comenzar a utilizar las clases creadas se debe incluir a la página los paquetes que contienen las
clases generadas.”
<%@page import="com.aerolinea.procesos.*"%>
<%@page import="com.aerolinea.entidades.*"%>
<%
Conexion cn = new ConexionPool();
cn.conectar();
if (cn.getConexion()==null)
out.println("not Ok");
Al ejecutar esta página se
else
out.println("Ok<br><br>"); crea un usuario llamado
usuario1
Operaciones.setConexion(conexion);
int r = Operaciones.insertar(u);
out.println(r);
int re = Operaciones.actualizar(p, "504");
out.println(re);
%>
Guía 7 7
FICN
Facultad de Ingeniería
y Ciencias Naturales
Si se desea crear un usuario y contraseña diferente modificar esos datos y volver a ejecutar la página
para agregarlos.
1. Crear el formulario para el registro del usuario sólo permitirá registrar usuarios con rol
1 (usuario).
2. Crear una segunda página _top(_top2) la cual deberá tener el menú para los usuarios
(solamente Aeropuertos, Vuelos, Países) y validar la página principal que muestre el
menú correspondiente para el tipo de rol del usuario agregado.
3. Validar la página principal para que al cerrar la sesión o al no estar logeado no permita
mostrarla así mismo al querer ir hacia atrás no muestre la página, sino la de validación.
Guía 7 8