Struts vs Struts2
Struts (también conocido como Apache Struts o Struts 1) es un marco de código abierto multiplataforma escrito en Java, destinado a desarrollar aplicaciones web Java EE. Fue uno de los marcos iniciales de aplicaciones web de Java EE. Pero pocos años después, llegó Struts2 (o Struts versión 2), y fue un marco de aplicación web completamente diferente y altamente mejorado. Había abordado algunas cuestiones que se percibían como deficiencias en la versión inicial. Ahora, Struts2 se está utilizando mucho para desarrollar aplicaciones Java EE en el mundo..
Que es struts?
El marco Struts (Struts 1) fue uno de los marcos iniciales de aplicaciones web para desarrollar aplicaciones web Java EE. Struts Framework fomenta el uso de la arquitectura MVC (Model-View-Controller). Es una extensión de Java Servlet API. Craig McClanahan es el creador original de Struts. Inicialmente se conocía como Jakaratha Struts y se mantuvo bajo el Proyecto Jakarta de Apache Software Foundation. Se libera bajo la licencia Apache 2.0. El marco de Struts se denomina marco basado en solicitudes y está compuesto por tres componentes principales: un controlador de solicitudes, un controlador de respuestas y una biblioteca de etiquetas. El URI estándar (Identificador uniforme de recursos) se asigna a un controlador de solicitudes. El manejador de respuestas es responsable de transferir el control. Para crear aplicaciones interactivas con formularios, se pueden utilizar las funciones que ofrece la biblioteca de etiquetas. Struts admite aplicaciones REST y diversas tecnologías como SOAP, AJAX, etc..
Que es struts2?
Se percibió que el marco de Struts contenía ciertas limitaciones (principalmente la falta de separación entre la capa de presentación, la capa de manejo de solicitudes y el modelo) por parte de los desarrolladores de Java EE en ese momento, y en consecuencia, pocos años después, llegó Struts2. En realidad, Struts2 era completamente diferente de Struts. De hecho, ni siquiera compartieron la misma base de código porque Struts2 fue simplemente el resultado de cambiar el nombre del marco WebWork 2.2 (es decir, las comunidades WebWork y Struts que trabajaron por separado durante algún tiempo, finalmente se unieron para crear Struts2). Su versión estable actual es la versión 2.2.3, que se lanzó en mayo de 2011..
¿Cuál es la diferencia entre Struts y Struts2?
Uno de los muchos problemas del marco Struts fue la necesidad de programar clases abstractas en lugar de interfaces. Esto fue resuelto por el framework Struts2. Por ejemplo, el marco de Struts requería que las clases de Acción se extendieran desde las clases base abstractas, pero las Acciones de Struts2 pueden implementar una interfaz de Acción. Debido a las diferencias en el modelo de subprocesamiento entre las dos versiones, los problemas de seguridad de subprocesos que surgieron en el marco de Struts con respecto a los objetos de Acción no se producen en el marco de Struts2. El motivo es que los objetos de Acción de Struts2 se crean instancias para cada solicitud, mientras que un marco de Acción en Struts solo tiene una instancia para manejar todas las solicitudes de esa Acción. A diferencia del Marco de Acciones en Struts, las Acciones de Struts2 no dependen de la API de Servlet.
La capacidad de prueba de Struts2 es comparativamente más alta que la de Struts. Puede probar las acciones de Struts2 simplemente siguiendo los tres pasos: creación de instancias, configuración de propiedades e invocación de métodos. La recolección de entradas es más fácil en el marco de Struts2 ya que las propiedades de Acción se usan como propiedades de entrada, sin tener que mantener un segundo objeto de entrada. Además del soporte para la integración de JSTL (que está presente en Struts), el marco de Struts2 puede usar OGNL (Lenguaje de notación de gráficos de objetos) más poderoso y expresivo. Para la conversión de tipos, Strut y Strut2 usan Commons-Beanutils y OGNL, respectivamente. Debido a estas mejoras, el marco de Struts2 se considera un marco muy maduro y es muy popular entre los programadores de Java EE. Por otro lado, el framework Struts ahora se considera obsoleto..