Está en la página 1de 12

Apache Struts Apache Struts es un framework gratuito de cdigo abierto para crear aplicaciones web de Java.

aplicaciones Web difieren de las pginas web convencionales en que las aplicaciones web pueden crear una respuesta dinmica. Muchos sitios web ofrecen slo las pginas estticas. Una aplicacin Web puede interactuar con bases de datos y motores de la lgica de negocio para personalizar la respuesta. aplicaciones Web basadas en JavaServer Pages veces se mezclan cdigo de base de datos, cdigo de diseo de pginas y el cdigo de control de flujo. En la prctica, nos encontramos con que a menos que estas preocupaciones se separan, ms aplicaciones se convierten en difciles de mantener. Una forma de preocupaciones por separado en una aplicacin de software es utilizar una Model-View-Controller (MVC). El modelorepresenta la base de datos de cdigo o de negocios, el Vista representa el cdigo de diseo de la pgina, y el controlador representa el cdigo de la navegacin. El marco de trabajo Struts est diseado para ayudar a los desarrolladores crear aplicaciones web que utilizan una arquitectura MVC. El marco cuenta con tres componentes clave:
y y y

A "peticin" controlador proporcionado por el desarrollador de la aplicacin que se asigna a una norma URI. Una "respuesta" controlador que transfiere el control a otro recurso que completa la respuesta. Una biblioteca de etiquetas que ayuda a los desarrolladores crear aplicaciones interactivas basadas en formularios con las pginas del servidor.

La arquitectura del marco de trabajo y las etiquetas son compatibles con palabra de moda. Struts trabaja bien con aplicaciones REST convencionales y con las tecnologas nouveau como SOAP y AJAX. El Proyecto Apache Struts El Apache Struts proyecto es la comunidad de cdigo abierto que crea y mantiene el marco de Apache Struts. El proyecto consiste en un grupo diverso de voluntarios que comparten valores comunes en materia de desarrollo

colaborativo de cdigo abierto basado en la comunidad. El Apache Struts proyecto se enorgullece de compartir estos valores con nuestra organizacin de padres: La Apache Software Foundation. El proyecto se llama "puntales" ya que el marco est destinado a proporcionar al "bases invisibles" que apoyan el desarrollo de aplicaciones profesionales. Struts proporciona el pegamento que une los diversos elementos de la plataforma estndar de Java en un todo coherente. Nuestro objetivo es aprovechar los estndares existentes mediante la produccin de las piezas que faltan tenemos que crear aplicaciones de nivel empresarial que son fciles de mantener en el tiempo. El Apache Struts proyecto ofrece dos versiones principales de la infraestructura de Struts. Struts 1 es reconocido como el marco de aplicacin web ms popular para Java. El marco 1.x est maduro, bien documentado, y un amplio apoyo. Struts 1 es la mejor opcin para los equipos que valoran soluciones probadas a problemas comunes. Struts 2 fue conocido originalmente como WebWork 2 . Despus de trabajar de forma independiente durante varios aos, y Struts comunidades WebWork unido sus fuerzas para crear Struts 2. El marco 2.x es la mejor opcin para los equipos que valoran soluciones elegantes a problemas difciles.

CAPITULO II: Marco Terico 2.1 Antecedentes del FRAMEWOK STRUTS

2.4 Beneficios y Ventajas Ventajas de Struts El uso del mecanismo de tags JSP Promueve el reuso de cdigo y cdigo abstracto de Java del archivo JSP. Esto permite una integracin agradable en la herramienta de desarrollo basada en JSP que permite autora con tags Librera Tag

Struts provee un punto de partida si ests comenzando a aprender la tecnologa de tags JSP tag. Open source Est disponible el cdigo y todos pueden usar las revisiones del cdigo Implementacin simple de MVC Struts ofrece alguna comprensin si deseas crear tu propia implementacin. Manejo del problema de espacio Divide y vencers es una forma agradable de resolver el problema y hacerlo manejable. Por su puesto, el problema se hace ms complejo y necesita ms manejo.

