trasparencias - Universidad de Alicante

Anuncio
Especialista en Aplicaciones y Servicios
Web con Java Enterprise
Capa de presentación: JSP
Sesión 1:
JSP Básico
Capa de presentación: JSP
Copyright © 2003-2004 Universidad de Alicante
JSP básico 1
Índice
ƒ Introducción a los JSP. Comparación con servlets
ƒ Elementos de JSP
¾ Código Java
¾ Objetos implícitos
ƒ Directivas
ƒ Acciones
Capa de presentación: JSP
Copyright © 2003-2004 Universidad de Alicante
JSP básico 2
Índice
ƒ Introducción a los JSP. Comparación con servlets
ƒ Elementos de JSP
¾ Código Java
¾ Objetos implícitos
ƒ Directivas
ƒ Acciones
Capa de presentación: JSP
Copyright © 2003-2004 Universidad de Alicante
JSP básico 3
Introducción a los JSP
ƒ Código Java en páginas HTML
<html>
<head>
<title>Mi primera página JSP</title>
</head>
<body>
<h1> Hola, <%= request.getParameter("nombre") %>
Hoy es: <%= new java.util.Date() %> </h1>
</body>
</html>
Capa de presentación: JSP
Copyright © 2003-2004 Universidad de Alicante
JSP básico 4
Comparación con los servlets
ƒ En apariencia
¾ Un JSP es HTML + Java Insertado
¾ Un Servlet es Java + HTML insertado
ƒ En realidad
¾ Los JSP se traducen internamente a servlets
•
•
•
•
•
El servidor web tiene una “plantilla de servlet”
Inserta nuestro código JSP dentro
Lo guarda en un directorio especial
Lo compila y ejecuta
En sucesivas llamadas a la página, solo hace falta ejecutar
el servlet, salvo que se modifique el código del JSP Ö
comenzar de nuevo
Capa de presentación: JSP
Copyright © 2003-2004 Universidad de Alicante
JSP básico 5
Índice
ƒ Introducción a los JSP. Comparación con servlets
ƒ Elementos de JSP
¾ Código Java
¾ Objetos implícitos
ƒ Directivas
ƒ Acciones
Capa de presentación: JSP
Copyright © 2003-2004 Universidad de Alicante
JSP básico 6
Elementos de JSP
ƒ Código Java
¾ Sentencias (scriptlets) <% tam = 1; %>
¾ Declaraciones
<%! int i = 0; %>
¾ Expresiones
<%= new Date() %>
ƒ Directivas: para “afinar” el servlet generado
ƒ Acciones: alteración del flujo de ejecución
(normalmente)
Capa de presentación: JSP
Copyright © 2003-2004 Universidad de Alicante
JSP básico 7
Scriptlets
<%
Calendar ahora = Calendar.getInstance();
int hora = ahora.get(Calendar.HOUR_OF_DAY);
%>
<b> Hola mundo, <i>
<% if ((hora>20)||(hora<6)) { %>
buenas noches
<% }
else if ((hora>=6)&&(hora<=12)) { %>
buenos días
<% }
else { %>
buenas tardes
<% } %> </i> </b>
Capa de presentación: JSP
Copyright © 2003-2004 Universidad de Alicante
JSP básico 8
Declaraciones
ƒ Las variables o métodos declarados se insertan en
el cuerpo del servlet generado Ö se conservan entre
peticiones
<%! private int accesos = 0; %>
<% ++accesos; %>
ƒ Se pueden sobreescribir los métodos jspInit y
jspDestroy equivalentes al init y destroy de
los servlets
Capa de presentación: JSP
Copyright © 2003-2004 Universidad de Alicante
JSP básico 9
Expresiones
ƒ Su valor se evalúa, se convierte a cadena y se
imprime en el Writer del servlet, con un write o
similar
<b>
Esta página ha sido visitada <%= visitas %> veces
Hoy es <%= new java.util.Date() %>
</b>
Capa de presentación: JSP
Copyright © 2003-2004 Universidad de Alicante
JSP básico 10
Objetos implícitos
ƒ Variables definidas en la “plantilla” de servlet para
JSP, por tanto accesibles a nuestro código
ƒ Objetos
¾ request (HttpRequest), response (HttpResponse)
¾ out: el writer para enviar la salida al cliente
¾ session: HttpSession
¾ application: ServletContext
¾ config: ServletConfig
¾ pageContext
¾ exception
Capa de presentación: JSP
Copyright © 2003-2004 Universidad de Alicante
JSP básico 11
Índice
ƒ Introducción a los JSP. Comparación con servlets
ƒ Elementos de JSP
¾ Código Java
¾ Objetos implícitos
ƒ Directivas
ƒ Acciones
Capa de presentación: JSP
Copyright © 2003-2004 Universidad de Alicante
JSP básico 12
Directivas
ƒ Influyen en la estructura que tendrá el servlet
generado
<%@ directiva atributo=“valor” %>
ƒ Tipos
¾ page: usos variados
¾ include: equivalente al #include de C
¾ taglib: para usar librerías de etiquetas
Capa de presentación: JSP
Copyright © 2003-2004 Universidad de Alicante
JSP básico 13
La directiva page: atributos
ƒ Import (= import de Java)
<%@page import=“java.util.*, java.sql.*” %>
ƒ contentType (= response.setContentType() )
<%@page contentType=“text/html” %>
ƒ isThreadSafe (= implements SingleThreadModel)
ƒ session (defecto: true)
Capa de presentación: JSP
Copyright © 2003-2004 Universidad de Alicante
JSP básico 14
La directiva page: atributos (II)
ƒ buffer: ¿Qué hay de raro en esta página JSP?
¿Cómo es que funciona?
<html>
<head>
<title>Untitled</title>
</head>
<body>
<%@ page contentType="text/plain" %>
<h1> Hola </h1>
</body>
</html>
Capa de presentación: JSP
Copyright © 2003-2004 Universidad de Alicante
JSP básico 15
La directiva page: tratamiento de errores
ƒ Saltar a una página de error en caso de que se
produzca una excepción
ƒ En todas las páginas del sitio (menos la de error):
<%@page errorPage=“error.jsp” %>
ƒ En la página de error:
<%@page isErrorPage=“true” %>
ƒ Esto último hace accesible el objeto implícito
exception
Capa de presentación: JSP
Copyright © 2003-2004 Universidad de Alicante
JSP básico 16
La directiva include
ƒ Equivalente al #include de C
ƒ El código se incluye antes de la compilación del
servlet y se compila todo junto
ƒ Problema: J2EE no exige que si cambia el código
incluido el servidor tenga que volver a componer el
servlet
ƒ Usos
¾ Definir variables
¾ Influir en la respuesta
Capa de presentación: JSP
Copyright © 2003-2004 Universidad de Alicante
JSP básico 17
Índice
ƒ Introducción a los JSP. Comparación con servlets
ƒ Elementos de JSP
¾ Código Java
¾ Objetos implícitos
ƒ Directivas
ƒ Acciones
Capa de presentación: JSP
Copyright © 2003-2004 Universidad de Alicante
JSP básico 18
Acciones: <jsp:include>
ƒ Incluye en una página la salida generada por otra
petición
petición
respuesta
respuesta
ƒ Cambios en lo incluido no obligan a recompilar el
“principal”
Capa de presentación: JSP
Copyright © 2003-2004 Universidad de Alicante
JSP básico 19
Acciones: <jsp:include> (II)
ƒ Sintaxis
<jsp:include page=“URL relativa” flush=“true | false” />
ƒ Pasarle parámetros a la página incluida
¾ Recibe el request (parámetros originales)
¾ Parámetros adicionales:
<jsp:include page=“cabecera.jsp” flush=“false” >
<jsp:param name=“color” value=“red”/>
</jsp:include>
Capa de presentación: JSP
Copyright © 2003-2004 Universidad de Alicante
JSP básico 20
Acciones: <jsp:forward>
ƒ Redirige la petición a otra página
petición
petición
respuesta
ƒ Lo que haya en el buffer se descarta
Capa de presentación: JSP
Copyright © 2003-2004 Universidad de Alicante
JSP básico 21
Acciones: <jsp:forward> (II)
ƒ Sintaxis
<jsp:forward page=“URL relativa”/>
ƒ Pasarle parámetros a la página incluida: idem al
<jsp:include>
¾ Recibe el request (parámetros originales)
¾ Parámetros adicionales:
<jsp:forward page=“principal.jsp”>
<jsp:param name=“privilegios” value=“root”/>
</jsp:include>
Capa de presentación: JSP
Copyright © 2003-2004 Universidad de Alicante
JSP básico 22
Descargar