0% encontró este documento útil (0 votos)
31 vistas5 páginas

3 EjemplodeJSPyServlets

Ejemplos JSP y Servlets

Cargado por

Cthulhu R'lyeh
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
31 vistas5 páginas

3 EjemplodeJSPyServlets

Ejemplos JSP y Servlets

Cargado por

Cthulhu R'lyeh
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

 

Ejemplo guiado de JSP y Servlets


 

Creando el proyecto
 
En el siguiente ejemplo vamos a ver un ejemplo de login de usuarios a partir de una página 
web dinámica. La página dinámica que crearemos será index.jsp mientras que el Servlet 
será LoginServlet. 
 
Primero creamos el proyecto web para nuestro proyecto en Eclipse: File ­ New ­ Dynamic 
Web Project y le pondremos un nombre: EjemploJSPServlet. 
 
Ahora vamos a ver la página web dinámica. En la carpeta WebContent dentro de nuestro 
proyecto web, botón derecho ­ File ­ New ­ JSP File y le pondremos de nombre index.jsp 
 

 
 
En esta página vamos a poner un formulario con una tabla que tenga para ingresar el 
usuario, la contraseña y un botón para hacer login. 
También necesitaremos mostrar el nombre del usuario logueado, luego de hacer el login; y 
un mensaje de error en caso de poner datos incorrectos. 
Nuestro index.jsp se verá así: 
 
 
 
 
 
<%@ page language="java" contentType="text/html; charset=ISO­8859­1" 
    pageEncoding="ISO­8859­1"%> 
<!DOCTYPE html PUBLIC "­//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http­equiv="Content­Type" content="text/html; charset=ISO­8859­1"> 
<title>Login</title> 
</head> 
<body> 
    <b><a style="color: green">${sessionScope.user}</a></b> 
    <form id="login" action="LoginServlet" method="post"> 
   <table> 
   <tr> 
   <td>Usuario</td> 
   <td><input id="username" name="username" title="Email" 
   type="text" value="" size="40" /></td> 
   </tr> 
   <tr> 
   <td>Contraseña</td> 
   <td><input id="password" name="password" title="Password" 
   type="password" value="" size="25" /> <input id="submit" 
   name="submit" type="submit" value="Login"></td> 
   </tr> 
   </table> 
    </form> 
    <br> 
    <b><a style="color: red">${param.mensaje}</a></b> 
</body> 
</html> 
 
 
Luego creamos el servlet con la validación del login. Solo validaremos que el usuario y 
contraseña no sean vacíos. 
En el doPost vamos a fijarnos primero si el usuario ya estaba logueado.  
Si se ingresa usuario y contraseña, guardaremos el nombre del usuario en la sesión bajo el 
nombre de atributo “user”. Por tanto si el user de la sesión tiene contenido, significa que el 
usuario ya se había logueado y no debo hacer nada.  
En caso de que no exista, debo revisar el contenido de los parámetros del request 
username y password y valido que no sean vacíos, en ese caso guardo el nombre de 
usuario en la sesión, sino mando un mensaje de error a través del parámetro “mensaje” a la 
página de index.jsp. 
 
Dentro del src de nuestro proyecto creamos el servlet LoginServlet. Botón derecho ­ File ­ 
New ­ Servlet. 
 

 
 
Nuestros métodos del LoginServlet se verán así: 
 
protected void doPost(HttpServletRequest request, HttpServletResponse response) 
throws ServletException, IOException { 
   // Logueo del usuario 
   if(request.getSession().getAttribute("user")!=null){ 
   RequestDispatcher requestDispatcher = 
request.getRequestDispatcher("index.jsp"); 
   requestDispatcher.forward(request, response); 
   } else { 
   login(request, response); 
   } 
    } 
   
    private void login (HttpServletRequest request, HttpServletResponse response) throws 
ServletException, IOException { 
   //Si vienen datos de usuario y password 
   if(request.getParameter("username")!=null && 
request.getParameter("password")!=null){ 
   //Ahora debo revisar que el usuario y password sean validos 
   
if(autenticar(request.getParameter("username"),request.getParameter("password"))){ 
   HttpSession session = request.getSession(); 
   //Seteo en la sesión el nombre de usuario logueado 
   session.setAttribute("user", request.getParameter("username")); 
 
   RequestDispatcher requestDispatcher = 
request.getRequestDispatcher("index.jsp"); 
   requestDispatcher.forward(request, response); 
   } else { 
   RequestDispatcher requestDispatcher = 
request.getRequestDispatcher("index.jsp?mensaje=Usuario y/o " + 
   "contraseña incorrectos"); 
   requestDispatcher.forward(request, response); 
   } 
   } else { 
   RequestDispatcher requestDispatcher = 
request.getRequestDispatcher("index.jsp?mensaje=Debe ingresar usuario y contraseña"); 
   requestDispatcher.forward(request, response); 
   } 
    } 
 
    //Este método llamaría a mi método de servicios donde vaya a consultar el usuario y 
password 
    //contra la base de datos. En este caso validaremos que se ingrese algún contenido 
    private boolean autenticar(String usuario, String password){ 
   return !usuario.isEmpty()&&!password.isEmpty(); 
    } 
 
 
Ahora estamos prontos para correr el proyecto! Botón derecho sobre el proyecto ­ Run us ­ 
Run on server y seleccionamos el WildFly. 
 

 
 
 
Si ingreso en Usuario: Usuario: 

 
Si trato de hacer login nuevamente no voy a poder ya que mi usuario está logueado. Para 
poder iniciar la sesión nuevamente debo esperar a que expire la sesión o republicar la 
aplicación en el WildFly. 
La solución es hacer un botón de logout donde pueda quitar a mi usuario de la sesión y 
volver a comenzar nuevamente. 
 

También podría gustarte