====== Ejercicio Login Tomcat ====== Nos basaremos en el siguiente diagrama para la implementación de la funcionalidad: {{:dad2:pasted:20240220-104411.png}} ===== Implementación Web ===== Implementamos el Front End de la aplicación en archivos .jsp: {{:dad2:pasted:20240220-105545.png}} ==== index.jsp ==== <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> Pantalla de Login

Login

Nombre:
Clave:
Formulario de registro <% String msg = (String) request.getAttribute("MSG"); if (msg != null){ out.println(msg); } %>
==== insertar.jsp ==== <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> Insert title here

Registro

Nombre:
Clave:
Formulario de registro <% Hashtable usuarios = (Hashtable) request.getServletContext().getAttribute("TABLAUSUARIOS"); if (usuarios != null){ for(Usuario usuario : usuarios.values()){ out.println("
" + usuario.getUsername()); } } %>
===== Implementación Java ===== ==== Usuario.java ==== package funciones; public class Usuario { private String username; private String pass; public Usuario(String username, String pass) { super(); this.username = username; this.pass = pass; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPass() { return pass; } public void setPass(String pass) { this.pass = pass; } } ===== Implementación Servlets ===== ==== login.java ==== package funciones; import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.Hashtable; /** * Servlet implementation class Login */ 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 { Hashtable usuarios = (Hashtable) request.getServletContext().getAttribute("TABLAUSUARIOS"); if(usuarios == null || usuarios.get(request.getParameter("paramUsername"))== null || !(usuarios.get(request.getParameter("paramUsername"))).getPass().equals(request.getParameter("paramPass"))) { request.setAttribute("MSG", "Login incorrecto"); request.getRequestDispatcher("index.jsp").forward(request, response); }else { request.getRequestDispatcher("insertar.jsp").forward(request, response); } } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); } } ==== InsertarUsuario.java ==== package funciones; import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.Hashtable; import jakarta.servlet.ServletConfig; /** * Servlet implementation class InsertarUsuario */ public class InsertarUsuario extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public InsertarUsuario() { super(); // TODO Auto-generated constructor stub } @Override public void init(ServletConfig config) throws ServletException { super.init(config); Hashtable usuarios = new Hashtable(); usuarios.put("admin", new Usuario("admin","admin")); config.getServletContext().setAttribute("TABLAUSUARIOS",usuarios); } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Hashtable usuarios = (Hashtable) request.getServletContext().getAttribute("TABLAUSUARIOS"); if(usuarios == null) { usuarios = new Hashtable(); request.getServletContext().setAttribute("TABLAUSUARIOS",usuarios); } Usuario usuario = new Usuario(request.getParameter("paramUsername"), request.getParameter("paramPass")); usuarios.put(usuario.getUsername(), usuario); System.out.println("Usuarios en el sistema: " + usuarios.size()); request.getRequestDispatcher("insertar.jsp").forward(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); } }