Documentos de Académico
Documentos de Profesional
Documentos de Cultura
En la actualidad las aplicaciones web son cada vez más sofisticadas y requieren
tecnologías más avanzadas para presentar la información de manera dinámica. Es aquí
donde entran JSP (Java Server Pages) y JSF (Java server Faces) que son dos tecnologías
que admiten la inclusión de código de Java para la evolución del desarrollo de aplicaciones
web.
En la presente investigación daremos a conocer de estas dos tecnologías: JSP Y JSPI; qué
son, sus elementos, directivas, acciones, como es la inserción de su código en páginas web
entre otras directrices.
JSP
JSP (JavaServer Pages) es una tecnología que permite incluir código Java en páginas web.
Es el encargado de tomar la página, sustituir el código Java que contiene por el resultado de
su ejecución, y enviarla al cliente. Los JSP son mejores para generar páginas con gran parte
de contenido estático.
¿Qué es un servlet?
Funcionamiento de JSP
Para ejecutar las páginas JSP, necesitamos un servidor Web con un contenedor Web que cumpla
con las especificaciones de JSP y de Servlet. El contenedor Web se ejecuta en el servidor Web y
maneja la ejecución de todas las páginas JSP y de los Servlets existentes en ese servidor Web. El
servidor más utilizado es Tomcat.
Una página JSP es básicamente una página Web con HTML tradicional y código Java. La extensión
de fichero de una página JSP es ".jsp" en vez de ".html" o ".htm", y eso le dice al servidor que esta
página requiere un manejo especial que se conseguirá con una extensión del servidor o un plug-in.
A continuación, mostramos lo que sería un simple ejemplo de página JSP, date.jsp, la cual muestra
al ejecutarse, el día y la hora actual:
Este ejemplo contiene HTML tradicional y algún código Java. La etiqueta <% identifica el inicio de
un scriptlet, y la etiqueta %> identifica el final de un scriptlet. Cuando un navegador solicite la
página date.jsp veremos algo similar a esto:
Cuando se llama a una página JSP, será compilada (por el motor JSP) en un Servlet Java. En este
momento el Servlet es manejado por el motor Servlet como cualquier otro Servlet. El motor Servlet
carga la clase Servlet (usando un cargador de clases) y lo ejecuta para crear HTML dinámico y
enviarlo al navegador. Para el ejemplo mostrado, el Servlet crea un objeto Date y lo escribe como
un String en el objeto out, que es el flujo de salida hacia el navegador.
Elementos de JSP
Scriptlets de la forma <% código %> : el código se ejecuta dentro del método
_jspService del servlet generado.
Si desde un scriptlet se desea escribir algo en ésta, bastará con utilizar el objeto
predefinido out. Un uso común de los scriptlets es hacer que ciertas partes de código
HTML aparezcan o no en función de una condición.
Permiten definir variables o métodos que se insertarán dentro del cuerpo del servlet
generado. Esto da la posibilidad de sobreescribir los métodos jspInit y jspDestroy que
son el equivalente en JSP del init y destroy de los servlets. Las variables declaradas
conservarán su valor entre sucesivas llamadas a la página, ya que son variables
miembro del servlet y no locales al método jspService.
page: tiene varios usos: importar clases de Java, fijar el tipo MIME de la respuesta,
controlar el buffer de salida.
include: sirve para incluir código en la página antes de que se realice la compilación del
JSP.
taglib: se emplea cuando el JSP hace uso de etiquetas definidas por el usuario.
Acciones:
La directiva include permite insertar código en la página antes de que ésta se
transforme en un servlet. De este modo se pueden reutilizar fragmentos de código
JSP o HTML.
Esta acción incluye en una página la salida generada por otra perteneciente a la misma
aplicación web. La petición se redirige a la página incluida, y la respuesta que genera se
incluye en la generada por la principal. Su sintaxis es:<jsp:include page="URL
relativa" flush="true|false"/>.El atributo flush especifica si el flujo de salida de la
página principal debería ser enviado al cliente antes de enviar el de la página incluida
Esta acción sirve para incluir, de manera portable e independiente del navegador,
applets que utilicen alguna librería de Java 2 (Swing, colecciones, Java 2D), ya que las
máquinas virtuales Java distribuidas con algunos navegadores relativamente antiguos
(Explorer 5.x, Netscape 4.x,...) son de una versión anterior a Java 2.
Esta acción se utiliza para redirigir la petición hacia otra página JSP que esté en la
misma aplicación web que la actual. Un ejemplo de su sintaxis básica es:<jsp:forward
page="principal.jsp"/>.La salida generada hasta el momento por la página actual se
descarta (se borra el buffer). En caso de que no se utilizara buffer de salida, se
produciría una excepción.
JSF
JSF es un framework MVC (Modelo-Vista-Controlador) basado en el API de Servlets que
proporciona un conjunto de componentes en forma de etiquetas definidas en páginas
XHTML mediante el framework Facelets. Facelets se define como un elemento
fundamental de JSF que proporciona características de plantillas y de creación de
componentes compuestos. Antes de la especificación actual se utilizaba JSP para componer
las páginas JSF.
JSF utiliza las páginas Facelets como vista, objetos Javabean como modelos y métodos de
esos objetos como controladores. El servlet FacesServlet realiza toda la tediosa tarea de
procesar las peticiones HTTP, obtener los datos de entrada, validarlos y convertirlos,
colocarlos en los objetos del modelo, invocar las acciones del controlador y renderizar la
respuesta utilizando el árbol de componentes.
En JSF el funcionamiento es distinto. Una página JSF también contiene etiquetas especiales
y código HTML, pero su procesamiento es mucho más complicado. La diferencia
fundamental con JSP es el resultado del procesamiento interno, en el servidor, de la página
cuando se realiza la petición. En JSP la página se procesa y se transforma en un servlet. En
JSF, sin embargo, el resultado del procesamiento es un árbol de componentes, objetos Java
instanciados el servidor, que son los que posteriormente se encargan de generar el HTML.
Con un poco más de detalle, cuando el usuario realiza una petición a la página JSF se
realizan las siguientes acciones en orden:
De hecho, es posible generar con el mismo JSF distinto código para distintos dispositivos.
Por ejemplo, es posible utilizar la misma aplicación JSF para servir páginas a navegadores
web y dispositivos móviles.
Conclusiones
Como conclusión podemos acotar que tanto la JSP como JSF son dos tecnologías muy
útiles y muy usadas a nivel del mundo web. Como todos sabemos el mundo está
atravesando por una era tecnológica donde miles de usuarios a diario visitan sitios web, y
son estas dos tecnologías parte de que todo funcione de una manera correcta a través de la
incorporación de lenguaje Java.
Además, ayudan a los desarrolladores web a crear tanto páginas como aplicaciones web
dinámicas para que los usuarios podamos tener una mejor experiencia a nivel de páginas y
aplicaciones web.
Bibliografía
Jtech. (s.f.). Jtech. Recuperado el 13 de Julio de 2020, de Jtech: http://www.jtech.ua.es/j2ee/2006-
2007/doc/sesion08-apuntes.pdf