Implementación del patrón Modelo-Vista-Controlador

Slides:



Advertisements
Presentaciones similares
Desarrollo de aplicaciones en n- capas
Advertisements

Curso de Java “Java para Web” Rogelio Ferreira Escutia.
Rogelio Ferreira Escutia Modelo Vista Controlador.
Mónica Acosta Yeison Ceballos Carlos Rodallega
I. Sesión 2 Noviembre 2010 Claudio Chaucca Umana
Internet y tecnologías web
CUPS Configuración y Uso de Paquetes de Software
Red Social: “Un millón de Amigos”.
Introducción a HIBERNATE
Programación Orientada a Objeto 1
Patrón MVC con STRUTS.
Modelando aplicaciones
Programación Visual de Sistemas
PATRON DAO Data Access Object (OBJETO DE ACCESO A DATOS)
"java del lado del servidor" Servlet y JSP Java Server Pages.
“SISTEMA DE PASANTÍAS PARA LA FACULTAD DE INGENIERÍA
4ta. Reunión SpringHispano & JavaMexico Struts 2.
Índice 1. Introducción, objetivos y justificación del proyecto.
STRUTS, IBATIS Y AJAX PARA LA GESTIÓN INTEGRAL DE UN TALLER MECÁNICO
Teoría de los lenguajes Proyecto SIGU Equipo Nº3 Universidad Argentina J. F. Kennedy Sede: Don Bosco Integrantes: Irene Arias Fernández Mariana Pacheco.
Curso de Java y Aplicaciones Web
YII (Yes It Is!) – Php Framework
Investigación Servidor de Aplicaciones WebSphere
Java 2 Platform Enterprise Edition
RESUMENCURSO STRUTS 2 Resumen de lo visto en este tercer módulo: VISTA del framework Struts 2 Debes tener los conceptos muy claros sobre: Results UI Tags.
Ing. CIP Fabián Silva Alvarado
Tecnologías para el desarrollo de aplicaciones Web
Persistencia de Objetos. Definicion Persistencia : El la capacidad de un objecto to continuar existiendo despues que su creador (programa que crea este)
Desarrollo de Aplicaciones Utilizando Java Edición Empresarial – JEE6
Propósito: * Mostrar indicativos porcentuales de los diversos microorganismos con los que se alimentan el camarón en un manejo semi-intensivo aplicado.
Arquitectura Web.
Servicios Web. Servicios web Son programas con funcionalidad accesible a través de protocolo http que permiten la ejecución remota de métodos y funciones.
SPRING MVC.
J2EE Java Enterprise edition eilin chang Matthew pabon Gabriel vega.
Lenguajes de programación Web
CURSO STRUTS 2 RESUMEN Resumen de lo visto en este primer módulo de INTRODUCCIÓN al framework Struts 2 Debes tener los conceptos muy claros sobre: Framework.
“SERVLETS”. Paola Rojas Contreras Juan Villarroel Leiva José Miguel Perez V. Departamento de Electrónica.
MÓDULO 1: Introducción al framework Struts 2
FRAMEWORK VS Código fuente
Mensajería cliente-servidor en Flex y Java
IS2Objetos Distribuidos - J2EE,RMI1 Ingeniería del software II Ingeniería Web.
Aplicaciones Web de Servidor
Daniel Fernández Lanvin Capa de Presentación. Daniel Fernández Lanvin Capa de Presentación Responsabilidades Navegabilidad del sistema Formateo de los.
IS2Objetos Distribuidos - J2EE,RMI1 Ingeniería del software II Ingeniería Web.
Introducción al Lenguaje. ¿ Qué es PHP ? O Hypertext Pre-processoes (PHP) es un lenguaje de "código abierto" interpretado, de alto nivel, embebido en.
Cristian Fonnegra Marin
MVC con Spring Temas Selectos de Cómputo Cibernética 912 Agosto-Diciembre 2005.
Sun Microsystems. Los servlets son objetos que corren dentro del contexto de un contenedor de servlets y extienden su funcionalidad. También podrían correr.
I NGENIERÍA DE S OFTWARE L ABORATORIO IX Struts Eduardo Saavedra A. 27/10/2009.
Manual Desarrollo Flex – J2EE. Contenidos Análisis y Diseño 1 Implementación 2 J2EE 3 Pruebas 4.
Jakarta Struts version Juan Manuel Zorrilla Gamarra Mario Titto Acostupa.
CONTRATOS DE CLIENTES Orlando Sedamano Cornejo Marco Bustinza
Eugenia Parodi Eugenia Parodi Lazaro Ruiz Lazaro Ruiz Juan Achucarro Juan Achucarro Sebastian Castellanos Sebastian Castellanos.
SOFTTEK INTERNAL © Copyright All Rights Reserved. Valores Corporativos Softtek S.A. de C.V. Struts Academia Java.
Luis Ponce Cabello.  Primera Parte : JSF  Segunda Parte : Facelets  Tercera Parte : Icefaces.
Tecnologías Cliente / Servidor Capitulo II Richard Jiménez V. clienteserver.wordpress.com.
Guadalupe Andrade Mociño.  Significa Modelo Vista Controlador  Es un patrón de diseño  Esta compuesto por tres grandes capas: modelo, vista y controlador.
Capítulo 12. Tecnología y herramientas. Ricardo García Mataix
Your Logo ING. FREDY ALEXANDER MARTINEZ. Here comes your footer  Page 2 Este patrón fue descrito por primera vez por Trygve Reenskaug en 1979, y la implementación.
Aplicaciones en 2,3 y n capas
Aclaraciones al modelo MVC del Framework de Justicia
LOGO Grupo de desarrollo de software (GDS) Grupo de desarrollo de software.
Desarrollo De aplicaciones Web 2. Utilizaremos las siguientes herramientas.
Centro Universitario UAEM Zumpango Ingeniería en Computación Agosto 2015.
Integrantes Miguel Betancourt Alexis Tacuri.  Activiti es una plataforma para la formación de flujos de trabajo y procesos empresariales dentro del.
Servicios Web Conjunto de aplicaciones o de tecnologías con capacidad para interoperar en la Web. Estas aplicaciones o tecnologías intercambian datos entre.
Conociendo el modelo Cliente-Servidor
Conociendo el modelo Cliente-Servidor. Introducción En el mundo de TCP/IP las comunicaciones entre computadoras se rigen básicamente por lo que se llama.
SIGEP Presentación de Resultados SIGEP. SIGEP Ambiente de Desarrollo  Plataforma Java ( J2EE,JRE,JDK,JVM ).  Contenedor Web ( Tomcat 5 )  Control de.
Definición: Es un estilo de programación, su objetivo primordial es la separación de la capa de presentación, capa de negocio y la capa de datos. ARQUITECTURA.
Transcripción de la presentación:

Implementación del patrón Modelo-Vista-Controlador Utilizando Java Struts 2 Ing. Israel Ortega Cuevas Universidad Nacional Autónoma de México Dirección General de Personal Dirección de Sistemas

¿Qué es Struts? Struts es una herramienta de soporte (framework*) para el desarrollo de aplicaciones Web bajo el patrón MVC bajo la plataforma J2EE (Java 2, Enterprise Edition). Referencia: http://es.wikipedia.org/wiki/Apache_Struts Struts permite a las aplicaciones Web dar funcionalidad a la interacción con la lógica del negocio y las bases de datos. *Un “framework” es una estructura de soporte a un proyecto de software que adiciona una funcionalidad al mismo.

Struts 2 2000. Proveer un framework estandar MVC a la comunidad Java 2000 Donado a la comunidad Apache en Mayo 2001 julio publico la version 1.0 2003 se separa el framework webwork de struts, que se funciona con struts en 2005 que su vesion 2.2 es ahora Struts 2.X Febrero de 2007 2.2.7 es la ultima version de webwork. 2.1.8.1 es la ultima versión 16 nov 2009 Otros marcos MVC que están basadas en Java son Grails (marco). Otros marco MVC que no están basadas en Java son Ruby on Rails, Struts 2 Creado por Craig R. McClanahan Anunciado por Patrick Lightbody

Funcionamiento clásico de una aplicación Web Jsp. Codigo incrustado en html Servet. Sentencias println() enormes, se mezcla codígo con formateo html Se tienen problemas de control de flujo y la capa del negocio se encuentra incrustada en la programación y el diseño html

Funcionamiento clásico de una aplicación Web Desventajas En los servlets Se escribe sentencias estilo println(“<html>”); println(“<head>”);……. Los estilos (css) se encuentran inmersos en la programación. En los jsp se mezcla código html con código java (llamadas a bases de datos, generación de ciclos, etc). Para un diseñador gráfico puede resultar imposible determinar la apariencia de la aplicación. La lógica del negocio se encuentra insertada junto con la visualización de los datos. El control de flujo de las páginas de la aplicación se encuentra inmerso en la programación. Al no contar con persistencia, se consultan una y otra vez a las tablas de catálogos.

Arquitectura MVC (Modelo Vista-Controlador) Divide la aplicación en tres partes El flujo de la aplicación está dirigido por un Controlador central El Controlador delega solicitudes - en nuestro caso, solicitudes HTTP -- a un manejador apropiado. Los manejadores están unidos a un Modelo, y cada manejador actúa como un adaptador entre la solicitud y el Modelo. El Modelo representa, o encapsula, un estado o lógica de negocio de la aplicación. Luego el control normalmente es devuelto a través del Controlador hacia la Vista apropiada. El reenvío puede determinarse consultando los conjuntos de mapeos, normalmente cargados desde archivo de configuración. Esto proporciona un acoplamiento cercano entre la Vista y el Modelo, que puede hacer las aplicaciones significativamente más fáciles de crear y de mantener

BD Capa de lógica del negocio Servicios Web Utilizar un Data Access Object (DAO) para abstraer y encapsular todos los accesos a la fuente de datos. El DAO maneja la conexión con la fuente de datos para obtener y almacenar datos.

