MVC en JSP
MVC en JSP
En JSP existe una forma muy practica de programar usando el patrón MVC
(modelo-vista-controlador), donde se separan aun mas las capas, no es la
intención explicar el patrón MVC, sino explicar su aplicación en JSP.
Programando Soluciones
Las clases que interviene las representamos en el siguiente diagrama
- Bean Departamento
- Bean Empleado
- Model utiliza a Empleado
- Model utiliza a Departamento
- WebModel extiende de Model
- Action utiliza a Model
- AgregarEmpleado es una Action
- AgregarDepartamento es una Action
- Controller utiliza a Action (o cualquier clase
que extiende de ella)
Programando Soluciones
La manera en que inicia la aplicación
Programando Soluciones
La manera de interactuar de la aplicación es
1. Al ocurrir un evento, este
(dependiendo, de los parámetros
de mapeo) será direccionado al
pagina.jsp Controller.
2. El Controller cargará la Action
• Muestra información . correspondiente seteará y
• Llamado a servlets. ejecutará.
3. La Action se ejecuta y re-
direcciona a una pagina o en
1 algunos casos a otro Action.
3
Controller.class Action.class
Programando Soluciones
La manera de interactuar de la aplicación es
index.jsp
•Carga la información de la
configuración.
• Incluye las otras paginas.
1 •Hace los llamados
RegistarDepartamento y 3
RegistrarEmpleado.
Controller RegistarDepartamento
RegistrarEmpleado
• Atender y re-direccionar los
llamados a un
2 • Realizan una operación.
RegistarDepartamento y •.Re-direccional la pagina al
RegistrarEmpleado.. index.
• La primera vez los
inicializa, la segunda los
busca en memoria.
Programando Soluciones
El archivo de configuración web.xml
El tipo de XML
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app> y </web-app>
<display-name>EJERCICIO 13 MODELO-VISTA-CONTROLADOR</display-name>
<description> XML de configuración para aplicar el patrón MVC en jsp</description>
Programando Soluciones
El archivo de configuración web.xml
Programando Soluciones
El archivo de configuración web.xml
Programando Soluciones
El archivo de configuración web.xml
Esto hace referencia a la configuración del servlet quien responderá los llamados a los servlets
O sea que nuestro servlet responderá cualquier url a la que llamemos que tenga
algo_aqui/servlet/cualquier_cosa_aqui
Programando Soluciones
InitModel.jsp
Inicializando la conexión a la BD
1. Declaramos un bean de tipo WebModel que se llama modelo y que solo será visto en la session.
2. Dicho bean hereda de Model, pero tiene métodos para que funcione en entorno web (será capaz de
sacar los parámetros que declaramos en el web.xml).
<%
String BASEURL=request.getContextPath();(sacamos la URL base en este caso “/ejercicio13”)
String CONTROLLER=BASEURL+"/servlet“;(para los servlets en este caso “/ejercicio13/servlet”)
String ABSOLUTEURL=application.getInitParameter("ABSOLUTEURL");
(ABSOLUTEURL en este caso será http://localhost:8181/ejercicio13/)
Controller.java
doPost(): se ejecuta cuando en el formulario que lo llama el method=“post”, este método invoca al método
ejecutar().
doGet(): se ejecuta cuando en el formulario que lo llama el method=“get” o cuando es llamado por medio
de un enlace, este método invoca al método ejecutar().
ejecutar(): ejecutar en algunas convecciones doRequest() o run(), este método tiene que cargar a la acción
especifica que se quiere invocar.
Programando Soluciones
LA PARTE JAVA
Controller.java
/*llamamos a la session*/ /*guardamos el mapa de acciones en la session*/
/*sacamos el mapa de acciones de la session*/ /*si no se encontro la clase*/
/*si aun no exite*/ /* o no se pudo instansiar la clase*/
/*lo inicializamos*/ /*o hubo un acceso no autorizado*/
/*Sacamos el contexto de la aplicacion*/ /*lanza una excepcion*/
/* obtenemos la ruta (Accion) a ejecutar*/ /*sacamos el model de la session*/
/*si la ruta es null*/ /*si el model == null*/
/*lanzamos una exception*/ /*lanza una excepcion*/
/*declaramos una accion, y la cargamos de mapa de acciones*/ /*seteamos los parámetros de la accion*/
/*si la accion no se encuentra en el mapa*/ /*y la ejecutamos*/
/* la ruta viene en el formato "Accion/Bean" */ /*atrapamos cualquier excepcion */
/* la ruta viene en el formato "Palabra1/Palabra2" */ /*Pasamos el mensaje a una ServletException*/
/*dividimos la ruta en 2 justo por el caracter '/' */
/*si el numero de partes es diferente de 2 hubo algún error */ Para tener una idea mas clara mirar los
/*lanzamos una excepcion*/
/*tenemos la parte uno de la Accion */
comentarios en la clase
/*tenemos la parte dos de la Accion */
/*nombre de la clase de la Accion= parte uno + parte dos */
/*Cargamos la clase*/
/*la instanciamos */
/*la guardamos en el mapa de acciones*/
Programando Soluciones
LA PARTE JAVA
Action.java
Esta clase es un “molde” para las acciones esta clase se encarga de declaras 4 variables y
sus métodos sets y aparte un método abstracto run. Todas las Acciones heredan de esta
clase.
Programando Soluciones
BASE DE
MODELO DATOS
VISTA CONTROLADOR
ACCIONES
ACCIONES
ACCIONES
Programando Soluciones
MODELO BASE DE
DATOS
-Model
-WebModel
-Beans
-Clases de la lógica de
negocio
VISTA CONTROLADOR
- Paginas para presentación -Controller
-Clases para presentación (re-direccionamiento de
(todo lo que interactué con el peticiones)
usuario).
ACCIONES
ACCIONES
ACCIONES
Programando Soluciones