Jakarta Struts version 1.3.5 Juan Manuel Zorrilla Gamarra Mario Titto Acostupa.

Slides:



Advertisements
Presentaciones similares
RichFaces Noviembre 2010 Claudio Chaucca Umana
Advertisements

Curso de Java “Java para Web” Rogelio Ferreira Escutia.
Internet y tecnologías web
Fernando Alonso Blázquez Sesiones 06 de Mayo de 2004.
Red Social: “Un millón de Amigos”.
Programación Orientada a Objeto 1
Validator Framework. Jakarta Commons Validator Paquete de clases de utilidad para la implementación de reglas de validación de datos de entrada de forma.
Patrón MVC con STRUTS.
Modelando aplicaciones
CGI I La mayor parte de los elementos HTML de que disponemos permite al visitante visualizar los contenidos de un sitio, pero no interactuar con él. Dicho.
Bienvenido a Marangatu'i, Módulo del Contribuyente de la SET!
Programación Distribuida
"java del lado del servidor" Servlet y JSP Java Server Pages.
OBJETO REQUEST. El objeto Request Por qué el objeto request Funcionamiento Colecciones: – Transferencia de variables por URL –Transferencia de variables.
Model View Controller (MVC)
Índice 1. Introducción, objetivos y justificación del proyecto.
STRUTS, IBATIS Y AJAX PARA LA GESTIÓN INTEGRAL DE UN TALLER MECÁNICO
JSP Copyright ISIPE – Instituto de Servicios Informáticos para Empresas – Universidad Siglo 21 – Cualquier copia u otro uso debe ser autorizado expresamente.
Curso de Java y Aplicaciones Web
Java 2 Platform Enterprise Edition
Copyright  Altran SDB, All rights reserved. 1  2006Universidad de Las Américas - Escuela de Ingeniería - Seguridad Informática - Dr. Juan José.
DIAGRAMA DE COMPONENTES INTEGRANTES Córdova Vásquez Giovanny Escobar Alvares Calixto Gomez Quinteros Adelaida Pinto Flores Yarmila.
Sesión en Servlets 31 de Marzo de Índice ¿Por qué seguir la trayectoria de usuarios? Formas de seguir la trayectoria de usuarios –Cookies –Reescritura.
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.
Implementación del patrón Modelo-Vista-Controlador
Tecnologías para el desarrollo de aplicaciones Web
Modelado Arquitectónico
Ingeniero Anyelo Quintero
Java Server Faces.
Desarrollo de Aplicaciones Utilizando Java Edición Empresarial – JEE6
PHP TODO SOBRE PHP.
SPRING MVC.
Prof. José T. Cadenas. Aplicación Web La Internet y la Web hacen que sea fácil y atractivo poner toda la información en el cyberespacio, y la hace accesible.
Tutor: Ing. Juan E. Talavera Horn 2010 GWT – EJB Patrones de diseño e integración.
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.
Enterprise Java Beans. EJBs Beans gestionados por un contenedor del servidor de aplicaciones para gestionar el acceso a recursos (bases de datos, colas.
Ingeniería en Sistemas de Información Diseño de Sistemas (3K1)
MÓDULO 1: Introducción al framework Struts 2
Modelo-Vista-Controlador Este patrón fue descrito por primera vez por Trygve Reenskaug en 1979, y la implementación original fue realizada en Smalltalk.
FRAMEWORK VS Código fuente
Ihr Logo PHP Parte 4 “manejo de formularios”. Your Logo Formularios  El proceso para el manejo de FORMULARIOS html requiere generalmente dos páginas,
Aplicaciones Web de Servidor
TEMA 10: DIAGRAMA DE: OBJETOS, SECUENCIA Y DESPLIEGUE EN UML
Daniel Fernández Lanvin Capa de Presentación. Daniel Fernández Lanvin Capa de Presentación Responsabilidades Navegabilidad del sistema Formateo de los.
Etiquetas e Internacionalización. Recursos de String/Manejo de Errores  Recursos de String Todos los strings usados en mensajes en JSPs tanto de datos.
IS2Objetos Distribuidos - J2EE,RMI1 Ingeniería del software II Ingeniería Web.
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.
File Transfer Protocol.
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.
© Softtek Internal. Introducción a Spring Sesión 1: Introducción y teoría Juan Irungaray
JSF (JAVA SERVER FACES)
Luis Ponce Cabello.  Primera Parte : JSF  Segunda Parte : Facelets  Tercera Parte : Icefaces.
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.
Colegio de Bachilleres Plantel 13 Xochimilco - Tepepan
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.
Aclaraciones al modelo MVC del Framework de Justicia
Generador de Páginas Hélio Martins
Centro Universitario UAEM Zumpango Ingeniería en Computación Agosto 2015.
Servicios Web Conjunto de aplicaciones o de tecnologías con capacidad para interoperar en la Web. Estas aplicaciones o tecnologías intercambian datos entre.
Programación orientada a objetos La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos.
Softlogia S.R.L. Formación de Recursos Humanos Java Server Faces Instructor: Martin R. Baspineiro.
Introducción a programación web Martin Esses. Formularios HTML se utilizan para pasar datos a un servidor. Un formulario HTML puede contener elementos.
Métodos en Java. Estructura de un programa en Java ► La relación con la vida misma la podemos ver en el siguiente comentario: Imaginemos que dos clases.
Entregables del Proyecto
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.
Introducción a programación web Martin Esses. En las presentaciones anteriores, vimos como enviar datos a un controlador usando POST y como generar formularios.
Transcripción de la presentación:

Jakarta Struts version Juan Manuel Zorrilla Gamarra Mario Titto Acostupa.

Contenido Patrón de diseño MVC La framework Apache Struts Instalación Flujo de control en Struts Procesamiento de peticiones Control de errores Manejo de Formularios Librerías de etiquetas de Struts

Modelos de desarrollo de aplicaciones web en Java Los servlets son buenos ejecutando lógica de negocio, pero no son tan buenos presentando información JSPs son muy buenos presentando pero pésimos introduciendo lógica programática en ellos La combinación Servlet/JSPs es lo más común hoy en día en el desarrollo de aplicaciones web Dos arquitecturas: Model-1: JSPs para presentación y control y JavaBeans para la lógica Model-2: Model-View-Controller = JavaBeans-JSPs-Servlets MVC es tan común que se han desarrollado varias infraestructuras en torno a este patrón de diseño:  Apache Struts  Java Server Faces  Spring  Etc…

Arquitectura Model 1

Arquitectura Model 2

Modelo MVC 0

Modelo MVC I El Controlador (Controller) Servlet central recibe peticiones, procesa URL recibida y delega procesamiento a JavaBeans Servlet guarda resultado de procesamiento realizado por JavaBeans en el contexto de la petición, la sesión o la aplicación Servlet transfiere control a un JSP que lleva a cabo la presentación de resultados

Modelo MVC II El Modelo (Model) JavaBeans (o EJBs para aplicaciones más escalables) desempeña el rol de modelo: Algunos beans ejecutan lógica Otros guardan datos Normalmente: 1. Servlet controlador invoca un método en bean lógico y éste devuelve un bean de datos 2. Autor de JSP tiene acceso a bean de datos

Modelo MVC III La Vista (View) Rol ejecutado por JSPs Servlet Controlador transfiere control al JSP después de haber guardado en un contexto el resultado en forma de un bean de datos JSP usa jsp:useBean y jsp:getProperty para recuperar datos y formatear respuesta en HTML o XML

Modelo MVC IV En resumen: Los beans o EJBs ejecutan la lógica de negocio y guardan los resultados Los JSPs proveen la información formateada Los servlets coordinan/controlan la ejecución de los beans y los JSPs

Frameworks Las frameworks pueden ser vistas como implementaciones de patrones de diseño que facilitan la reutilización de diseño y código Dado que MVC ha sido utilizado en muchas aplicaciones web, el desarrollo de frameworks que den soporte a áreas comunes en todas las aplicaciones MVC es necesario Apache Struts es una de estas frameworks Aplicaciones basadas en Struts consistirán de: Código Java Deployment descriptors que configuran la framework para el uso de nuestra aplicación

Apache Jakarta Struts Implementación del modelo 2/patrón de diseño MVC que facilita la creación de aplicaciones web en Java Creada por Craig McClanahan y donada a la Apache Software Foundation en el 2000 (pertenece a Apache Jakarta)

¿Qué proporciona Struts? Un servlet ( ActionServlet ) que actúa como controlador MVC totalmente configurable Clases base que son extendidas para implementar la lógica de la aplicación web: Struts Action Struts ActionForm Un rico conjunto de etiquetas personalizadas JSP que cooperan con el controlador para su uso en la capa view de MVC Varias opciones para la validación de entrada de usuario en formularios HTML: ActionForm o Validator Framework Mecanismos para el manejo y reporte de errores Soporte para la internacionalización (i18n) a través de ficheros de recursos y Java Locales Soporte para fuentes de datos Y más …..

Instalando Apache Struts I Instalar Apache Tomcat 4.x o superior se recomienda un Tomcat 5.5 Bajar la última versión de Apache Struts de: Actualmente en la versión (recientemente ha salido la version 2.0) Lo mejor es tomar la aplicación struts-blank.war como punto de partida. Para esto lo mejor es importar el archivo.war en eclipse que incluye un asistente para dicha tarea.

Actions en Struts Se crea una acción extendiendo la clase org.apache.struts.action.Action El ActionServlet ejecuta acciones invocando el método execute() tu clase Action El método execute() contiene código para manipular el modelo Dentro del método execute() tienes acceso a: Cabeceras y parámetros de peticiones HTTP Atributos/beans guardados en los contextos application / session / request scope Struts ActionForm asociados con la acción (opcional) El ActionMapping associado a esta acción (opcional) El objeto httpResponse El método execute() devuelve un objeto ActionForward que indica al ActionServlet a dónde transferir el control a continuación

Form Beans Un ActionForm es un JavaBean con propiedades que corresponden a los controles de un formulario HTML. Los parámetros son mapeados a propiedades del bean. Proveen un mecanismo de buffer/validate/convert que necesitamos para asegurarnos que el usuario introduce los datos esperados Actúa como puente entre el navegador y el objeto de negocio El programador define un form bean extendiendo la clase org.apache.struts.action.ActionForm (o de forma declarativa usando org.apache.struts.action.DynaActionForm) Hay que definir cada una de las propiedades en la clase y escribir los getters/setters correspondientes, siguiendo las reglas de JavaBeans Después de escribir el código del form bean, es necesario asociarlo con una o más acciones a través del fichero de configuración de Struts struts- config.xml Cada vez que se llama a la acción, el ActionServlet poblará las propiedades con los valores de los parámetros recibidos en el formulario HTML Las propiedades no sólo pueden ser escalares sino que también pueden ser colecciones de valores

¿Por qué se necesitan Forms Beans? ¿Por qué no simplemente se accede a los parámetros de una petición, en vez de usar un form bean como intermediario? Razones: Los Form beans pueden ser validados antes de que una acción sea invocada Si la propiedad validate de un elemento Action en el fichero struts-config.xml contiene el valor true (por defecto), el método validate será invocado Si un form bean falla en la validación puede hacer que Struts envíe al usuario de vuelta a la vista (JSP) desde la que se realizó el POST en primer lugar, junto con un mensaje de error Es importante asignar a la propiedad input del elemento action en struts-config.xml una referencia a la vista que entregó el formulario Los form beans pueden ser usados por múltiples acciones o incluso una aplicación completa Si se configura al ActionController para que guarde un form bean en el contexto de sesión se permitirá el uso del form bean en todas las peticiones web que llegan a la aplicación

Dynamic Action Forms Son ActionForms creados de manera declarativa en struts-config.xml Una o varias propiedades dinámicas pueden ser pasadas a una instancia de org.apache.struts.action.DynaActionForm <form-bean name=“checkoutForm” type=“org.apache.struts.action.DynaActionForm”> <form-property name=“firstName” type=“java.lang.String”/> <form-property name=“lastName” type=“java.lang.String”/> <form-property name=“age” type=“java.lang.Integer” initial=“18”/>

Recursos de String/Manejo de Errores Recursos de String Todos los strings usados en mensajes en JSPs tanto de datos de aplicación como de errores puedes ser colocados en un ficheros de recursos ( ApplicationResources.properties ) Struts proporciona etiquetas personalizadas JSP tags para acceder a estos recursos Manejo de errores Se recomienda que el manejo de errores se lleve a cabo dentro del método execute() y el control se transfiera a la vista apropiada errors.add("passphrase",new ActionError("error.passphrase.required")); Struts proporciona un mecanismo separado para permitir la implementación de un manejador global de excepciones Struts proporciona etiquetas JSP que ayudan en la visualización de los errores en tu JSP:

Struts Tag Libraries Documentadas en La framework Struts proporciona un conjunto de 6 librerías de etiquetas, que asisten en la tarea de la creación de la vista de MVC para evitar incluir código Java en los JSPs: Bean Tags HTML Tags Logic Tags Las funcionalidad de las etiquetas definidas en las librerías Bean y Logic es también provista por las librerías core y fmt de JSTL Se recomienda el uso de las librerías en JSTL

HTML Tags Estas etiquetas son principalmente usadas para: Crear formularios de entrada de datos y Otras utilidades para visualizar interfaces basados en HTML. Algunas de las acciones más útiles son: base  genera un elemento HTML errors  condicionalmente visualiza un conjunto acumulado de mensajes de error form  define un formulario de entrada text  visualiza un campo de entrada de tipo texto messages  condicionalmente visualiza un conjunto de mensajes acumulados submit  visualiza un botón de entrega Etc.

Logic Tags Usadas para: Iterar sobre colecciones Generación condicional de salida, y Flujo de aplicación Algunas de las acciones más útiles son: present  genera el contenido de marcado dentro de esta etiqueta si el valor indicado es encontrado en esta petición notPresent  lo opuesto a present iterate  repite el contenido anidado dentro de esta etiqueta al iterar sobre una colección forward  transfiere control a la página especificada por la entrada ActionForward. Etc.

Bean Tags Usadas pricipalmente para: Escribir por pantalla los valores de los request en los jsp. Definir atributos en el contexto de la pagina en tiempo de compilación. Algunas de las mas usadas son: Define: define un atributo en el contexto de la petición en tiempo de compilación. Write: muestra por pantalla un valor de un objeto que se encuentre en el contexto de la petición.

Problemas con Struts… buena cantidad de sobrecarga en el aprendizaje y el mantenimiento (puede no ser adecuado para proyectos pequeños). Propiedades dinámicas del lado del cliente y la integración de validación aún en las obras. Algunos dolores de cabeza de integración en entornos no-Tomcat. Nueva clase de problemas de seguridad a tener en cuenta (con una población de beans automática) Todavía bastante joven.

Fin