Nucleo (“Nutshell”) de Struts 2 ServletDispatcher instancia un new Action Proxy 1 HttpServletRequest Servlet Dispatcher Interceptores recuperan la petición y determinan si continua la ejecución del Action ActionProxy 2 Interceptor Interceptor Interceptor 3 Result Se mapea el resultado de acuerdo al estado del modelo Action httpServletResponse

Ejemplo: Programación del Acceso a una aplicación Solicita acceso a una página Controlador Interceptor Verifica si el usuario establecio sesión De acuerdo al punto anterior mapea la página a desplegar Modelo Index.action De acuerdo a la lógica del negocio valida al usuario menu.action Vista Despliega las página solicitada Menu.action Clases con acciones de la aplicación index.jsp cambiaContrasenia.jsp menu.jsp

Software de Desarrollo: NetBeans Proyecto de Código Abierto gratuitos para uso tanto comercial como no comercial Fundado por Sun en el año 2000 http://www.netbeans.com/

NetBeans

Apache Struts 2 http://struts.apache.org/2.x/

Crear una Aplicación Struts 2

Crear una Aplicación Struts 2 Struts.xml Bibliotecas Struts 2.1.8.1

Crear una Aplicación Struts 2 /aplicación/WEB-INF/web.xml

Proyecto (NetBeans IDE) En una aplicación más simple, un objeto Action podría algunas veces manejar la lógica de negocio asociada con una solicitud. Sin lo correcto es que un Action, debería llamar a otro objeto, normalmente un objeto basado en el modelo DAO, para realizar la lógica de negocio real. Esto permite al objeto Action enfocarse en el flujo de la aplicación en base a la lógica del negocio. Vista Controlador Controlador Modelo (Action) Controlador Modelo (Action) Bibliotecas Struts 2 (Lógica del negocio)

Llamada a index.action struts.xml Controlador

Resultados de la Acción (estados de IndexAction.java Variables mapeadas a la vista Resultados de la Acción (estados de Retorno) No olvidar los “getters” y “setters” Modelo

Index.jsp HTML TAG LIBRARY Vista

Interceptores (struts.xml) Definición del interceptor Añadimos interceptor Salida de la clase interceptor sí no tiene sesión de usuario Ejecuta sí procede Controlador

Interceptores (Clase LoginInterceptor) Controlador

Por Anotaciones: (indexAction.java) Interceptores - Validadores . Son configurados vía XML o por medio de Anotaciones (Annotations) Por Anotaciones: (indexAction.java) @RequiredFieldValidator(message="La clave es requerida") public void setClave(String clave) { this.clave = clave; } Vía XML (IndexAction-validation.xml) <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"> <validators> <field name="clave"> <field-validator type="required“ > <message>La clave es requerida.</message> </field-validator> </field> </validators> Controlador

Soporte para OGNL (Object-Graph Navigation Language) vía HTML TAG LIBRARY Creado por OGNL Technology, es un Lenguaje de Expresiones de código abierto para Java,el cual, mediante el uso de expresiones más simples que el amplio espectro que soporta Java. Acceso a POJO Acceso a un atributo del Action Vista

HTML TAG LIBRARY (http://struts. apache. org/2. x/docs/tag-reference

HTML TAG LIBRARY

HTML TAG LIBRARY (http://struts. apache. org/2. x/docs/tag-reference

SiteMesh

SiteMesh – web.xml ActionContextCleanUp Permite la integración con el FilterDispatcher de SiteMesh

SiteMesh – decorators.xml

SiteMesh – sitemesh.xml

SiteMesh – layout.jsp

SiteMesh SiteMesh es una biblioteca creada para facilitar el control del aspecto y navegación de portales

FilterDispatcher– Lanzador de los procesos Arquitectura FilterDispatcher– Lanzador de los procesos ActionProxy es una capa entre la invocacion a las acciones y el control via el configuration manager ActionMapper Mapeo entre una solicitud HTTP y la invocacion requerida a las propiedades en la accion.

¿Por qué utilizar Struts? Framework Open-Source (Apache License, Version 2.0 ) Como lo menciona en su página principal, permite afrontar elegantemente el desarrollo de aplicaciones java web (Implementación del patrón modelo-vista-controlador) En su versión 2.0 ya alcanzó un estado de madurez Integración completa con RADs (Netbeans, eclipse, etc). Valores inteligentes por defecto para configuraciones Acciones y Formularios POJO Plugins (JavaServer Faces, JasperReports, JFreeChart) Soporte AJAX Controles Incorporados (DatePicker, checkboxlist, optgroup, etc).

Ligas de interés http://struts.apache.org/ http://struts.apache.org/2.x/index.html http://www.infoq.com/minibooks/starting-struts2 http://www.vaannila.com/struts-2/struts-2-tutorial/struts-2-tutorial.html http://www.opensymphony.com/webwork/

Gracias por su Atención