Pregunta ¿Cuál es la diferencia entre JSF, Servlet y JSP?


¿Cómo se relacionan JSP y Servlet entre sí? ¿JSP es una especie de Servlet? ¿Cómo se relacionan JSP y JSF entre sí? ¿Es JSF algún tipo de JSP basado en UI preconstruido como ASP.NET-MVC?


731
2018-01-19 17:15


origen


Respuestas:


JSP (Páginas JavaServer)

JSP es un Tecnología de vista de Java ejecutándose 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 apoya taglibs, que están respaldados por piezas de código Java que le permiten controlar el flujo de página o la salida de forma dinámica. Un conocido taglib es JSTL. JSP también es compatible Lenguaje de Expresión, que se puede usar para acceder a los datos de back-end (a través de 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 se extenderá HttpServlet y utilízalo durante la vida útil de la aplicación web. Puede encontrar el código fuente generado en el directorio de trabajo del servidor. En por ejemplo Gato, es el /work directorio. En una solicitud JSP, el contenedor servlet ejecutará la clase compilada JSP y enviará la salida generada (normalmente solo HTML / CSS / JS) a través del servidor web a través de una red al lado del cliente, que a su vez la mostrará en el navegador web.

Servlets

Servlet es un Interfaz de programación de aplicaciones Java (API) ejecutándose en la máquina del servidor, que intercepta las solicitudes hechas por el cliente y genera / envía una respuesta. Un ejemplo bien conocido es el HttpServlet que proporciona métodos para enganchar HTTP solicitudes utilizando el popular Métodos HTTP como GET y POST. Puedes configurar HttpServlets para escuchar un cierto patrón HTTP URL, que es configurable en web.xml, o más recientemente con Java EE 6, con @WebServlet anotación.

Cuando se solicita un servlet por primera vez o durante el inicio de la aplicación web, el contenedor servlet creará una instancia y lo mantendrá en la memoria durante la 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 por HttpServletRequest y manejar la respuesta por HttpServletResponse. Ambos objetos están disponibles como argumentos de método dentro de cualquiera de los métodos reemplazados HttpServlet, como doGet() y doPost().

JSF (JavaServer Faces)

JSF es un marco MVC basado en componentes que está construido sobre la API de Servlet y proporciona componentes a través de taglibs que se pueden usar en JSP o en cualquier otra tecnología de visualización basada en Java, como Facelets. Facelets es mucho más adecuado para JSF que JSP. Se trata de proporciona grandes capacidades de creación de plantillas como componentes compuestos, mientras que JSP básicamente solo ofrece <jsp:include> para crear plantillas, de modo que está obligado a crear componentes personalizados con código Java sin procesar (lo que es un poco opaco y mucho trabajo tedioso en JSF) cuando quiere reemplazar un grupo repetido de componentes con un solo componente. Desde JSF 2.0, JSP ha quedado obsoleto como tecnología de visualización a favor de Facelets.

Como ser un MVC (Modelo-Vista-Controlador) marco, JSF proporciona el FacesServlet como única solicitud-respuesta Controlador. Toma todo el trabajo de solicitud / respuesta HTTP estándar y tedioso de sus manos, como recopilar datos del usuario, validarlos / convertirlos, ponerlos en objetos modelo, invocar acciones y representar la respuesta. De esta forma terminas 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 su control web ASP.NET) y el FacesServlet usa el Árbol de componentes JSF para hacer todo el trabajo.

Preguntas relacionadas


1107
2018-01-19 22:39



Ver http://www.oracle.com/technetwork/java/faq-137059.html

La tecnología JSP es parte de Java   familia de tecnología. Las páginas JSP son   compilado en servlets y puede llamar   Componentes de JavaBeans (frijoles) o   Componentes de Enterprise JavaBeans   (enterprise beans) para realizar   procesamiento en el servidor. Como tal, JSP   la tecnología es un componente clave en una   arquitectura altamente escalable para   aplicaciones basadas en web.

Ver https://jcp.org/en/introduction/faq

A: la tecnología JavaServer Faces es una   marco para construir interfaces de usuario   para aplicaciones web. Caras de JavaServer   La tecnología incluye:

Un conjunto de API para: representar la interfaz de usuario   componentes y administrar su estado,   manejo de eventos y validación de entrada,   definición de navegación de página, y   apoyando la internacionalización y   accesibilidad.

Una etiqueta personalizada JavaServer Pages (JSP)   biblioteca para expresar un JavaServer   Interfaz de caras dentro de una página JSP.

JSP es un tipo especializado de servlet.

JSF es un conjunto de etiquetas que puede usar con JSP.


69
2018-01-19 17:28



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 solicitudes de respuesta.

JSF está destinado a aplicaciones web basadas en eventos más completos. Veo el evento como mucho más granular que la solicitud / respuesta.

Desde la perspectiva del servidor

La página JSP se convierte a servlet, y solo tiene un comportamiento mínimo.

La página JSF se convierte al árbol de componentes (por FacesServlet especializado) y sigue el ciclo de vida del componente definido por la especificación.


