Las tecnologías y los marcos de visualización de Java son bibliotecas de software basadas en la web que proporcionan la interfaz de usuario , o " capa de visualización ", de las aplicaciones web de Java . Estos marcos de aplicación se utilizan para definir páginas web y manejar las solicitudes HTTP (clics) generadas por esas páginas web. Como una subcategoría de marcos web , los marcos de la capa de vista a menudo se superponen en diversos grados con los marcos web que proporcionan otra funcionalidad para las aplicaciones web Java.
Los frameworks de capa de vista de Java a menudo afirman ser compatibles con algunos o todos los patrones de diseño modelo-vista-controlador .
De un vistazo
Marcos basados en acciones: | Apache Struts , Spring MVC |
---|---|
Marcos basados en componentes: | Apache Click , Apache Tapestry , Apache Wicket , JavaServer Faces |
Sistemas de plantillas web: | Azulejos de Apache , SiteMesh , Thymeleaf |
- JavaServer Faces (JSF), Apache Tapestry y Apache Wicket son tecnologías competitivas basadas en componentes, que abstraen el ciclo de solicitud-respuesta HTTP sin estado y la API de Java Servlet detrás de un modelo de componente orientado a objetos e impulsado por eventos.
- Por el contrario, Struts y Spring MVC Framework son marcos orientados a la acción que proporcionan una capa de abstracción más delgada sobre la API del servlet .
- Apache Tiles es un marco de trabajo de plantillas diseñado para trabajar con Struts.
- Facelets es una tecnología de creación de plantillas y definición de vistas diseñada para funcionar con JSF.
- SiteMesh se puede utilizar con cualquier JSP .
- Facelets, Tapestry y Wicket tienen sus propios enfoques de plantillas basados en HTML / XHTML .
- Apache Click utiliza plantillas de Apache Velocity basadas en HTML y Objetos Java sencillos , con JavaServer Pages opcional.
API de servlet
La API de Servlet es la base de casi todas las tecnologías Java Web View. Servlet proporciona el mecanismo básico para escribir clases Java para aplicaciones web. Los servlets pueden responder a solicitudes HTTP, crear cookies y mantener sesiones.
Páginas de JavaServer (JSP)
- Construido sobre la API de Servlet, JSP proporciona un modelo de programación de servidor centrado en documentos y basado en etiquetas, que puede generar muchas formas de contenido textual.
- El código Java puede estar incrustado en archivos JSP y se compila y ejecuta cuando se recibe una solicitud.
Apache Struts
- Struts proporciona un desacoplamiento del controlador y la vista.
- Las solicitudes son recibidas por una clase Java (controlador) que puede decidir qué vista mostrar.
- La vista real se puede escribir en diferentes tecnologías de vista, como JSP, plantilla de marcador libre, plantilla de velocidad, etc.
- Se utiliza un archivo de configuración XML para especificar la "Navegación de página", es decir, el flujo de la solicitud al controlador apropiado y qué vista mostrar en función del resultado del controlador.
- Competidor : Spring MVC, Grails
Tapiz Apache
- Un marco de vista basado en componentes.
- Las clases se escriben como POJO y el código de bytes se transforma en tiempo de ejecución
- Configurado con anotaciones y convenciones de nomenclatura en lugar de XML
- En comparación con las JSP, impone una clara separación entre el marcado HTML y el código Java.
- Los diseñadores web pueden previsualizar directamente las plantillas HTML
- Las clases de componentes modificadas se vuelven a cargar en vivo en la aplicación en ejecución para un desarrollo más rápido.
- Utiliza el patrón de navegación Publicar / Redirigir / Obtener para el envío de formularios.
- Competidor : Wicket, JSF, HybridJava
Apache Wicket
- Un marco de vista basado en componentes.
- Las páginas interactúan directamente con los componentes Java con estado en el servidor.
- Los componentes y su estado son administrados por el marco de Wicket, lo que libera al desarrollador de la aplicación de tener que usar HttpSession directamente para administrar el estado.
- No requiere XML para la configuración.
- En comparación con las JSP, impone una clara separación entre el marcado HTML y el código Java.
- Los componentes de la página web se 'insertan' en el marcado HTML desde el código.
- Competidor : Tapestry, JSF, HybridJava
JavaServer Faces (JSF) y Facelets
- Una especificación para marcos de vista basados en componentes.
- Las implementaciones de Mojarra y Apache MyFaces están disponibles
- Normalmente utiliza Facelets para plantillas basadas en XML / XHTML.
- Las clases se escriben como POJO, con anotaciones o archivos de configuración XML que se utilizan para asociarlas con plantillas de página y componentes.
- El lenguaje de expresión unificado permite vincular campos y eventos de componentes a las propiedades y métodos del bean POJO.
- Las restricciones de conversión y validación se pueden especificar en Facelets y se aplican automáticamente, lo que normalmente resulta en volver a publicar la misma página con información de error en caso de falla.
- La navegación puede realizarse a través de las reglas del archivo de configuración o puede especificarse directamente en la página.
- Puede admitir Ajax de forma transparente .
- Competidor : Wicket, Tapiz
SiteMesh
- SiteMesh es un marco de creación de plantillas HTML basado en el modelo "Decoración".
- Permite la creación de una plantilla de 'decoración' que luego se aplica a cualquier otro HTML para generar un nuevo HTML.
- El HTML recién generado contiene elementos del HTML original combinados en la plantilla.
- Esto permite que el HTML original sea muy simple y carezca de cualquier especificación de formato o diseño. La plantilla, a su vez, carece de información real.
- La combinación de los dos permite una apariencia uniforme para todas las páginas web .
- Competidor : Azulejos
Chispa - chispear
- Genere un marco de micro web construido alrededor de un sistema de enrutamiento simple
- Se ejecuta en un servidor web Jetty incorporado de forma predeterminada, pero se puede configurar para ejecutarse en otros servidores web.
- Admite tres motores de plantillas diferentes: Velocity , FreeMarker y Moustache
- Tiene como objetivo facilitar un desarrollo rápido y no utiliza anotaciones ni soluciones patentadas.
Ver también
- Lista de marcos de servicios web
- Tecnología Java Servlet
- Tecnología JavaServer Pages
- Documentación de Apache Struts 2
- Azulejos Apache
- Haga clic en Documentación del proyecto marco
- Apache Wicket
- Página de inicio de tapiz
- Página de inicio de HybridJava
- Página de inicio de Spark
- Lista de tecnologías Java