====== 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
==== insertar.jsp ====
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
Insert title here
Registro
===== 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);
}
}