1.

Centralizado basado en archivos de configuracin. valores de Struts / cartografa se representan en XML o archivos de propiedad. Esta articulacin flexible significa que muchos cambios se pueden hacer sin modificar o recompilar el cdigo de Java, y que los cambios al por mayor puede hacerse editando un solo archivo. Este enfoque tambin permite a los desarrolladores de Java y Web centrarse en sus tareas especficas (aplicacin de la lgica de negocio, la presentacin de ciertos valores a los clientes, etc) sin necesidad de conocer acerca de la disposicin general del sistema.

2.

Frijoles formulario.

3.

Etiquetas Bean. Struts proporciona un conjunto de etiquetas JSP personalizadas que le permiten fcilmente la salida de las propiedades de los componentes JavaBeans.

4.

Etiquetas HTML. Struts proporciona un conjunto de etiquetas JSP personalizadas para crear formularios HTML que estn asociados con componentes JavaBeans. Este bean / asociacin forma sirve para dos propsitos tiles:

Le permite obtener los valores iniciales de campo de formulario-a partir de objetos Java.

Le permite volver a mostrar las formas con algunos o todos los valores introducidos previamente intacta.

5.

Formulario de Validacin de campo. Struts tiene un validador robusto, extensible que se puede utilizar para validar de manera uniforme sus campos de formulario. Esta validacin se puede realizar en el servidor (en Java), o ambos en el servidor y en el cliente (en JavaScript).

6.

"Cdigo de Plomera", que figura en el marco Struts. Asignacin de parmetros de solicitud HTTP a objetos Java Struts est a cargo de, por ejemplo. Usted no tiene que hacerlo. Esto le permite centrarse ms en el problema de dominio en lugar de la construccin de infraestructuras.

7.

Una buena documentacin y un montn de libros. Si tiene que dejar el proyecto y / o alguna otra persona tiene que mantener a continuacin, utilizando una conocida y bien documentada marco hacer ese trabajo mucho ms fcil. Un marco homebrewed no pueden igualar eso.

8.

Generales de pruebas con usuarios. Desde Struts se utiliza en muchas aplicaciones web el marco obtendr mir a los ojos de muchos ms que cualquier cosa que pudiera escribir en paz. Por lo general, pero no siempre, eso significa que cualquier problema que tenga se habr visto por otra persona (y esperemos que resolverse) en primer lugar.

Desventajas de Struts Cambio

El framework est sufriendo una rpida cantidad de cambios. Han ocurrido una gran cantidad de cambios desde Struts 0.5 y 1.0. Se debe descargar la versin ms reciente para evitar mtodos desaprobados. Se deben modificar muchas veces los cdigos a causa de los cambios en struts. Nivel correcto de abstraccin Una de las libreras de tags de Struts es el Tag Logic, el cual maneja generacin de condicionales de salida, pero no previene al desarrollador de los problemas con el cdigo Java. Cual sea el tipo de framework que decidas usar, debes entender el entorno en el cual se despliega y se mantiene. Pero es ms fcil decirlo que hacerlo. Libertad limitada Struts est basado en una solucin MVC, lo que significa ser implementado con HTML, archivos JSP, y servlets. Soporte de aplicaciones J2EE Struts requiere un contenedor que soporte especificaciones JSP 1.1 y Servlet 2.2. Esto solo no resolver los problemas de instalacin, a menos que se utilice Tomcat 3.2. Complejidad Separar el problema en partes introduce complejidad. Con los constantes cambios ocurriendo, esto puede ser frustrante a veces.

2.5 Comparacion con otras Software FRAMEWORK

JavaServer Faces (JSF) vs Struts

