Vous êtes sur la page 1sur 29

CURSO STRUTS 2

INTRODUCCIN

MDULO 1: Introduccin al framework Struts 2


La construccin de una aplicacin Web resulta una tarea muy compleja, dado que requiere de mucho esfuerzo para obtener buenos resultados, tanto en tiempos de desarrollo como en respuesta e integridad de los datos que gestione la aplicacin. En los ltimos aos, para solventar bastantes de los problemas que surgen en los desarrollos de las aplicaciones Web, se comienza a utilizar frameworks Web para facilitar la construccin de aplicaciones, adems de ofrecer buenos resultados de respuestas en las peticiones. El framework en cualquier aplicacin har las labores de esqueleto, sobre el que se soporta normalmente la lgica de negocio y el interfaz de la aplicacin. Existen multitud de frameworks, tanto open source, como comerciales, e incluso de creacin propia, pero el anlisis de este curso ser mostrar las caractersticas y funcionamiento del framework Apache Struts 2.

CURSO STRUTS 2

INTRODUCCIN

En este primer apartado del curso se realizar una breve introduccin del framework Apache Struts 2, para que el alumno tenga un conocimiento general sobre las tecnologas que se apoya Struts 2, as como las caractersticas de los frameworks Web. Los puntos que mostrar al alumno este punto son: Tecnologas sobre las que se apoyan las framework Web. Definicin de framework Web, ventajas y desventajas. Nacimiento del framework Apache Struts 2. Objetivos del framework Apache Struts 2.

CURSO STRUTS 2

INTRODUCCIN

TECNOLOGAS SOBRE LAS QUE SE APOYAN LOS FRAMEWORK WEB


Para entender el framework Web Apache Struts 2 es necesario conocer sobre que tecnologas se apoya cualquier desarrollo de una aplicacin utilizando el framework Struts 2.

Framework Web
El protocolo Hypertext Transfer Protocol (HTTP), es el responsable de permitir interactuar el usuario final con el servidor de la aplicacin, la cual debe responder a las peticiones efectuadas.

API Java Servlet

HTTP

CURSO STRUTS 2

INTRODUCCIN

TECNOLOGAS SOBRE LAS QUE SE APOYAN LOS FRAMEWORK WEB


Para entender el framework Web Apache Struts 2 es necesario conocer sobre que tecnologas se apoya cualquier desarrollo de un aplicacin utilizando el framework Struts 2.

Framework Web

API Java Servlet

El API Java Servlet ayuda a solventar algunos de los problemas que nos plantea el protocolo HTTP, realizando una abstraccin de las peticiones recibidas (HttpServletRequest) y respuestas enviadas (HttpServletResponse), para poder trabajar con objetos Java permitiendo a los desarrolladores que puedan escribir respuestas HTTP.

HTTP

CURSO STRUTS 2

INTRODUCCIN

TECNOLOGAS SOBRE LAS QUE SE APOYAN LOS FRAMEWORK WEB


Para entender el framework Web Apache Struts 2 es necesario conocer sobre que tecnologas se apoya cualquier desarrollo de un aplicacin utilizando el framework Struts 2.

Framework Web

API Java Servlet

Apache Struts 2 es un framework Web robusto, extensible y completo, el cual facilita la construccin de aplicaciones Web. El framework ha sido diseado para simplificar el ciclo completo de desarrollo, desde el diseo al despliegue, as como el mantenimiento de las aplicaciones a lo largo del tiempo.

HTTP

CURSO STRUTS 2

INTRODUCCIN

TECNOLOGAS SOBRE LAS QUE SE APOYAN LOS FRAMEWORK WEB

HYPERTEXT TRANSFER PROTOCOL (HTTP)


HTTP es un protocolo sin estado cliente/servidor de intercambio de mensajes. Normalmente el cliente es un navegador Web y el servidor un Servidor de Aplicaciones. Los principales problemas que no presenta el protocolo HTTP son:

El protocolo HTTP no tiene estado, no mantiene ninguna informacin entre las distintas peticiones.
El protocolo HTTP est basado en texto, lo que provoca numerosas conversiones de tipo entre la lgica Java y los formularios, ya que todos los valores son de tipo String.

CURSO STRUTS 2

INTRODUCCIN

TECNOLOGAS SOBRE LAS QUE SE APOYAN LOS FRAMEWORK WEB

API JAVA SERVLET


