Java Server Pages, Beans y
JSP Tag Library
Dr. Víctor J. Sosa Sosa
[email protected]
Sintetizado del curso de Mark Baker
University of Portsmouth, UK
Introducción
Introducción a los JSP.
Elementos de JSP Scripting.
JSP, directivas de página: Estructura y
generación de Servlets.
Incluyendo archivos en documentos JSP.
Incluyendo archivos en documentos JSP.
Usar los componentes de JavaBeans con
JSP.
Creando JSP tag libraries personalizados.
Integrando Servlets y JSP con la
arquitectura MVC.
1
2
¿Porqué usar JSP?
Con Servlets es fácil:
Leer datos de un formulario,
Leer las cabeceras de las peticiones HTTP.
Leer los códigos de estado HTTP y las cabeceras de
respuesta,
Usar cookies y seguimiento de sesiones,
Compartir Datos entre Servlets,
Compartir Datos entre Servlets,
Recordar datos entre peticiones.
Qué es lo difícil:
Usar muchas instrucciones println() para generar HTML,
Mantenimiento del HTML.
El Framework de JSP
La idea:
Uso de HTML para la mayoría de las páginas Web,
Identificar código del Servlet con etiquetas especiales,
Toda la página JSP es convertida a un Servlet (sólo una vez)
y el Servlet es el que realmente es invocado (por cada
petición).
Ejemplo:
Ejemplo:
JSP:
Thanks for ordering <%=request.getParameter(“title”) %/>
URL:
http://host/OrderConfirmation.jsp?title=Java+Servlets.
Result:
Thanks for ordering the “Java Servlets”
3
4
Java Server Pages (JSP)
Arquitectura de JSP
El propósito de JSP es ofrecer una forma más
declarativa y más guiada por la presentación que
aquella conseguida con los servlets.
Las páginas JSP se utilizan en un proceso que
involucra dos fases:
involucra dos fases:
1. Una fase de traducción dinámica a servletsque se
realiza únicamente cuando la página JSP se crea o
modifica.
2. Una fase de contestación a peticiones que se
clases de los servlets
consigue cuando
generados se cargan en el contenedor de servlets.
las
Java Server Pages (JSP)
Arquitectura de JSP
segunda
En
la
fase,
atender
concurrentemente al procesamiento de peticiones,
el servidor lanza un proceso ligero (thread) por
cada uno de los clientes el cual corre el método
_jspService().
_jspService().
para
El método _jspService() no puede reemplazarse
por otros métodos definidos por el programador,
pero en cambio puede adecuarse su inicialización y
y
terminación
jspDestroy().
los métodos
jspInit()
con
5
6
Java Server Pages (JSP)
Arquitectura de JSP
Evento de iniciación
Petición
Respuesta
Servlet
_jspInit()
_jspInit()
_jspService()
Evento de terminación
_jspDestroy()
Contenedor de Servlets
Benéficos de usar JSP
Ventajas
Independencia del servidor Web.
Substitución del API de los servletspor conjuntos
de elementos de marcado (tags) y fragmentos de
programación (scriptlets).
programación (scriptlets).
Altamente recomendable para conseguir el acceso
al servidor Web en arquitecturas de partes
múltiples (multi-tier).
Separación del contenido estático del dinámico.
Separación del contenido dinámico del formato de
la presentación.
7
8
Ventajas de JSP frente a las
tecnologías similares.
Contra Active Server Pages (ASP):
ASP es una tecnología similar que pertenece a Microsoft
La parte dinámica de JSP es escrita en Java, no en Visual
Basic u otro lenguaje propietario de Microsoft, esto lo hace
un mejor lenguaje.
Es portable con otros sistemas operativos y servidores Web
que no sean de Microsoft.
Contra Servlets:
Contra Servlets:
JSP no proporciona algo más que en principio podría hacerse
con un Servlet.
Pero es mas conveniente para escribir y modificar HTML que
tener muchas sentencias println() para generarlo.
Además, haciendo la separación de vista y contenido, se
puede tener diversas personas en diversas tareas: expertos
en diseño de páginas Web pueden construir el HTML,
dejando lugar para que los programadores de Servlets
inserten el contenido dinámico.
9
Ventajas de JSP frente a las
tecnologías similares.
Contra Server-Side Includes (SSI):
SSI son tecnologías ampliamente soportadas para incluir, en una
página Web estática, partes definidas externamente.
JSP es mejor porque le permite utilizar Servlets en lugar de un
programa separado para generar la parte dinámica,
SSI está pensado para inclusiones simples, no para programas
reales que usen información de un formulario, conexiones a bases
de datos, etc.
Contra JavaScript:
Contra JavaScript:
JavaScript puede generar dinámicamente HTML del lado cliente,
Capacidad útil, pero sólo para manejar situaciones donde la
información dinámica está basada en el medio ambiente del cliente,
Con excepción de las cookies de HTTP y los formularios, el envío de
datos no es posible en JavaScript,
Y, puesto que corre del lado cliente, JavaScript no puede tener
acceso a los recursos del lado servidor como bases de datos,
catálogos, información valiosa, entre otros.
10
Ventajas de JSP frente a las
tecnologías similares.
Contra HTML estático:
El HTML normal, no puede contener información
dinámica.
JSP es tan fácil y conveniente que es totalmente
factible aumentar las páginas HTML que se verán
beneficiadas por la inserción de cantidades
beneficiadas por la inserción de cantidades
pequeñas de datos dinámicos.
Resumen: JSP vs ASP
Propiedad
Java Server Pages
Active Server Pages
Servidor
Plataforma
Modelo de
componentes
Programación
(scripting)
La mayoría de los servidores más
Conocidos (Apache, Netscape,
MS IIS)
Los servidores de Microsoft (IIS
y
Personal Web Server)
Cualquiera que corra una máquina
virtual Java
Windows
Java Beans, Enterprise Java Beans y
librerías de elementos
COM , DCOM , COM +
Java
JavaScript o Visual Basic Script
Seguridad
Modelo de seguridad de Java
Modelo de seguridad de Windows
NT
Bases de datos
Java Data Base Connectivity
Active Data Objects
Extensibilidad
Abierto a librerías de elementos
Ninguna
11
12
Malentendidos comunes:
Recordar que JSP es tecnología Server-Side
Pregunta muy común:
¿No puedo hacer XYZ con el HTML, JSP me dejaría
hacerlo?
¿Por qué esta pregunta no tiene sentido?
JSP corre completamente del lado servidor,
No cambia el contenido que el visualizador puede manejar.
Preguntas similares:
Preguntas similares:
¿Cómo pongo un Applet en una página JSP?
Respuesta: Envié una etiqueta del <APPLET…> al cliente.
¿Cómo pongo una imagen en una página JSP?
Respuesta: Envié una etiqueta de la <IMG…> al cliente.
¿Cómo uso un JavaScript/Acrobat/Shockwave/etc?
Respuesta: Envié las etiquetas correspondientes del HTML.
2do Malentendidos comunes:
Tiempo de Traducción/Petición
¿Qué sucede al momento de traducción de la página
JSP?
Las JSPs se traducen a código Servlet.
¿Qué pasa en el momento de la petición?
El código del Servlet es ejecutado,
Ninguna interpretación del JSP ocurre al momento de la
petición,
La página JSP original es ignorada al momento de la
La página JSP original es ignorada al momento de la
petición; solo el Servlet que resulte de la JSP es el que se
toma en cuenta.
¿Cuándo ocurre la traducción de la página?
Generalmente la primera vez que la página JSP es invocada
después de ser modificada,
Esto no debería suceder a usuarios reales – los
desarrolladores deben probar las páginas que instalan,
La traducción de páginas no ocurre en cada petición.
13
14
http://www.delta.com/
15
https://portal.banamex.com.mx/esp/empresarial/monarca/login.jsp
16
http://www.excite.com/
Configurando el medio ambiente.
Configurar CLASSPATH.
Compilar el código
Utilizar los paquetes para evitar conflictos de
nombres.
Coloque la página JSP en el directorio correcto:
<tomcat_home>/Webapps/ROOT.
<tomcat_home>/Webapps/ROOT.
Use el URL especial para invocar la página JSP.
Advertencias:
Las reglas utilizadas para el acceso al CLASSPATH,
instalación de directorios, etc., aun se aplican a las clases
utilizadas en JSP.
17
18
Ejemplo.
Ejemplo
Con la configuración por defecto, si la
localización es:
<tomcat_home>/Webapps/ROOT/Expression.jsp
EL URL debe ser:
http://localhost:8080/Expressions.jsp
19
20
Ejemplo
Elementos del JSP Scripting
21
22
Uso de las JSPs
Los elementos de Scripting
llaman al código del Servlet
directamente.
Aplicaciones simples
Los elementos de Scripting llaman
al código del Servlet
indirectamente mediante clases
indirectamente mediante clases
de uso general(utilities).
Uso de Beans.
Etiquetas personalizadas.
Servlet/JSP combo.
Aplicaciones complejas
23
Tipos de elementos de Scripting
Expresiones:
Formato <%=expression %>
Se evalua e inserta en la salida del Servlet, ej., el
resultado en algo como: out.println(expression).
Scriptlets:
Formato <%code%>
Formato <%code%>
Insertado textualmente dentro del método _jspService en
los Servlet’s (llamada al servicio).
Declaraciones:
Formato <%! code%>
Insertado textualmente dentro del cuerpo de la clase del
Servlet, fuera de cualquier método existente.
24
Expresiones JSP
Formato:
Resultado:
<%= Expresión Java %>
Expresión evaluada, convertida a cadena, y puesta en la
página HTML en el lugar donde ocurrió en la página JSP.
Es decir, la expresión se pone en el _jspService dentro de
out.print.
Ejemplos:
Ejemplos:
Tiempo actual: <%=new java.util.Date()%>
Tu nombre de maquina: <% request.getRemoteHost()%>
Sintaxis compatible XML :
<jsp:expression> Java Expression </jsp:expression>
Versión de XML no suportada por Tomcat 3.1
Hasta la versión JSP 1.2, los servidores no tiene que darle
soporte.
Correspondencia JSP/Servlet
Original JSP:
<H1> A Random Number </H1>
<%= Math.random() %>
Resultado posible del código Servlet:
public void _jspService(HttpServletRequest request,
public void _jspService(HttpServletRequest request,
Comentarios de: Java Server Pages, Beans y JSP Tag Library (0)
No hay comentarios