Knoppia

Wiki de Informática y otras historias

Herramientas de usuario

Herramientas del sitio


dad2:jsp

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
dad2:jsp [2024/02/21 11:25] thejuanvisudad2:jsp [2024/02/21 12:21] (actual) thejuanvisu
Línea 60: Línea 60:
 </code> </code>
  
-===== MVC y Paso de Atributos =====+===== Modelo Vista Controlador (MVCy Paso de Atributos =====
 Esta parte se centra en la capa de negocio. Esta parte se centra en la capa de negocio.
 ==== Control ==== ==== Control ====
Línea 72: Línea 72:
 Realiza toda la funcionalidad, se podría decir que es una clase padre de la que heredan todas las demás. Suele haber varios modelos dentro de una aplicación. Realiza toda la funcionalidad, se podría decir que es una clase padre de la que heredan todas las demás. Suele haber varios modelos dentro de una aplicación.
 {{drawio>dad2:ModeloPadre.png}} {{drawio>dad2:ModeloPadre.png}}
 +===== Implementación MVC =====
 +El proyecto seguirá la siguiente estructura en la que separaremos por un lado el servlet control y por otro lado las clases:
 +<WRAP>
 +{{:dad2:pasted:20240221-115509.png}}
 +</WRAP>
 +==== Servlet Control ====
  
 +<code java Control.java>
 +package clases;
  
 +import jakarta.servlet.ServletConfig;
 +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 acciones.Accion;
 +import acciones.InsertarUsuario;
 +
 +/**
 + * Servlet implementation class Control
 + */
 +public class Control extends HttpServlet {
 + private static final long serialVersionUID = 1L;
 + private Hashtable<String, Accion> acciones; //Tabla hash
 +
 + public static final String PARAM_ACTION_ID = "ID_ACCION";
 +       
 +    /**
 +     * @see HttpServlet#HttpServlet()
 +     */
 +    public Control() {
 +        super();
 +        // TODO Auto-generated constructor stub
 +    }
 +    
 + 
 + @Override
 + public void init(ServletConfig config) throws ServletException {
 + // TODO Auto-generated method stub
 +
 + super.init(config);
 + this.acciones = new Hashtable<String, Accion>();//Tabla de acciones
 + this.acciones.put("INSERTAR_USUARIO", new InsertarUsuario());//insertamos accion en tabla hash
 + }
 +
 +
 + /**
 + * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
 + */
 + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 + String jsp = "index.jps";
 + String paramIdAccion = request.getParameter(Control.PARAM_ACTION_ID);//recibimos como parametro el ID de accion
 + Accion accion = this.acciones.get(paramIdAccion);//Obtenemos la accion a realizar de la tabla hash
 + jsp = accion.ejecutar(request, response);//Nos devuelve la JSP a la que hay que ir para realizar la acción
 + request.getRequestDispatcher(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);
 + }
 +
 +}
 +
 +</code>
 +
 +==== Clase Accion ====
 +
 +<code java Accion.java>
 +package acciones;
 +
 +import jakarta.servlet.http.HttpServlet;
 +import jakarta.servlet.http.HttpServletRequest;
 +import jakarta.servlet.http.HttpServletResponse;
 +
 +public abstract class Accion {
 + //Esta es la clase Padre
 + public abstract String ejecutar(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException;
 +
 +}
 +
 +</code>
 +
 +==== Clase InsertarUsuario ====
 +<code java InsertarUsuario.java>
 +package acciones;
 +import java.io.IOException;
 +
 +import jakarta.servlet.ServletException;
 +import jakarta.servlet.http.HttpServletRequest;
 +import jakarta.servlet.http.HttpServletResponse;
 +
 +public class InsertarUsuario extends Accion {
 +
 + @Override
 + public String ejecutar(HttpServletRequest request, HttpServletResponse response)
 + throws ServletException, IOException {
 +
 + System.out.println("Toda la funcionalidad de insertar usuario");
 +
 + return "destino.jsp";
 + }
 +
 +}
 +
 +
 +</code>
 +
 +==== index.jsp ====
 +<code html index.jsp>
 +<%@page import="clases.Control"%>
 +<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
 +    pageEncoding="ISO-8859-1"%>
 +<!DOCTYPE html>
 +<html>
 +<head>
 +<meta charset="ISO-8859-1">
 +<title>Insert title here</title>
 +</head>
 +<body>
 +<a href="control?<%= Control.PARAM_ACTION_ID %>=INSERTAR_USUARIO">Insertar</a>
 +</body>
 +</html>
 +</code>
 +
 +==== destino.jsp ====
 +
 +<code html destino.jsp>
 +<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
 +    pageEncoding="ISO-8859-1"%>
 +<!DOCTYPE html>
 +<html>
 +<head>
 +<meta charset="ISO-8859-1">
 +<title>Insert title here</title>
 +</head>
 +<body>
 +Destinooo
 +</body>
 +</html>
 +</code>
dad2/jsp.1708514755.txt.gz · Última modificación: 2024/02/21 11:25 por thejuanvisu