java - faces - ¿Cuál es la diferencia entre JSF, Servlet y JSP?
jsp vs jsf diferencias (15)
Servlets:
La API de Java Servlet permite a los desarrolladores de Java escribir código del lado del servidor para entregar contenido web dinámico. Al igual que otras API de servidor web propietarias, la API de Servlet de Java ofreció un rendimiento mejorado sobre CGI; Sin embargo, tiene algunas ventajas adicionales clave. Debido a que los servlets fueron codificados en Java, proporcionan un enfoque de diseño orientado a objetos (OO) y, lo que es más importante, pueden ejecutarse en cualquier plataforma. Por lo tanto, el mismo código era portable a cualquier host que soportara Java. Los servlets contribuyeron enormemente a la popularidad de Java, ya que se convirtió en una tecnología ampliamente utilizada para el desarrollo de aplicaciones web del lado del servidor.
JSP:
JSP está construido sobre servlets y proporciona una solución más sencilla, basada en páginas, para generar grandes cantidades de contenido HTML dinámico para interfaces de usuario web. JavaServer Pages permite a los desarrolladores y diseñadores web simplemente editar páginas HTML con etiquetas especiales para las partes dinámicas de Java. JavaServer Pages funciona teniendo un servlet especial conocido como contenedor JSP, que se instala en un servidor web y maneja todas las solicitudes de visualización de páginas JSP. El contenedor JSP traduce una JSP solicitada en un código de servlet que luego se compila y ejecuta inmediatamente. Las solicitudes posteriores a la misma página simplemente invocan el servlet de tiempo de ejecución de la página. Si se realiza un cambio en la JSP en el servidor, una solicitud para verla desencadena otra traducción, compilación y reinicio del servlet de tiempo de ejecución.
JSF:
JavaServer Faces es un marco Java estándar para crear interfaces de usuario para aplicaciones web. Lo más importante es que simplifica el desarrollo de la interfaz de usuario, que a menudo es una de las partes más difíciles y tediosas del desarrollo de aplicaciones web.
Aunque es posible crear interfaces de usuario mediante el uso de tecnologías Java Web fundamentales (como servlets de Java y JavaServer Pages) sin un marco integral diseñado para el desarrollo de aplicaciones web empresariales, estas tecnologías centrales a menudo pueden conducir a una variedad de problemas de desarrollo y mantenimiento. Más importante, para cuando los desarrolladores logren una solución de calidad de producción, el mismo conjunto de problemas resueltos por JSF se habrán resuelto de una manera no estándar. JavaServer Faces está diseñado para simplificar el desarrollo de interfaces de usuario para aplicaciones web Java de las siguientes maneras:
• Proporciona un enfoque de desarrollo independiente del cliente centrado en los componentes para crear interfaces de usuario web, lo que mejora la productividad del desarrollador y la facilidad de uso.
• Simplifica el acceso y la administración de los datos de la aplicación desde la interfaz web del usuario.
• Administra automáticamente el estado de la interfaz de usuario entre múltiples solicitudes y múltiples clientes de una manera simple y discreta.
• Proporciona un marco de desarrollo que es amigable para una audiencia diversa de desarrolladores con diferentes conjuntos de habilidades.
• Describe un conjunto estándar de patrones arquitectónicos para una aplicación web.
[ Fuente: referencia completa: JSF ]
¿Cómo se relacionan JSP y Servlet entre sí? ¿Es JSP algún tipo de Servlet? ¿Cómo se relacionan JSP y JSF entre sí? ¿Es JSF algún tipo de JSP basado en la IU de desarrollo previo como ASP.NET-MVC?
JSP (JavaServer Pages)
JSP es una tecnología de vista Java que se ejecuta en la máquina del servidor que le permite escribir texto de plantilla en los idiomas del lado del cliente (como HTML, CSS, JavaScript, etc.). JSP admite taglibs , que están respaldados por piezas de código Java que le permiten controlar el flujo de la página o la salida de forma dinámica. Un taglib conocido es JSTL . JSP también es compatible con Expression Language , que se puede usar para acceder a datos de back-end (a través de los atributos disponibles en la página, solicitud, sesión y ámbitos de aplicación), principalmente en combinación con taglibs.
Cuando se solicita un JSP por primera vez o cuando se inicia la aplicación web, el contenedor de servlets lo compilará en una clase que extienda HttpServlet
y lo usará durante el tiempo de vida de la aplicación web. Puede encontrar el código fuente generado en el directorio de trabajo del servidor. En Tomcat , por ejemplo, es el directorio /work
. En una solicitud JSP, el contenedor de servlets ejecutará la clase JSP compilada y enviará el resultado generado (generalmente solo HTML / CSS / JS) a través del servidor web a través de una red al lado del cliente, que a su vez lo muestra en el navegador web.
Servlets
Servlet es una interfaz de programación de aplicaciones Java (API) que se ejecuta en la máquina del servidor, que intercepta las solicitudes realizadas por el cliente y genera / envía una respuesta. Un ejemplo bien conocido es el HttpServlet
que proporciona métodos para conectar solicitudes HTTP utilizando los métodos populares de HTTP , como GET
y POST
. Puede configurar HttpServlet
s para escuchar un determinado patrón de URL de HTTP, que se puede configurar en web.xml
, o más recientemente con Java EE 6 , con la anotación @WebServlet
.
Cuando se solicita un Servlet por primera vez o durante el inicio de la aplicación web, el contenedor servlet creará una instancia de él y lo guardará en la memoria durante el tiempo de vida de la aplicación web. La misma instancia se reutilizará para cada solicitud entrante cuya URL coincida con el patrón de URL del servlet. Puede acceder a los datos de solicitud mediante HttpServletRequest
y manejar la respuesta mediante HttpServletResponse
. Ambos objetos están disponibles como argumentos de método dentro de cualquiera de los métodos sobrescritos de HttpServlet
, como doGet()
y doPost()
.
JSF (JavaServer Faces)
JSF es un marco MVC basado en componentes que se construye sobre la API de Servlet y proporciona components través de taglibs que se pueden usar en JSP o en cualquier otra tecnología de vista basada en Java como Facelets . Facelets es mucho más adecuado para JSF que para JSP. Proporciona excelentes capacidades de creación de plantillas , como componentes compuestos , mientras que JSP básicamente solo ofrece <jsp:include>
para crear plantillas, por lo que se ve obligado a crear componentes personalizados con código Java en bruto (que es un poco opaco y muy tedioso trabajar en JSF) cuando desee reemplazar un grupo repetido de componentes con un solo componente. Desde JSF 2.0, JSP ha quedado en desuso como tecnología de visualización en favor de Facelets.
Al ser un marco MVC ( Model-View-Controller ), JSF proporciona el FacesServlet
como el único Controlador de solicitud-respuesta. Toma todo el trabajo de solicitud / respuesta HTTP estándar y tedioso de sus manos, como recopilar comentarios del usuario, validarlos / convertirlos, colocarlos en objetos modelo, invocar acciones y representar la respuesta. De esta manera terminará básicamente con una página JSP o Facelets (XHTML) para Ver y una clase JavaBean como Modelo . Los componentes JSF se utilizan para vincular la vista con el modelo (como lo hace su control web ASP.NET) y FacesServlet
utiliza el árbol de componentes JSF para realizar todo el trabajo.
Preguntas relacionadas
- ¿Cuál es la alternativa de Java de flujo principal a ASP.NET / PHP?
- Desarrollo web Java EE, ¿qué habilidades necesito?
- ¿Cómo funcionan los servlets? Instanciación, variables de sesión y multiproceso.
- ¿Qué es un Javabean y dónde se usan?
- ¿Cómo evitar el código Java en archivos JSP?
- ¿Qué componentes son MVC en el marco JSF MVC?
- ¿Cuál es la necesidad de JSF, cuando la IU se puede lograr desde CSS, HTML, JavaScript, jQuery?
JSF es una aplicación web que se utiliza para simplificar la integración de desarrollo de interfaces de usuario basadas en web; JSP es una tecnología basada en Java que se utiliza específicamente para ayudar a los desarrolladores de software a crear páginas web dinámicas.
JSF contiene múltiples funciones básicas, que incluyen, entre otras, Managed Beans, un sistema de componentes basado en plantillas y dos bibliotecas de etiquetas basadas en XML; JSP debe compilarse en el código de bytes de Java para que funcione correctamente.
Consulte http://www.oracle.com/technetwork/java/faq-137059.html
La tecnología JSP es parte de la familia de tecnología Java. Las páginas JSP se compilan en servlets y pueden llamar a componentes JavaBeans (beans) o componentes Enterprise JavaBeans (enterprise beans) para realizar el procesamiento en el servidor. Como tal, la tecnología JSP es un componente clave en una arquitectura altamente escalable para aplicaciones basadas en web.
Ver https://jcp.org/en/introduction/faq
R: La tecnología JavaServer Faces es un marco para la creación de interfaces de usuario para aplicaciones web. La tecnología JavaServer Faces incluye:
Un conjunto de API para: representar los componentes de UI y administrar su estado, manejar eventos y validación de entradas, definir la navegación de la página y respaldar la internacionalización y la accesibilidad.
Una biblioteca de etiquetas personalizadas de JavaServer Pages (JSP) para expresar una interfaz de JavaServer Faces dentro de una página JSP.
JSP es un servlet especializado.
JSF es un conjunto de etiquetas que puede utilizar con JSP.
JSF es un marco avanzado en el que es muy fácil de implementar la arquitectura basada en Model-View-Controller (MVC) para proyectos. La principal ventaja de JSF sobre JSP es la fácil representación dinámica de los componentes en el navegador en función de las condiciones y la fácil integración de eventos ajax.
La parte frontal de la aplicación JSF, es decir, los archivos xhtml son los que se muestran al usuario a través del navegador. Estos archivos xhtml invocan internamente beans gestionados, por ejemplo, controladores en los que se escribe la lógica de la aplicación real.
Los controladores invocan internamente varios servicios que se comunican con la base de datos (utilizando Hibernate o JPA API). Así es como sucede el flujo en breve.
JSF también se usa en combinación con RichFaces, que es un marco para dar una apariencia enriquecida a su aplicación web.
JSF + RichFaces + Hibernate / JPA es una buena tecnología para aprender con seguridad.
JSP significa JAVA SERVER PAGE ........ jsp no es un servlet. Jsp usa código y etiqueta HTML, ambos en sí mismos, no necesitas hacer un HTML y un servlet por separado. Jsp está desempeñando un papel magnífico en la aplicación web. Servlet es una clase java que desempeña un papel para hacer que su página HTML sea de estática a dinámica.
Jsp también tiene un código de servlet incorporado que no necesita ninguna compilación externa, se puede ejecutar directamente. Los cambios tendrán efecto en jsp directamente en un navegador.
Servlet necesita ser compilado (es decir, tendrá una creación de clase específica)
Jsf es un componente de vista de MVC Framework
La diferencia básica entre los Servlets y JSP es que en los Servlets escribimos el código Java y en el que incorporamos el código HTML y simplemente hay un caso inverso con JSP. En JSP escribimos el código HTML y en eso incrustamos el código Java utilizando las etiquetas proporcionadas por JSP.
Los JSP son el componente View del MVC (Model View Controller). El Controlador toma la solicitud entrante y la pasa al Modelo, que podría ser un bean que realiza algún acceso a la base de datos. La JSP luego formatea la salida utilizando HTML, CSS y JavaScript, y la salida se envía de vuelta al solicitante.
Servlet - es la capa del lado del servidor java.
- JSP - es Servlet con html
- JSF: sus componentes se basan en las etiquetas libs
- JSP: se convierte en servlet una vez cuando el servidor tiene una solicitud.
También hay situaciones en las que puede favorecer JSP sobre JSF. La naturaleza de la aplicación debe ser el factor decisivo para elegir la tecnología.
Si tiene una interacción GUI enriquecida y necesita muchas secuencias de comandos Java, entonces favorezca JSF. Básicamente, si la arquitectura de su aplicación GUI es como orientada a componentes e incluso manejada como Swing, entonces JSF es la mejor.
Si la aplicación es solo un envío de formulario simple, no se necesita mucha interacción GUI, entonces JSP podría hacerlo bien si aprender una nueva tecnología es una sobrecarga y un marco complejo es innecesario.
es cierto que JSP se convierte en servlet en el momento de la ejecución, y JSF es algo totalmente nuevo para hacer que la página web sea más legible ya que JSF permite escribir todas las estructuras de programación en forma de etiqueta.
Desde la perspectiva del navegador / cliente
JSP y JSF tienen el mismo aspecto. Según los requisitos de la aplicación, JSP es más adecuado para aplicaciones basadas en solicitud de respuesta.
JSF está dirigido a aplicaciones web basadas en eventos más ricas. Veo el evento como mucho más granular que la solicitud / respuesta.
Desde la perspectiva del servidor
La página JSP se convierte en servlet y tiene un comportamiento mínimo.
La página JSF se convierte en árbol de componentes (por FacesServlet especializado) y sigue el ciclo de vida del componente definido por la especificación.
Java Server Pages (JSP) es una tecnología java que permite a los desarrolladores y diseñadores web desarrollar rápidamente y mantener fácilmente páginas web dinámicas, ricas en información, que aprovechan los sistemas empresariales existentes. La tecnología JSP separa la interfaz de usuario de la generación de contenido, lo que permite a los diseñadores cambiar el diseño general de la página sin alterar el contenido dinámico subyacente.
Facelets es el primer lenguaje de declaración de páginas no JSP diseñado para JSF (Java Server Faces) que proporcionó un modelo de programación más simple y poderoso para los desarrolladores de JSF en comparación con JSP. Resuelve diferentes problemas que ocurren en JSP para el desarrollo de aplicaciones web.
Aquí hay una tabla que compara las características de scriplets y facetas:
JSP:means HTML+Java Code:
JSP tiene su propio ciclo de vida jsp_init () jsp_service () jsp_destroy
Después de la primera solicitud JSP convertir a archivo .java. Hay tres tipos de etiquetas que estamos usando
1.) Scriptless
<% %>
Aquí el desarrollador puede declarar todas esas cosas que el desarrollador quiere tomar los datos
2.) Etiqueta de expresión
<%= %>
Aquí el desarrollador puede usar algunos datos relacionados con la impresión.
3.) Declaración
<!% %>
Aquí el desarrollador puede declarar algunos datos relacionados con el método.
Servlet:
Servlet tiene su propio ciclo de vida.
init()
service()
destroy()
Después de la primera solicitud, el contenedor leerá los datos del archivo web.xml y luego, después de la bienvenida, se mostrará el relleno.
Ahora, después de realizar la acción, buscará la url y después de este proceso buscará el servlet en particular allí mismo. operación de servicio se llevará a cabo.
JSF:
JSF tiene su propia interfaz de usuario y su ciclo de vida puede funcionar de seis maneras,
A)Restore view phase
B)Apply request values phase
C)Process validations phase
D)Update model values phase
E)Invoke application phase
F)Render response phase
Para ui aquí para la tabla aquí estamos usando la cuadrícula del panel y hay diferentes caras para esto.
Rich Faces
Prime Faces.