La figura central del API Servlet son los Servlets, as como el objeto de peticin HttpServletRequest y el objeto de respuesta HttpServletResponse. Los Servlets son singletons cuyo objetivo es recibir los objetos de peticin y enviar los de respuesta. En resumen, un Servlet recibe una peticin encapsulada en un objeto (HttpServletRequest), gestiona los datos, realiza los trabajos internos necesarios y, por ltimo, devuelve la peticin al cliente (HttpServletResponse). Como el API Java Servlet gestiona las peticiones a bajo nivel del protocolo HTTP, los desarrolladores puede enfocar su esfuerzo haca conceptos de bajo nivel relativos a la aplicacin, como son: Convertir los parmetros de la peticin en tipos Java. Validacin de datos. Realizar llamadas a la lgica de negocio. Invocar la capa de datos. Reproducir la capa de presentacin (HTML, PDF,..) Proporcionar internacionalizacin y localizacin.

CURSO STRUTS 2

INTRODUCCIN

TECNOLOGAS SOBRE LAS QUE SE APOYAN LOS FRAMEWORK WEB

FRAMEWORK WEB
Para simplificar la tarea del desarrollo de aplicaciones Web, se empez a utilizar de forma global el uso de frameworks para el diseo de las soluciones. El trmino 'framework' se utiliza constantemente en el desarrollo de software, cuya traduccin aproximada sera "marco de trabajo". Sin embargo, el concepto de framework no es sencillo de definir, a pesar de que cualquiera con experiencia programando captar su sentido de manera casi intuitiva.

DEFINICIN Un framework, en el desarrollo de software, es una estructura de soporte definida, mediante la cual otro proyecto de software puede ser organizado y desarrollado. Tpicamente, puede incluir soporte de programas, bibliotecas y un lenguaje interpretado entre otros software para ayudar a desarrollar y unir los diferentes componentes de un proyecto. Representa una arquitectura de software que modela las relaciones generales de las entidades del dominio. Provee una estructura y una metodologa de trabajo la cual extiende o utiliza las aplicaciones del dominio.

CURSO STRUTS 2

INTRODUCCIN

TECNOLOGAS SOBRE LAS QUE SE APOYAN LOS FRAMEWORK WEB FRAMEWORK WEB
Las ventajas y desventajas de usar un framework se muestran a continuacin

VENTAJAS

DESVENTAJAS

El desarrollo rpido de aplicaciones. Los componentes incluidos en un framework constituyen una capa que libera al programador de la escritura de cdigo de bajo nivel.

La reutilizacin de componentes software al por mayor. Los frameworks son los paradigmas de la reutilizacin.
El uso y la programacin de componentes que siguen una poltica de diseo uniforme. Un framework orientado a objetos logra que los componentes sean clases que pertenezcan a una gran jerarqua de clases, lo que resulta en bibliotecas ms fciles de aprender a usar.

CURSO STRUTS 2

INTRODUCCIN

TECNOLOGAS SOBRE LAS QUE SE APOYAN LOS FRAMEWORK WEB FRAMEWORK WEB
Las ventajas y desventajas de usar un framework se muestran a continuacin

VENTAJAS

DESVENTAJAS

La dependencia del cdigo fuente de una aplicacin con respecto al framework. Si se desea cambiar de framework, la mayor parte del cdigo debe reescribirse. La demanda de grandes cantidades de recursos computacionales debido a que la caracterstica de reutilizacin de los frameworks tiende a generalizar la funcionalidad de los componentes. El resultado es que se incluyen caractersticas que estn "de ms", provocando una sobrecarga de recursos que se hace ms grande en cuanto ms amplio es el campo de reutilizacin.

CURSO STRUTS 2

INTRODUCCIN

TECNOLOGAS SOBRE LAS QUE SE APOYAN LOS FRAMEWORK WEB FRAMEWORK WEB
Un framework Web, por tanto, podemos definirlo como un conjunto de componentes (por ejemplo clases en Java y descriptores y archivos de configuracin en XML) que componen un diseo reutilizable que facilita y agiliza el desarrollo de sistemas Web.

Por qu utilizar un framework Web? No es obligatorio utilizar un framework para la construccin de aplicaciones Web, pero estos ayudan mucho en la productividad y mejora en los desarrollos, permitindonos mayor simplificacin en el cdigo final. Es difcil de imaginar encontrar un desarrollo de una aplicacin Web realizada en los ltimos aos, que no utilice de un framework Web.

CURSO STRUTS 2
APACHE STRUTS 2

INTRODUCCIN

Apache Struts 2 es un framework Web totalmente nuevo, no se trata de una revisin del viejo framework Apache Struts, su arquitectura es completamente nueva, basada en el framework OpenSymphony WebWork, concretamente en su versin 2.2.

Struts 2 es un framework web de segunda generacin, que implementa el diseo de ModelaVista-Controlador (MVC), ha sido construido siguiendo las mejores y ms probadas prcticas; estas afirmaciones tambin se pueden aplicar al framework Struts 1, pero pasado los aos la comunidad advirti las limitaciones de la primera versin del framework. REQUISITOS Los requisitos bsicos de Struts 2 son el API Servlet 2.4 o superior, API JSP 2.0 o superior y Java 5 , aunque existe una versin para compilacin con la versin 1.4.

