Struts
Apache Struts es un framework de código abierto para desarrollar aplicaciones Web Java EE. Utiliza y amplía la Java Servlet API para animar a los desarrolladores a adoptar la arquitectura Model-View-Controller (MVC).
Esta infraestructura permite el diseño e implementación de aplicaciones Web por grandes grupos de personas. En las palabras de otros, diseñadores, componentes de software, los desarrolladores pueden gestionar su propia parte del proyecto de manera disociada.
Struts permite la estructuración de una aplicación Java como un conjunto de acciones que representan los eventos desencadenados por los usuarios de la aplicación. Estas acciones se describen en un archivo de configuración XML que describe los posibles caminos entre las distintas acciones. Además de esto, Struts automatiza la gestión de algunos aspectos como la validación de los datos introducidos por los usuarios a través de la interfaz de la aplicación. No hay necesidad de venir de control de codificación de cada uno de los datos proporcionados por un usuario, simplemente describir los controles que deben realizarse en un archivo XML dedicado a esta tarea.
El uso de Struts, el desarrollador simplifica su trabajo en vistas y controladores del patrón MVC modelo vista controlador. Pero sería inapropiado utilizar este marco en proyectos más pequeños, ya que introduce cierta complejidad. Struts muestra su poder en las aplicaciones de una cierta escala.
Struts es una aplicación madura y bien documentada. Se enfrenta a nueva infraestructura MVC más ligero como Apache Tapestry y JSF.
Otro marco no MVC basado en Java, incluye Ruby on Rails, Zend, Django, Symfony, Catalyst y Turbogears.