Vamos a hacer un proyecto nuevo. En el construiremos un Servlet cuya url será la raíz.
En el doGet vamos a comprobar si tenemos como parámetros un nombre y un password. Si no los tenemos, cargamos la página login.jsp
Si los tenemos crearemos una función validar a la que le pasamos el nombre y la contraseña y nos devuelve true si es un usuario válido y false en caso contrario.
En esa función tenemos una lista de usuarios que es la siguiente:
‘eva’,’1234′
‘ana’,’5678′
‘juan’,’0123′
Os dejo a vuestro libre albedrío (si es que tal cosa existe) la manera de almacenar esta información.
Si el usuario y la pass que nos han pasado está en la lsita devolvemos true y en caso contrario devolvemos false
Si en el doGet nos han pasado un nombre y una contraseña llamamos a la función validar. Si nos devuelve false volvemos a cargar la página login.jsp. Si nos devuelve true cargamos una página ‘panel.jsp’ que, de momento, tenga unas palabras de bienvenida y nada más.
<form method="post"> <div class="form-group"> <label for="nombre">Nombre:</label> <input type="text" class="form-control" placeholder="Introduce nombre" name="nombre" id="nombre"> </div> <div class="form-group"> <label for="pwd">Password:</label> <input type="password" class="form-control" placeholder="Introduce contraseña" name="password"> </div> <button type="submit" class="btn btn-primary">Enviar</button> </form>
package com.trifulcas.controlador; import java.io.IOException; import java.util.HashMap; import java.util.Map; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class Login */ @WebServlet("/") public class Login extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public Login() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse * response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("GET"); String nombre = request.getParameter("nombre"); String password = request.getParameter("password"); if (nombre == null || password == null || !validar(nombre, password)) { RequestDispatcher dispatcher = request.getRequestDispatcher("login.jsp"); dispatcher.forward(request, response); } else { // Ponemos la variable de sesión nombre // para ello recuperamos la sesión con el método getSession de request HttpSession sesion=request.getSession(); sesion.setAttribute("nombre", nombre); RequestDispatcher dispatcher = request.getRequestDispatcher("panel.jsp"); dispatcher.forward(request, response); } } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse * response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("POST"); doGet(request, response); } boolean validar(String nombre, String password) { Map<String, String> usuarios = new HashMap<String, String>(); usuarios.put("eva", "1234"); usuarios.put("ana", "5678"); usuarios.put("juan", "0123"); return usuarios.containsKey(nombre) && usuarios.get(nombre).equals(password); } }