CURSO STRUTS 2
APACHE STRUTS 2
Las caractersticas generales del framework Apache Struts 2 son:

INTRODUCCIN

ARQUITECTURA

TAGS

DISEO

CONFIGURACIN

Struts 2 implementa el ciclo completo para la gestin de peticiones Web, para invocar automticamente al Modelo y despus a la Vista mostrando los resultados al cliente. Struts 2 implementa completamente la capa de controlador, pudiendo cambiarse el comportamiento del framework mediante configuracin.

CURSO STRUTS 2
APACHE STRUTS 2
Las caractersticas generales del framework Apache Struts 2 son:

INTRODUCCIN

ARQUITECTURA

TAGS

DISEO

CONFIGURACIN

Las etiquetas en Struts 2 permiten crear aplicaciones Web dinmicas con el menor nmero de lneas de cdigo. Los tags no solo representan datos de salida (HTML), sino tambin proporcionar hojas de estilo CSS creando marcas que ayudan a crear pginas con menos cdigo. Las etiquetas soportan validacin y localizacin.

CURSO STRUTS 2
APACHE STRUTS 2
Las caractersticas generales del framework Apache Struts 2 son:

INTRODUCCIN

ARQUITECTURA

TAGS

DISEO

CONFIGURACIN

Struts 2 utiliza internamente el patrn tan conocido, Modelo-VistaControlador (MVC) actuando como coordinador entre el Modelo de la aplicacin y la Vista. Los componentes de Controlador y Vista pueden unirse con otras tecnologas para desarrollar el Modelo. El framework proporciona libreras y tags para mostrar los datos dinmicamente.

CURSO STRUTS 2
APACHE STRUTS 2
Las caractersticas generales del framework Apache Struts 2 son:

INTRODUCCIN

ARQUITECTURA

TAGS

DISEO

CONFIGURACIN

Apache Struts 2 es muy flexible con respecto a la configuracin, permitiendo utilizar tanto Anotaciones , como archivos de configuracin (XML). La inicializacin de la configuracin se realiza simplemente rastreando todas las clases Java o leyendo los archivos de configuracin (XML). Adems el propio framework habilita la posibilidad de configurar su comportamiento interno mediante archivo de configuracin Properties.

CURSO STRUTS 2
APACHE STRUTS 2
Un primer boceto de la arquitectura de Struts 2:

INTRODUCCIN

Servlet Filter: es el ncleo del framework Struts 2. Interceptor: lgica que se aplica a todas las peticiones. Action: lgica de negocio que gestiona la peticin.

Result: representa la Vista del framework Struts 2, pudiendo utilizar tipos de tecnologas: JSP, FreeMarker, Velocity.

CURSO STRUTS 2
APACHE STRUTS 2
Las novedades framework Apache Struts 2 son:
TAGS OGNL

INTRODUCCIN

POJO

PORTLET

I18N

basada en anotaciones, para evitar reducir o eliminar el uso de archivos de configuracin XML.

EXTENSIBLE

INTERCEPTORS

CONFIGURACIN

AJAX

SPRING

CURSO STRUTS 2
APACHE STRUTS 2
Las novedades del framework Apache Struts 2 son:
TAGS OGNL

INTRODUCCIN

POJO

PORTLET

I18N

Capas de lgica que se aplican transversalmente a cualquier peticin, permitiendo aadir funcionalidad a una aplicacin sin hacer el cdigo dependiente del mismo

EXTENSIBLE

INTERCEPTORS

CONFIGURACIN

AJAX

SPRING

CURSO STRUTS 2
APACHE STRUTS 2
Las novedades del framework Apache Struts 2 son:
TAGS OGNL

INTRODUCCIN

POJO

PORTLET

I18N

Object-Graph Navigation Language (OGNL), un nuevo y robusto lenguaje de expresiones.

EXTENSIBLE

INTERCEPTORS

CONFIGURACIN

AJAX

SPRING

CURSO STRUTS 2
APACHE STRUTS 2
Las novedades del framework Apache Struts 2 son:
TAGS OGNL

INTRODUCCIN

POJO

PORTLET

I18N

Un nuevo API de tags que soportan reusabilidad y modificacin de los componentes de interfaz.

EXTENSIBLE

INTERCEPTORS

CONFIGURACIN

AJAX

SPRING

CURSO STRUTS 2
APACHE STRUTS 2
Las novedades del framework Apache Struts 2 son:
TAGS OGNL

INTRODUCCIN

POJO

PORTLET

I18N

Todas las clases del framework estn basadas en interfaces y las interfaces del ncleo del framework son independientes del protocolo HTTP.

