Respuestas:
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 fragmentos de código Java que le permiten controlar el flujo o la salida de la página dinámicamente. Un taglib bien conocido es JSTL . JSP también admite Expression Language , que se puede utilizar 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 se extenderá HttpServlet
y lo usará 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 , Tomcat , es el /work
directorio. En una solicitud JSP, el contenedor de servlet ejecutará la clase JSP compilada y enviará la salida generada (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.
Servlet es una interfaz de programación de aplicaciones (API) de Java 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 enganchar solicitudes HTTP utilizando los métodos HTTP populares como GET
y POST
. Puede configurar HttpServlet
s para escuchar un determinado patrón de URL HTTP, que se puede configurar en Java EE 6 , web.xml
o más recientemente , con anotaciones.@WebServlet
Cuando se solicita un Servlet por primera vez o durante el inicio de la aplicación web, el contenedor del servlet creará una instancia del mismo y lo mantendrá en la memoria durante la vida útil 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 la solicitud HttpServletRequest
y manejar la respuesta mediante HttpServletResponse
. Ambos objetos están disponibles como argumentos de método dentro de cualquiera de los métodos anulados de HttpServlet
, como doGet()
y doPost()
.
JSF es un marco MVC basado en componentes que se construye sobre la API de Servlet y proporciona componentes a través de taglibs que se pueden usar en JSP o cualquier otra tecnología de vista basada en Java como Facelets . Facelets es mucho más adecuado para JSF que JSP. Es decir, proporciona excelentes capacidades de creación de plantillas , como componentes compuestos , mientras que JSP básicamente solo ofrece la <jsp:include>
creación de plantillas en JSF, por lo que se ve obligado a crear componentes personalizados con código Java sin procesar (que es un poco opaco y mucho trabajo tedioso) cuando desea 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 a favor de Facelets.
Nota : JSP en sí NO está en desuso, solo la combinación de JSF con JSP está en desuso.
Nota : JSP tiene grandes habilidades de plantilla mediante Taglibs, especialmente la variante ( Archivo de etiqueta ). La plantilla JSP en combinación con JSF es lo que falta.
Al ser un marco MVC ( Modelo-Vista-Controlador ), JSF proporciona FacesServlet
el único controlador de solicitud-respuesta . Toma todo el trabajo estándar y tedioso de solicitud / respuesta HTTP de sus manos, como recopilar información del usuario, validarla / convertirla, colocarla en objetos modelo, invocar acciones y presentar la respuesta. De esta manera, terminará básicamente con una página JSP o Facelets (XHTML) para View 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 hacer todo el trabajo.
<c:forEach>
etiqueta es de JSTL. Ver también stackoverflow.com/tags/jstl/info
<mytag:doesSomething/>
parece una etiqueta personalizada y <jsp:attribute>
una etiqueta jsp.
Ver 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 (beans Enterprise) 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 crear interfaces de usuario para aplicaciones web. La tecnología JavaServer Faces incluye:
Un conjunto de API para: representar los componentes de la interfaz de usuario y administrar su estado, manejar eventos y validación de entradas, definir la navegación de la página y apoyar la internacionalización y la accesibilidad.
Una biblioteca de etiquetas personalizadas JavaServer Pages (JSP) para expresar una interfaz JavaServer Faces dentro de una página JSP.
JSP es un tipo especializado de servlet.
JSF es un conjunto de etiquetas que puede usar con JSP.
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 y respuestas.
JSF está dirigido a aplicaciones web más ricas basadas en eventos. Veo el evento mucho más granular que la solicitud / respuesta.
Desde la perspectiva del servidor
La página JSP se convierte en servlet y solo tiene un comportamiento mínimo.
La página JSF se convierte en el árbol de componentes (por FacesServlet especializado) y sigue el ciclo de vida del componente definido por las especificaciones.
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 patentadas, la API de Java Servlet ofreció un rendimiento mejorado sobre CGI; Sin embargo, tiene algunas ventajas adicionales clave. Debido a que los servlets se codificaron 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 portátil para cualquier host que admitiera Java. Los servlets contribuyeron en gran medida 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 se basa en los servlets y proporciona una solución más simple y basada en páginas para generar grandes cantidades de contenido HTML dinámico para las interfaces de usuario web. JavaServer Pages permite a los desarrolladores y diseñadores web simplemente editar páginas HTML con etiquetas especiales para las porciones dinámicas de Java. JavaServer Pages funciona al tener un servlet especial conocido como contenedor JSP, que está instalado en un servidor web y maneja todas las solicitudes de vista de página JSP. El contenedor JSP traduce un JSP solicitado en un código de servlet que luego se compila y se 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 el JSP en el servidor, una solicitud para verlo desencadena otra traducción, compilación y reinicio del servlet de tiempo de ejecución.
JSF:
JavaServer Faces es un marco estándar de Java 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 construir interfaces de usuario mediante el uso de tecnologías web Java básicas (como servlets Java y páginas JavaServer) 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 aún, cuando los desarrolladores alcancen una solución de calidad de producción, el mismo conjunto de problemas resueltos por JSF se habrá resuelto de 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 centrado en componentes e independiente del cliente para construir interfaces de usuario web, 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 la interfaz de usuario web.
• Gestiona 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 ]
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 rica y se necesitan muchas secuencias de comandos Java, favorezca JSF. Básicamente, si la arquitectura de su aplicación GUI está orientada a componentes e incluso impulsada como Swing, 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 funcionar bien si aprender una nueva tecnología es una sobrecarga y también es innecesario un marco complejo.
Servlet: es la capa del lado del servidor de Java.
La diferencia básica entre Servlets y JSP es que en Servlets escribimos código java y en que incorporamos código HTML y simplemente hay un caso inverso con JSP. En JSP escribimos código HTML y en él incorporamos código Java usando etiquetas proporcionadas por JSP.
Java Server Pages (JSP) es una tecnología de 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 aprovechan 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 que no es JSP diseñado para JSF (Java Server Faces) que proporcionó un modelo de programación más simple y potente 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 facelets:
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 convierte al archivo .java. Hay tres tipos de etiquetas que estamos usando
1.) Sin script
<% %>
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 del primer contenedor de solicitud leerá los datos del archivo web.xml y luego se mostrará el relleno de bienvenida.
Ahora en adelante, después de realizar la acción, buscará la url y después de este proceso buscará el servlet particular allí mismo. Se realizará la operación de servicio.
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 una cuadrícula de panel y hay diferentes caras para esto.
Rich Faces
Prime Faces.
Los JSP son el componente de vista de MVC (Model View Controller). El Controlador toma la solicitud entrante y la pasa al Modelo, que podría ser un bean que tiene algún acceso a la base de datos. El JSP luego formatea la salida usando HTML, CSS y JavaScript, y la salida se envía de vuelta al solicitante.
JSF es un marco avanzado en el que es muy fácil implementar una arquitectura basada en Modelo-Vista-Controlador (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 los eventos ajax.
El front-end 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 real de la aplicación.
Los controladores invocan internamente varios servicios que se comunican con la base de datos (utilizando Hibernate o JPA API). Así es como el flujo ocurre en resumen.
JSF también se usa en combinación con RichFaces, que es un marco para dar una apariencia rica a su aplicación web.
¡JSF + RichFaces + Hibernate / JPA es una buena tecnología para aprender con seguridad!
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.
El servlet debe compilarse (es decir, tendrá una creación de clase específica)
Jsf es un componente de vista de MVC Framework
JSP significa JAVA SERVER PAGE ........ jsp no es un servlet. Jsp usa código y etiqueta HTML, tanto en sí mismo que no necesita 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 de Java que juega un papel importante para que su página HTML pase de estática a dinámica.
Los servlets son los programas Java del lado del servidor que se ejecutan dentro del contenedor web. El objetivo principal del servlet es procesar las solicitudes recibidas del cliente.
Java Server Pages se usa para crear páginas web dinámicas. Los Jsp se introdujeron para escribir código java plus html en un solo archivo que no fue fácil de hacer en el programa de servlets. Y un archivo jsp se convierte en un servlet java cuando se traduce.
Java Server Faces es un marco web MVC que simplifica el desarrollo de la interfaz de usuario.