27
2018-04-06 16:24



Servlets: 

La API de Java Servlet permite a los desarrolladores de Java escribir el código del lado del servidor   para entregar contenido web dinámico. Al igual que otro servidor web propietario   API, la API Java Servlet ofreció un mejor rendimiento que CGI;   sin embargo, tiene algunas ventajas adicionales clave. Porque los servlets eran   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   el código era portátil para cualquier host que admitiera Java. Servlets enormemente   contribuido a la popularidad de Java, ya que se convirtió en una herramienta ampliamente utilizada   tecnología para el desarrollo de aplicaciones web en el lado del servidor.

JSP:

JSP está construido sobre servlets y proporciona una base más simple basada en páginas   solución para generar grandes cantidades de contenido HTML dinámico para la Web   interfaces de usuario. JavaServer Pages habilita desarrolladores web y diseñadores   simplemente edite páginas HTML con etiquetas especiales para la dinámica, Java   porciones. JavaServer Pages funciona teniendo un servlet especial conocido como   un contenedor JSP, que está instalado en un servidor web y maneja todo   Solicitudes de visualización de página JSP. El contenedor JSP traduce un pedido   JSP en código de servlet que luego se compila e inmediatamente se ejecuta.   Las solicitudes posteriores a la misma página simplemente invocan el servlet de tiempo de ejecución   para la página. Si se realiza un cambio en el JSP en el servidor, una solicitud   para verlo desencadena otra traducción, compilación y reinicio de   el servlet de tiempo de ejecución

JSF: 

JavaServer Faces es un framework Java estándar para usuarios de construcción   interfaces para aplicaciones web. Lo más importante, simplifica el   desarrollo de la interfaz de usuario, que a menudo es una de las más   partes difíciles y tediosas del desarrollo de aplicaciones web.
  Aunque es posible construir interfaces de usuario utilizando fundamentos   Tecnologías web Java (como servlets de Java y JavaServer Pages)   sin un marco integral diseñado para la Web empresarial   desarrollo de aplicaciones, estas tecnologías centrales a menudo pueden conducir a   una variedad de problemas de desarrollo y mantenimiento. Más importante, por   el momento en que los desarrolladores logran una solución de calidad de producción, el   el mismo conjunto de problemas resueltos por JSF se han resuelto en una   manera no estándar. JavaServer Faces está diseñado para simplificar el   desarrollo de interfaces de usuario para aplicaciones web Java en el   siguientes formas:
  • Proporciona un componente centrado,   enfoque de desarrollo independiente del cliente para construir un usuario web   interfaces, mejorando así la productividad del desarrollador y la facilidad de uso.
  • Simplifica el acceso y la gestión de los datos de la aplicación desde el   Interfaz de usuario web.
  • Gestiona automáticamente la interfaz de usuario   estado entre múltiples solicitudes y múltiples clientes en un simple y   manera discreta.
  • Proporciona un marco de desarrollo que es   amigable para una audiencia de desarrolladores diversos con diferentes conjuntos de habilidades.
  • Describe un conjunto estándar de patrones arquitectónicos para una web   solicitud.

[ Fuente : Referencia completa: JSF ]


18
2017-07-31 06:48



También hay situaciones en las que puede favorecer a JSP sobre JSF. La naturaleza de la aplicación debe ser el factor decisivo para elegir la tecnología.

Si tiene una interacción rica en GUI y mucha secuencia de comandos Java necesaria, entonces apóyelo en favor de JSF. Básicamente, si la arquitectura de su aplicación GUI es similar a la de los componentes e incluso impulsada como Swing, JSF es la mejor.

Si la aplicación es solo una presentación simple, no se necesita mucha interacción con la GUI, entonces JSP podría hacerlo bien si el aprendizaje de una nueva tecnología es una sobrecarga y también es innecesario un marco complejo.


14
2018-06-20 07:59



Servlet: es una capa del lado del servidor de Java.

  • JSP: es servlet con html
  • JSF: sus componentes se basan en libs de etiquetas
  • JSP: se convierte en servlet una vez cuando el servidor recibió una solicitud.

12
2018-05-14 21:38



es cierto que JSP se convierte en servlet en el momento de la ejecución, y JSF es algo completamente 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.


9
2018-02-23 06:21



La diferencia básica entre Servlets y JSP es que en Servlets escribimos código java y en eso incorporamos código HTML y solo hay un caso inverso con JSP. En JSP escribimos código HTML y en eso incorporamos código java usando etiquetas proporcionadas por JSP.


4
2017-11-30 09:10



Páginas de servidor Java (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 y ricas en información que aprovechen los sistemas comerciales 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ágina no JSP diseñado para JSF (Java Server Faces) que proporcionó un modelo de programación más simple y más potente a los desarrolladores de JSF en comparación con JSP. Resuelve diferentes problemas que se producen en JSP para el desarrollo de aplicaciones web.

Aquí hay una tabla que compara las características de scriplets y facelets:

enter image description here Fuente


3
2017-12-24 11:17