EXTENSIBLE

INTERCEPTORS

CONFIGURACIN

AJAX

SPRING

CURSO STRUTS 2
APACHE STRUTS 2
Las novedades del framework Apache Struts 2 son:
TAGS OGNL

INTRODUCCIN

POJO

PORTLET

I18N

Cualquier clase puede ser utilizada como un Action, permitiendo que cualquier tipo de Bean sea un atributo de la misma para obtener los valores del formulario.

EXTENSIBLE

INTERCEPTORS

CONFIGURACIN

AJAX

SPRING

CURSO STRUTS 2
APACHE STRUTS 2
Las novedades del framework Apache Struts 2 son:
TAGS OGNL

INTRODUCCIN

POJO

PORTLET

I18N

Internacionalizacin y localizacin.

EXTENSIBLE

INTERCEPTORS

CONFIGURACIN

AJAX

SPRING

CURSO STRUTS 2
APACHE STRUTS 2
Las novedades del framework Apache Struts 2 son:
TAGS OGNL

INTRODUCCIN

POJO

PORTLET

I18N

Struts 2 tiene una integracin completa con el framework Spring.

EXTENSIBLE

INTERCEPTORS

CONFIGURACIN

AJAX

SPRING

CURSO STRUTS 2
APACHE STRUTS 2
Las novedades del framework Apache Struts 2 son:
TAGS OGNL

INTRODUCCIN

POJO

PORTLET

I18N

Temas AJAX permiten desarrollar aplicaciones Web ms dinmicas.

EXTENSIBLE

INTERCEPTORS

CONFIGURACIN

AJAX

SPRING

CURSO STRUTS 2
APACHE STRUTS 2
Las novedades del framework Apache Struts 2 son:
TAGS OGNL

INTRODUCCIN

POJO

PORTLET

I18N

Compatible con la tecnologa Portlet sin alterar el cdigo.

EXTENSIBLE

INTERCEPTORS

CONFIGURACIN

AJAX

SPRING

CURSO STRUTS 2
APACHE STRUTS 2
Comparacin con otros frameworks Web Java open source:
FRAMEWORK JSF VENTAJAS - Estndar Java EE - Existen multitud de componentes diferentes - Desarrollos rpidos y giles - Ciclo de vida completo de las peticiones - Integracin con mltiples tecnologas: JSP/JSTL, Tiles, Velocity, FreeMarker, PDF, Excel - Facilidad para testear gracias a IoC - Configuracin mediante Anotaciones, no dispone de XML - Fcil de aprender, buena documentacin - Arquitectura simple, fcil de extender - Libreras de Tags fciles de personalizar mediante FreeMarker o Velocity - Navegacin basada en controlador o en pgina - Muy productivo una vez que se conoce - Los templates son pginas HTML, muy cmodas para los diseadores Web - Multitud de mejoras desarrolladas en cada versin - Perfecto para desarrolladores Java sin conocimientos en diseo Web - Unin entre las vistas y las pginas - Comunidad activa, soporte de los propios creadores DESVENTAJAS

INTRODUCCIN

Spring MVC

- Confusin con los distintos tags - No funciona correctamente con REST o la seguridad (SSL) - No existe una nica implementacin - Configuracin compleja, muchos XML - Demasiado flexible, no existe un controlador comn - No dispone de soporte para AJAX

Stripes

- Comunidad desarrolladores pequea - No es un proyecto tan activo como el resto de frameworks - Las URL estn codificadas en los propios ActionBean - La documentacin es escasa y mal organizada - Las bsquedas por la Web la mayora de las veces apuntan al framework Struts 1 - El motor OGNL no muestra los posibles errores - Documentacin muy conceptual, no muestra ejemplos - Curva de aprendizaje compleja - Lentos ciclos de revisin del framework - Los templates HTML estn codificados en Java - Necesita una buena arquitectura OO - Todos los componentes del framework se implementan en Java

Struts 2

Tapestry

Wicket

CURSO STRUTS 2

INTRODUCCIN

RECUERDA QUE
Apache Struts 2 es un framework Web Java de ltima generacin, robusto y flexible, que usa de los ltimas tecnologas y diseo para mejorar el desarrollo de aplicaciones Web. El origen del framework Apache Struts 2 est basado en los frameworks: Struts 1 y WebWork. Las tecnologas sobre las que se apoya el framework Apache Struts 2 son: el protocolo HTTP y el API Java Servlet. Struts 2 aporta muchas novedades con respecto a los frameworks predecesores en los que est basado: Tags, arquitectura, configuracin, Spring, AJAX, I18N, Portlet, etc. La configuracin del framework Struts 2 se puede realizar mediante archivos de configuracin XML, o bien mediante Anotaciones, o por ambas tecnologas conjuntas.