Yo tendra que decir, la pregunta ms comn o comentarios entr en la lnea de la comparacin de Struts a JSF. Pens que sera una buena idea comparar con Struts JSF mediante la evaluacin de varias caractersticas que un arquitecto de aplicaciones que buscan en un marco de aplicacin Web. En este artculo se comparan caractersticas. Aquellos en los que me centrar incluyen:
y y y

Madurez Controlador de flexibilidad / control de eventos Navegacin

y y y

Pgina de desarrollo Integracin Extensibilidad

Ciertamente, hay otros lugares en los que es posible que desee hacer una comparacin, como el rendimiento, pero me centrar en el set que acabo de mencionar. Tambin voy a dedicar ms tiempo a las secciones de Control y Navegacin, ya que son el corazn de los marcos. El rendimiento de JSF es especfico a la aplicacin de proveedor, y siempre a la gente a realizar sus propias pruebas de rendimiento en contra de su propio conjunto de requisitos, porque hay demasiados factores que pueden afectar al rendimiento. Una evaluacin del desempeo, sera injusto.Otras reas tales como diseo de pgina, la validacin y manejo de excepciones se quedaron tambin en el inters del ahorro de espacio.

Madurez
Struts ha estado alrededor por algunos aos y tiene la ventaja de la madurez. S de varios sistemas de produccin de xito que se construyeron utilizando la infraestructura de Struts. Un ejemplo es el WebSphere Application Server basado en la Web de la consola administrativa. JavaServer Faces (JSF), sin embargo, ha sido en el proyecto durante 2 aos. Varias compaas, incluyendo IBM, as como el creador de Struts, Craig McClanahan, han contribuido a la creacin de JSF durante ese tiempo. Sin embargo, tomar algn tiempo para ver algunos sistemas desplegados. Struts definitivamente tiene la ventaja en esta categora. Con JSF, sin embargo, usted puede confiar en los diferentes niveles de apoyo en funcin de la aplicacin que usted elija. Por ejemplo, el marco JSF dentro de WebSphere Studio viene con soporte de IBM.

Controlador de flexibilidad / control de eventos


Uno de los principales objetivos de Struts fue el de implementar un marco que utiliz de modelo de Sun 2 Marco y la reduccin de las tareas comunes y repetitivas a menudo en Servlets y JSP desarrollo. El corazn de Struts es el controlador. Struts utiliza el Front Controller Patrn y Patrn de comandos. Un servlet nico, que es una peticin HTTP parmetros traduce en un ActionForm Java, y pasa el ActionForm en una clase de accin de Struts, que es una orden. El URI que indica la clase de accin para ir. El marco de trabajo Struts tiene un controlador de eventos nico para la solicitud HTTP. Una vez que la solicitud se cumple, la accin devuelve el resultado de nuevo al controlador frontal, que luego se utiliza para elegir el lugar para navegar siguiente. La interaccin se muestra en la Figura 1.

[Figura 1]

JSF utiliza el controlador de la pgina de patrones. Aunque no es un servlet solo se enfrenta a cada solicitud se procesa, el trabajo del servlet va a recibir una se enfrenta a la pgina con los componentes. A continuacin, se disparan los eventos de cada componente y hacer que los componentes con un conjunto de herramientas de procesamiento. Los componentes tambin se puede enlazar a los datos del modelo. Las caras del ciclo de vida se ilustra en la Figura 2.

[Figura 2]

JSF es el ganador en esta rea, ya que aade muchas ventajas de un controlador frontal, pero al mismo tiempo le da la flexibilidad del Contralor pgina. JSF puede tener varios controladores de eventos en una pgina, mientras que Struts est orientado a un evento por solicitud. Adems, con Struts, su ActionForms tienen que ampliar las clases de Struts, la creacin de otro nivel de diseo aburrido de codificacin o malo de obligar a su modelo a ActionForms. JSF, por otro lado, ofrece a los desarrolladores la capacidad de conectar en el modelo sin romper capas. En otras palabras, el modelo sigue siendo conscientes de JSF.

