Publicado el 23 de Diciembre del 2018
622 visualizaciones desde el 23 de Diciembre del 2018
83,7 KB
4 paginas
Creado hace 10a (22/05/2013)
Java EE – Arquitectura MVC
Aplicaciones Web/Sistemas Web
Juan Pavón Mestras
Dep. Ingeniería del Software e Inteligencia Artificial
Facultad de Informática
Universidad Complutense Madrid
Material bajo licencia Creative Commons, Juan Pavón 2013
Servlets, JSPs y Enterprise beans
Los servlets facilitan el tratamiento de las peticiones que llegan
al servidor
Tratamiento de datos de formularios
Generación de contenidos de formato variable
Permiten redireccionar las peticiones
Las JSP facilitan el desarrollo y mantenimiento del contenido
HTML
Interesante para páginas de formato establecido (poca variabilidad)
Los Java Beans y Enterprise Beans facilitan la implementación
de la lógica de negocio
Independiente del protocolo de interacción con los clientes
Independiente de la presentación de los resultados
Juan Pavón - UCM 2012-13
MVC
2
Arquitectura MVC en Java EE
Controlador
1. Petición HTTP
Servlet
Servlet
2. Procesar
5. Redirección al
JSP apropiado
4. Resultados
Modelo
Java
Bean
Java
Bean
3.
Acceso
a BD
BD
Eneterprise
Eneterprise
Bean
Bean
7. Respuesta HTTP
JSP
JSP
Vista
6. Recupera datos
y los pone en la salida
Juan Pavón - UCM 2012-13
MVC
Arquitectura MVC en Java EE
Los beans representan los datos
Los resultados pueden ser Java Beans que encapsulan los resultados
Beans y Enterprise Beans pueden usarse para la lógica de negocio
Los servlets gestionan las peticiones de los clientes
Reciben las peticiones HTTP
Procesan los parámetros (p.ej. de formularios) comprobando que son
correctos
Invocan operaciones en beans para ejecutar la lógica de negocio
Guardan referencias a los beans de resultados en el ServletsContext,
en la sesión o en la petición
Reenvían la petición a una página JSP
El servlet determina la página JSP apropiada y usa el método de
reenvío del RequestDispatcher para transferirle el control
La página JSP accede a los beans de resultado
La página JSP no crea ni modifica beans, solo los consulta para ver los
resultados
Juan Pavón - UCM 2012-13
MVC
3
4
Servlets – Reenvío de peticiones
El servlet determina la página JSP apropiada y usa el método de
reenvío del RequestDispatcher para transferirle el control
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// Comprueba los parámetros de la petición (p.ej. de formularios)
// Invoca operaciones en beans para ejecutar la lógica de negocio
// Guarda referencias a los beans de resultados en
// el ServletsContext, en la sesión o en la petición
// Reenvía la petición a un JSP (Vista) para que haga la salida
String operacion = request.getParameter("operacion");
if (operacion == null) operacion = "desconocida";
String jsp;
if (operacion.equals("consulta"))
else if (operation.equals("cancel")) jsp = "/WEB‐INF/Cancel.jsp";
else
jsp = "/WEB‐INF/Desconocida.jsp";
jsp = "/WEB‐INF/Consulta.jsp";
RequestDispatcher dispatcher = request.getRequestDispatcher(jsp);
dispatcher.forward(request, response);
}
Juan Pavón - UCM 2012-13
MVC
Paso de beans
Se pueden pasar los beans por tres lugares
En el objeto request (HttpServletRequest)
• Visibles para el servlet y la página o servlet a la que se lo reenvía
• En el servlet:
UnBean valor = LookupService.findResult(...);
request.setAttribute("clave", valor);
• En la página JSP:
${clave.propiedad}
En la sesión (HttpSession)
• Visibles para el servlet y la página o servlet a la que se lo reenvía, y
para otras páginas posteriores referentes al mismo usuario
• En el servlet, similar a antes pero:
session.setAttribute("clave", valor);
En el Servlet Context
• Son visibles para todos los servlets y páginas de la aplicación
• En el servlet, similar a antes pero:
getServletContext().setAttribute("clave", valor);
• En otros servlets se tendrá que usar de forma sincronizada (synchronized)
Juan Pavón - UCM 2012-13
MVC
5
6
La vista: páginas JSP
La página JSP no crea beans
Para garantizar que no se crean beans, usar
<jsp:useBean ... type="paquete.Clase" />
• en vez de
<jsp:useBean ... class="paquete.Clase" />
La página JSP no modifica beans, solo los consulta para ver los
resultados
Usar únicamente jsp:getProperty
No usar jsp:setProperty
Juan Pavón - UCM 2012-13
MVC
Conclusiones
MVC es útil cuando
Una petición puede generar resultados de aspecto muy diverso
Proceso de información complejo
Para repartir el trabajo entre distintos miembros de un equipo de
desarrollo
• Desarrolladores web
• Lógica de negocio
Frameworks que usan el MVC para Java EE
JavaServer Faces (JFC)
Struts
Juan Pavón - UCM 2012-13
MVC
7
8
Comentarios de: Java EE - Arquitectura MVC (0)
No hay comentarios