Header image
Trabajo 1
  Inicio .::.
   
 

JSP (Java Server Pages)


Introducción | XML | ASP | JSP | PHP| Comparación
Caso práctico | Bibliografía


Es la tecnología de Sun para incluir contenido HTML dinámico generado con Java en páginas HTML estáticas; algo así como el equivalente Java a ASP y PHP.
Los JSP corren dentro de un producto software llamado "contenedor web" que les proporciona una serie de servicios y que está formado por un contenedor JSP y un contenedor de servlets. Un ejemplo de esta clase de aplicación podría ser Tomcat.
Es una tecnología basada en Java empleada para desarrollar, junto con los servlets, aplicaciones web de contenido dinámico estructuradas de modo que separen eficazmente su lógica de presentación, su lógica de control y su lógica de negocios.
Esta separación se basa en el patrón de diseño MVC (Model View Controller o Modelo Vista Controlador). Persigue reducir la complejidad de una aplicación separando sus componentes de un modo coherente en base a una serie de capas, es decir, hacer que cada uno se ocupe de una determinada parte de la aplicación de modo que pueda modificarse o incluso cambiarse por completo una de ellas sin afectar a las otras. La aplicación de este patrón al diseño de aplicaciones web es recomendable ya que favorece su mantenibilidad, escalabilidad y reusabilidad.
Las capas o módulos asociados a este patrón de diseño son:

  • Capa del Modelo: lo forman componentes que contienen código responsable de la lógica de negocios, es decir, código encargado de generar los datos finales de la aplicación y de mantenerlos, si fuera necesario, de forma persistente en BDs. Típicamente son javabeans, clases Java normales o EJBs, que interactúan con el software donde se ubican los datos, es decir, BDs, documentos xml, ficheros de texto, servicios de directorios, etc.
  • Capa de las Vistas: lo forman componentes que contienen código responsable de la lógica de presentación, es decir, código encargado de interaccionar con el cliente tanto a la hora de suministrarle interfaces web para el envío de datos como de mostrar los datos suministrados por el Modelo. Además, interactuan con los componentes de la  capa del Controlador pasándoles datos del cliente, a través de formularios, links, javascript, etc . Típicamente la componen páginas jsps que suelen apoyarse en clases Java y javabeans.
  • Capa del Controlador: lo forman componentes que contienen código responsable de la lógica de control de la aplicación. Suele encargarse de instanciar el Modelo y de asociar la Vista con el Modelo. Se mantiene a la escucha de las diversas acciones que los usuarios pueden realizar en la aplicación y actúa sobre el Modelo en consecuencia. Si la aplicación es sencilla, no es necesario. Típicamente son servlets.

JSP1
JSP2
Esquema de funcionamiento de JSP

La tecnología JSP permite definir ficheros de extensión .jsp que, al igual que los servlets, se ejecutan en un servidor J2EE compatible.
El contenido de un fichero o página jsp se compone de etiquetas html más código Java encerrado entre una serie de etiquetas especiales.
Los JSP están muy relacionados con los servlets, que no son más que clases que derivan de la clase GenericServlet y que cuentan con métodos en los que incluir código a ejecutar cuando les llegue una petición HTTP (doPost si es POST o doGet si es GET). Esta estrecha relación viene dada porque, en realidad, los JSP son transformados en servlets cuando accedemos a ellos por el motor JSP del contenedor web en el corren (el motor JSP de Tomcat se llama Jasper).
Una página JSP podría tener un aspecto parecido al siguiente:

JSP3

Resumiendo lo que hace esta página, a muy grosso modo, escribiría 15 veces "Hola mundo!" (en líneas separadas, ya que incluye la etiqueta <br/> de HTML que indica nueva línea) y un "Adios". Para probar el código se tiene que instalar Tomcat, guardar el archivo como, por ejemplo, hola.jsp, en la carpeta webapps/ROOT y abrir la URL http://localhost:8080/hola.jsp en un navegador. Como puede observarse, se deben seguir ciertas reglas y emplear tecnologías adicionales para hacer que un archivo escrito en este lenguaje funcione como debiera.
También se observa que en este archivo se entremezclan las típicas etiquetas de HTML con código Java. En la primera línea se inicia el documento HTML y en la segunda el cuerpo del documento. La tercera línea, por empezar con <%! (también podría tener el aspecto <jsp:declaration> código </jsp:declaration>), es una declaración; en este bloque se pueden declarar variables o métodos que estarán disponibles en el resto del documento. El resto del documento no es difícil de entender: sigue siendo combinación de HTML y JSP.

Características de JSP

  • Separación de la presentación y el contenido.
    Con JSP se programa dentro de las páginas con código de JAVA, pero encerrando el código en un conjunto de marcas que sólo se interpretan en el servidor, al momento de ejecutar la aplicación.
    Este sistema hace que quede bien delimitado dónde empieza el trabajo de los desarrolladores y dónde termina. El diseñador no se preocupa por ese contenido sino sólo por el diseño.
  • Reuso de componentes.
    El modelo de uso de JSP se basa en la reutilización de componentes Java Beans. El uso de los mismos hace que se optimice considerablemente la utilización de recursos en el servidor. La consigna es: en las páginas se codifica dentro de tags o marcas y para resolver tareas complejas se accede a componentes beans reutilizables por todos.
  • Uso de XML dentro de los scripts.
    Es una realidad que los programadores de páginas web, no siempre están familiarizados con todos los lenguajes de programación. Por tanto, este nuevo acercamiento les brinda la posibilidad de embeber lenguaje de marcas más complejos como XML para acceder a diferentes componentes o para levantar applets en los clientes.

Otro ejemplo

El siguiente ejemplo llama a un archivo externo, instancia un bean y tras evaluar una condición genera o no un mensaje de bienvenida dentro de la página.

JSP4

Respecto a la forma en que el servidor resuelve el uso de JSP, es muy sencillo. El esquema de manejo básicamente emula lo que sucedía con un CGI, pero el aprovechamiento de recursos del lado del servidor es notorio. Asimismo, la diferencia mayor se denota en el uso de componentes y la inclusión de código de scripting dentro de las páginas.

 


Realizado por: Jorge Eliecer Jaimes Jimenez - Junio 2008

 
       
Hosted by www.Geocities.ws

1