Navegacin
La navegacin es una caracterstica clave de ambos Struts y JSF. Ambos marcos tienen un modelo de navegacin declarativa y definir la navegacin mediante reglas dentro de su archivo de configuracin XML. Hay dos tipos de navegacin: navegacin esttica - cuando una pgina se deriva directamente a la siguiente, y navegacin dinmica - cuando alguna accin o de la lgica que determina la pgina a donde ir. Ambos JSF y Struts soporta actualmente dos tipos de navegacin. Struts Struts utiliza la nocin de los delanteros para definir la navegacin. Sobre la base de una

cuerda, la infraestructura de Struts decide qu JSP para adelante y hacer. Puede definir un avance mediante la creacin de una accin tal como se muestra en el fragmento a continuacin. <accion path="/myForward" forward="/target.jsp"> </ accion> Struts soporta el reenvo dinmico mediante la definicin de un avance concreto en una definicin de accin. Struts permite una accin que enva mltiples.
<action-mappings> <accion name="myForm" path="/myACtion" scope="request" name="success" type="strutsnav.actions.MyAction"> <forward path="./target.jsp"> </ siguiente> name="error" <forward path="./error.jsp"> </ siguiente> </ accion> </ action-mappings>

Los desarrolladores pueden entonces elegir qu programacin hacia adelante para volver.
pblica ActionForward ejecutar (cartografa ActionMapping, forma ActionForm, HttpServletRequest request, response HttpServletResponse) throws Exception {errores ActionErrors = ActionErrors nuevo (); ActionForward adelante = ActionForward nuevo (); / / valor de retorno myForm MyForm = (MyForm) forma; try {/ / hacer algo aqu} catch (Exception e) {/ / Informe el error con el nombre adecuado y la identificacin. errores.add ("nombre", ActionError nueva ("id")); adelante = mapping.findForward (el "xito"); retorno (hacia adelante);} = mapping.findForward hacia adelante (el "xito"); retorno (hacia adelante); }

JSF esttica de navegacin JSF admite la navegacin mediante la definicin de normas de navegacin en los rostros archivo de configuracin. El siguiente ejemplo muestra una regla de navegacin que define cmo se va a la pgina siguiente.
<navigation-rule> <from-view-id> / FromPage.jsp </ a-Identificacin del punto de vista-> <navigation-case> xito <from-outcome> </ a partir de resultados de> <to-viewid> / ToPage . jsp </ a-ver-id> </ navegacin de los casos> </ regla de navegacin->

Sin embargo, a diferencia de Struts, JSF navegacin se aplica en el nivel de pgina y puede tener un carcter independiente. La accin est codificado en el componente que permite el control de grano ms fino en la pgina. Usted puede tener varios componentes en la pgina de definir acciones diferentes que comparten la misma regla de navegacin. hx <: tipo commandExButton = "submit" value = "Enviar" styleClass = "commandExButton" id = "button1" action = "xito" /> JSF dinmico de navegacin JSF tambin admite la navegacin dinmica al permitir que los componentes de ir a un controlador de la accin. hx <: tipo commandExButton = "submit" value = "Enviar" styleClass = "commandExButton" id = "button1" action = "# {} Pc_FromPage.doButton1Action "/>

Los desarrolladores pueden codificar los controladores de la accin de cualquier clase para tomar la decisin de navegacin dinmica.
pblica doButton1Action String () {return "xito";}

A pesar de que las normas de navegacin no es necesario especificar la accin a fin de apoyar la navegacin dinmica, JSF permite definir la accin de la regla de navegacin, si as lo desea. Esto le permite obligar a una regla de navegacin especfica para ir a travs de una accin.
<navigation-rule> <from-view-id> / FromPage.jsp </ a-ver-id> <navigation-case> <fromaction> pc_FromPage.doButton1Action # {} </ a de accin> <-de los resultados <> xito o de resultado-> <to-view-id> / ToPage.jsp </ <> a-vista-id / <> de navegacin de los casos / regla de navegacin->

