7b. Patrones de Capa de
Presentación
Gestión de Sistemas en Internet
Universidad Antonio de Nebrija, 2002/03
Justo N. Hidalgo Sanz
Índice

Patrones principales
– MVC
– Application Controller

Patrones de Vista
– Template View
– Transform View

Estrategias de diseño
– Page-view with Bean
– FrontController
03/10/2015
Internet - Patrones Capa Presentación
2
MVC

Es el patrón más importante de división de
responsabilidades en la capa de
presentación.
 Lo veremos con detalle más adelante.
03/10/2015
Internet - Patrones Capa Presentación
3
Application Controller (I)

Separación entre los objetos de presentación y los
objetos de dominio mediante una capa intermedia.
 Responsabilidades:
– Manejo del flujo de la aplicación
– Decisión de qué pantallas aparecen

Útil si el sistema tiene mucha lógica acerca del
orden de aparición de ventanas o si no existe una
relación directa entre acciones y páginas.
03/10/2015
Internet - Patrones Capa Presentación
4
Application Controller (y II)

http://www.martinfowler.com/eaaCatalog/applicationController.html
03/10/2015
Internet - Patrones Capa Presentación
5
Template View (I)

Permite escribir la presentación en la
estructura de la página e incrustar
marcadores dentro de esa página para
indicar dónde va el contenido dinámico…
¿os suena?
 ASP, JSP, PHP
03/10/2015
Internet - Patrones Capa Presentación
6
Template View (y II)

http://www.martinfowler.com/eaaCatalog/templateView.html
03/10/2015
Internet - Patrones Capa Presentación
7
Transform View (I)

Útil cuando los datos de dominio están en XML.
 La aplicación elige el “transformador” más
apropiado y lo aplica al XML, convirtiéndolo en la
estructura más adecuada (otro XML, HTML, …)
 XSLT (XML Stylesheet Language).
 Utilidad:
– Procesamiento
– Aplicaciones multicanal
03/10/2015
Internet - Patrones Capa Presentación
8
Transform View (y II)

http://www.martinfowler.com/eaaCatalog/transformView.html
03/10/2015
Internet - Patrones Capa Presentación
9
Estrategias de Diseño

Hasta ahora:
– Servlets se ocupan de todo:
 No hay desacoplamiento UI – Negocio
– JSPs se ocupan de todo:
 Mejora algo, pero JSPs muy complejas.
– ¿Hay otras soluciones?
 Sí: Cocoon (proyecto Jakarta), pero por ahora no es
estándar.
 Podemos buscar una solución arquitectónica.
03/10/2015
Internet - Patrones Capa Presentación
10
Page-view with Bean
Request
Response
JSP
Worker Bean
Business
Processing
•Útil, pero todavía se deja a la JSP con necesidades de
procesamiento, por lo que el desacoplamiento no es absoluto.
03/10/2015
Internet - Patrones Capa Presentación
11
Patrón FrontController (I)

Anteriormente conocido como JSP Model 2
Architecture.
 Ahora incluído en el Sun Java Center J2EE
Patterns Catalog.
 Está basado en MVC (Model – View –
Controller)
03/10/2015
Internet - Patrones Capa Presentación
12
Patrón FrontController (II). MVC

MVC divide los componentes necesarios
para construir una GUI en tres:
– MODEL: Un modelo (los datos)
– VIEW: Objectos Vista para presentación de
pantallas.
– CONTROLLER: Objeto que reacciona ante la
entrada del usuario.
03/10/2015
Internet - Patrones Capa Presentación
13
Patrón FrontController (III). MVC

http://www.martinfowler.com/eaaCatalog/modelViewController.html
03/10/2015
Internet - Patrones Capa Presentación
14
Patrón FrontController (IV)

FrontController:
– Un servlet o JSP como CONTROLLER
 No devuelve respuesta, sino que procesa la petición
 Redirige a subcontrolador o a vista JSP
– MODEL:
 Java Beans que proveen acceso a los datos internos.
– VIEW:
 JSPs que devuelven la información adecuadamente
formateada.
03/10/2015
Internet - Patrones Capa Presentación
15
Patrón FrontController (y V)

http://www.martinfowler.com/eaaCatalog/frontController.html
03/10/2015
Internet - Patrones Capa Presentación
16
Aplicación simple

Elementos:
– Un servlet controlador
 Recibe todas las peticiones
 Delega procesamiento a “manejadores de peticiones
“ –request handlers-.
– Un “request handler” para cada tipo de petición
– Beans modelo que provean acceso al modelo.
– Algunas vistas JSPs.
03/10/2015
Internet - Patrones Capa Presentación
17
•Petición que llega al ControllerServlet.
Lo lleva a ShowRecordRequestHandler, que
devuelve el enterName.jsp
03/10/2015
Internet - Patrones Capa Presentación
18

Nombre no encontrado: sorryNotFound.jsp
03/10/2015
Internet - Patrones Capa Presentación
19

“detective”: está en el DataStore => showInfo.jsp
03/10/2015
Internet - Patrones Capa Presentación
20
Ventajas del MVC

Casi todas las JSPs pueden ser mantenidas
por el equipo de diseño gráfico.
 La seguridad es gestionada por el
Controller, es transparente a las JSPs.
 El controlador maneja los errores de manera
transparente al resto del sistema.
03/10/2015
Internet - Patrones Capa Presentación
21
¿Y si se nos olvida?

La mejor forma de no olvidarse del MVC es
que nos veamos forzados a utilizarlo.
 Jakarta Struts es un framework genérico de
controladores de peticiones.
 No tendremos tiempo de verlo, pero está
instalado en el laboratorio.
03/10/2015
Internet - Patrones Capa Presentación
22
Bibliografía

Patterns of Enterprise Application
Architecture. M. Fowler. Ed. AddisonWesley.
 Professional Java Server Programming. Ed.
Wrox.
03/10/2015
Internet - Patrones Capa Presentación
23
Descargar

Internet