Es una tecnología y framework para aplicaciones Java basadas en web que simplifica el desarrollo de interfaces de usuario en aplicaciones Java EE. JSF usa JavaServer Pages (JSP) como la tencología que permite hacer el despliegue de las páginas.
Características de JSF
- Un conjunto de APIs para representar componentes de una interfaz de usuario y administrar su estado, manejar evenetos, validar entreda, definir un esquema de navegación de las páginas y soporte.
- Un conjunto por defecto de componentes para la interfaz de usuario.
- Dos bibliotecas de etiquetas personalizadas para JavaServer Pages que permiten expresar una interfaz JavaServer Faces dentro de una página JSP.
- Un modelo de eventos en el lado del servidor.
APIs JSF
Una API para:Representar componentes de Interfaz de Usuario (UI) y gestionar su estado.
- Manejar eventos, validar en el servidor y conversión de datos.
- Definir la navegación de páginas.
- Soporte de internacionalización y accesibilidad.
Dos librerías de etiquetas JSP personalizadas para expresar componentes en una página JSP y enlazar los componentes a objetos del servidor.
Diferencia entre JSP/JSF/SPRING
Diferencia entre JSP/JSF/SPRING
JSP:
- Era el framework para la generación de páginas web anterior a que se definiera JSF.
- Se basa en generar un fichero .jsp que es "traducido" a una clase
Servlet
que a su vez es compilada y ejecutada. - Hay dos versiones: con scriptlets (
<% %>
) que se considera obsoleta, o con la Java Standard Template Library (JSTL). La última implementa el MVC, mientras que con la primera normalmente todo el código va en el propio JSP.
JSF:
- Es un framework para la generación de páginas web dentro de una aplicación web. Sigue la filosofía MVC.
- Tiene dos "modos": usando JSP o Facelets. Inicialmente se usaban JSPs, pero a partir de la versión 1.2 por defecto se usan Facelets (componentes XML). Normalmente se confunde "JSF" por "Facelets" (si buscas "componentes JSF" encontrarás librerías de Facelets).
- Estandariza cuestiones como navegación entre páginas y la internacionalización de recursos que en JSP simplemente no estaban definidas.
Spring:
- Es un stack alternativo a Java EE. Como tal, proporciona una serie de servicios similares a los del stack (por ejemplo autenticación y seguridad, ORM/acceso a datasources, etc.).
- No reemplaza completamente el stack; por ejemplo es muy común integrar una capa web JSP o JSF con una base Spring, o usar componentes del stack (como la API de Validation) dentro de Spring o viceversa (usar Hibernate en vez de JPA dentro de una aplicación Java EE).
Ventajas y Desventajas
- Una de las grandes ventajas de la tecnología JavaServer Faces es que ofrece una clara separación entre el comportamiento y la presentación. Las aplicaciones Web construidas con tecnología JSP conseguían parcialmente esta separación. Sin embargo, una aplicación JSP no puede mapear peticiones HTTP al manejo de eventos específicos del componentes o manejar elementos UI como objetos con estado en el servidor.
- La tecnología JavaServer Faces permite construir aplicaciones Web que implementan una separación entre el comportamiento y la presentación tradicionalmente ofrecidas por arquitectura UI del lado del cliente. JSF se hace fácil de usar al aislar al desarrollador del API de Servlet.
- La separación de la lógica de la presentación también le permite a cada miembro del equipo de desarrollo de una aplicación Web enfocarse en su parte del proceso de desarrollo, y proporciona un sencillo modelo de programación para enlazar todas las piezas.
- Otro objetivo importante de la tecnología JavaServer Faces es mejorar los conceptos familiares Disadvantage de componente-UI y capa-Web sin limitar a una tecnología de script particular o un lenguaje de marcas. Aunque la tecnología JavaServer Faces incluye una librería de etiquetas JSP personalizadas para representar componentes en una página JSP, los APIs de la tecnología JavaServer Faces se han creado directamente sobre el API JavaServlet. Esto permite hacer algunas cosas: usar otra tecnología de presentación junto a JSP, crear componentes propios personalizados directamente desde las clases de componentes, y generar salida para diferentes dispositivos cliente. Así, se podrán encapsular otras tecnologías como Ajax en componentes JSF, haciendo su uso más fácil y productivo, al aislar al programador de ellas.
- JavaServer Faces ofrece una gran cantidad de componentes opensource para las funcionalidades que se necesiten. Los componentes Tomahawk de MyFaces y ADFFaces de Oracle son un ejemplo. Además, también existe una gran cantidad de herramientas para el desarrollo IDE en JSF al ser el estándar de JAVA.
- La tecnología JavaServer Faces proporciona una rica arquitectura para manejar el estado de los componentes, procesar los datos, validar la entrada del usuario, y manejar eventos.
- Además, ofrece una rápida adaptación para nuevos desarrolladores.
- Su naturaleza como estándar hace que la evolución de JSF no sea tan rápida como pueda ser la de otros entornos como WebWork, Wicket, Spring , etc.
No hay comentarios:
Publicar un comentario