Tanto Struts y JSF son bastante flexibles a partir de un punto de vista de navegacin, pero JSF permite un enfoque ms flexible y un mejor diseo ya que la regla de navegacin est disociada de la accin. Struts te obliga a conectar en una accin, ya sea por un maniqu URI o una clase de accin. Adems, es ms fcil de JSF para tener una pgina con las normas de navegacin diferentes sin tener que codificar una gran cantidad de lgica if-else.

Pgina de Desarrollo
JSF fue construido con un modelo de componentes en cuenta para permitir que los desarrolladores de herramientas para apoyar el desarrollo RAD. Struts no tena esa visin. Aunque el marco de trabajo Struts proporciona bibliotecas de enlazar en las formas de accin y ofrece algunos servicios auxiliares, que se orienta hacia un JSP-y el enfoque centrado en HTTP. SF proporciona la capacidad de construir componentes de una variedad de tecnologas de la vista y lo hace de tal manera que se toolable. JSF, por lo tanto, es el ganador en esta rea.

Integracin
Struts fue diseado para ser modelo neutral, lo que no hay ganchos especiales en una capa del modelo. Hay utilidades de copia vista basada reflexin-, pero eso es todo. Por lo general, los datos de la pgina debe ser movida de un Formulario de accin en otro formato de entrada del modelo y requiere la codificacin manual. La clase ActionForm, proporciona una capa adicional de tediosas de codificacin y la transicin del estado. JSF, por otro lado, oculta los detalles de los datos dentro del rbol de componentes. componentes ricos, tales como tablas de datos se puede enlazar a cualquier clase Java. Esto permite el desarrollo de gran alcance RAD, tales como la combinacin de JSF y SDO. Voy a hablar ms de esto en futuros artculos.

Extensibilidad

Tanto Struts y JSF ofrece oportunidades para ampliar el marco para satisfacer las necesidades en expansin. El gancho principal de Struts es una clase RequestProcessor que dispone de varios mtodos de devolucin de llamada a travs del ciclo de vida de una solicitud. Un desarrollador puede extender esta clase para reemplazar o mejorar el marco. JSF proporciona una funcionalidad equivalente por lo que le permite extender interfaces especiales del ciclo de vida. Adems, JSF totalmente separa la fase de hacer desde el controlador que permite a los desarrolladores proporcionar a sus herramientas de representacin por parte de la construccin de componentes personalizados. Esta es una de las caractersticas de gran alcance en Struts JSF que no presta. JSF tiene claramente la ventaja en esta rea.

Conclusin
En general, JSF es un marco mucho ms flexible, pero esto no es casual. Struts es un marco robusto y funciona bien. JSF fue realmente capaces de aprender mucho de los proyectos de Struts. Veo JSF convertirse en un marco dominante debido a su control flexible y de navegacin. Por otra parte, JSF se construye con la integracin y extensibilidad en mente. Si usted est comenzando un nuevo proyecto hoy en da, habra que considerar muchos factores. Si usted tiene un programa agresivo con no mucho tiempo para ocuparse de la evaluacin de diferentes proveedores o la negociacin con soporte para las nuevas implementaciones de JSF, Struts puede ser el camino a seguir. Pero a partir de una direccin estratgica y el modelo de programacin, JSF deben ser objeto de nuevas aplicaciones. Animo a los desarrolladores tomar tiempo para aprender JSF y comenzar a utilizarlas para nuevos proyectos. Adems, me gustara considerar la eleccin de los proveedores de JSF basada en el set de componentes y herramientas RAD. JSF no es ms fcil de lo puntales en el desarrollo de la mano, pero el uso de una herramienta RAD JSF, como WebSphere Studio puede aumentar su productividad.

http://homepage1.nifty.com/algafield/barcia.html

http://150.185.75.30/atiwiki/index.php/STRUTS