INF 473 Desarrollo de Aplicaciones en Java
INF 473 Desarrollo de Aplicaciones en Java
PUCV
Marzo 2008
Introduccin a JSP
JSP es una tecnologa que permite combinar cdigo HTML esttico con cdigo generado dinmicamente en un mismo archivo. Ventajas:
Separacin de datos estticos/dinmicos. Independencia de formato/plataforma. Sencillez (sabiendo servlets)
Introduccin a JSP
Comparaciones con otras tecnologas:
Vs ASP (Active Server Pages). Vs Servlets.
Los JSP nos permiten separar la parte dinmica de nuestras pginas Web del HTML esttico. Simplemente escribimos el HTML regular de la forma normal y encerramos el cdigo de las partes dinmicas en unas etiquetas especiales, la mayora de las cuales empiezan con "<%" y terminan con "%>".
Introduccin a JSP
Damos extensin .jsp. Aunque el cdigo parezca mas bien HTML, el servidor lo traduce a un servlet en la primera peticin. 3 elementos en un JSP:
Elementos script (scriptlets) Directivas Acciones
Introduccin a JSP
Elementos de HTML
Estructura documento HTML
Cabecera:
<HTML><HEAD> <TITLE>Titulo de la pagina</TITLE> </HEAD></HTML>
Cuerpo:
<BODY> texto de la pagina <BODY>
Final:
<HTML><HEAD>
<TITLE>Ejemplo de HTML</TITLE> <BODY>Los elementos en la pagina </BODY> </HEAD></HTML>
Elementos de HTML
Atributos para texto:
<FONT face="arial" size=10 color="red">texto de la pagina</FONT>
Enlaces (Links):
<a href="http://www.pucv.cl">ir a PUCV</a>
Elementos de HTML
Imgenes:
<img src="imagen.gif" width="28" height="21" alt="Tamao original" border="3">
Alineacin imagen:
<div align="center"><img src="logo.gif"></div>
Elementos de HTML
Formularios:
<form action= "mailto:[email protected] (o nombre del archivo de proceso)" method="post"> elementos </form>
Elementos de HTML
Elementos formularios Listas de Opciones:
<select name=das"> <option>Lunes</option> <option>Martes</option> <option>Mircoles</option> <option>Jueves</option> </select>
Elementos de HTML
Elementos formularios Botones:
<input type=button value="Texto botn">
Botn enviar:
<input type="submit" value="Enviar">
Botn borrar:
<input type="reset" value="Borrar">
Elementos de JSP
Tres tipos de elementos en JSP:
Directivas
Permiten especificar informacin acerca de la pgina que permanece constante para todas las request
Requisitos de buffering Pgina de error para redireccin, etc.
Acciones
Permiten ejecutar determinadas acciones sobre informacin que se requiere en el momento de la peticin de la jsp
Acciones estndar Acciones propietarias (Tag libs)
Scripting
Permite insertar cdigo java que sern ejecutadas en el momento de la peticin.
Sintaxis
Expresin JSP
<%= expression %>;
La Expresin es evaluada y situada en la salida. Las variables predefinidas son request, response, out, session, application, config, y pageContext.
Scriptlet JSP
<% code %>;
Sintaxis
Declaracin JSP
<%! code %>
El cdigo se inserta en el cuerpo de la clase del servlet, fuera del mtodo service. Se utiliza para declarar variables y mtodos.
Directivas JSP
Afectan a la estructura general de la clase servlet. Normalmente tienen la siguiente forma:
<%@ directive att="val" %>
Tambin podemos combinar mltiples selecciones de atributos para una sola directiva:
<%@ directive attribute1="value1 attribute2="value2 ... attributeN="valueN" %>
Sintaxis
Comentario JSP
<%-- comment --%>
Comentario ignorado cuando se traduce la pgina JSP en un servlet. Si queremos un comentario en el HTML resultante, usamos la sntaxis de comentario normal del HTML
<!-- comment -->.
Accines jsp
<jsp:nombre-de-la-accin att=valor att2=valor2 />
Usan construcciones de sntaxis XML para controlar el comportamiento del motor de Servlets. Podemos insertar un fichero dinmicamente, reutilizar componentes JavaBeans, reenviar al usuario a otra pgina, etc
Expresiones
<%= expresin %> Se evalan y se insertan en la salida.
Expresiones
El equivalente en XML es usar una sintaxis alternativa para las expresiones JSP:
<jsp:expression> Expresin Java </jsp:expression>
Los elementos XML, al contrario que los del HTML, son sensibles a las maysculas.
JSP: Scriptlets
<% cdigo %>
JSP: Scriptlets
<% if (Math.random() < 0.5) { %> Tendrs un <B>mal</B> day! <% } else { %> Tendrs un <B>buen</B> day! <% } %>
JSP: Scriptlets
El equivalente XML de <% Cdigo %> es:
<jsp:scriptlet> Cdigo </jsp:scriptlet>
Si se quiere poder usar los caracteres "%>" dentro de un scriptlet, hay que usar "%\>"
JSP: Declaraciones
<%! codigo %> que se insertan en el cuerpo de la clase del servlet, fuera de cualquier mtodo existente.
Permite insertar mtodos, variables... No generan salida alguna. Se usan combinadas con scriptlets. <%! private int accessCount = 0; %>
Accesses to page since server reboot: <%= ++accessCount %>
JSP: Declaraciones
Como con los scriptlet, si queremos usar los caracteres "%>", ponemos "%\>". El equivalente XML de
<jsp:declaration> Cdigo </jsp:declaration>
<%! Cdigo %>
es:
JSP: Directivas
Afectan a la estructura general de la clase servlet. Normalmente tienen la siguiente forma:
<%@ directive attribute="value" %>
Tambin podemos combinar mltiples selecciones de atributos para una sola directiva:
<%@ directive attribute1="value1 attribute2="value2 ... attributeN="valueN" %>
JSP: Directivas
PAGE:
import="package.class o import="package.class1,...,package.class N". Esto permite especificar los paquetes que deberan ser importados. El atributo import es el nico que puede aparecer mltiples veces. ContentType = "MIME-Type" o contentType = "MIME-Type; charset = Character-Set" Esto especifica el tipo MIME de la salida. El valor por defecto es text/html. Tiene el mismo valor que el scriptlet usando response.setContentType.
JSP: Directivas
Un valor de true (por defecto) indica un procesamiento del servlet normal, donde mltiples peticiones pueden procesarse simultneamente con un slo ejemplar del servlet, bajo la suposicin que del autor sincroniza los recursos compartidos. Un valor de false indica que el servlet debera implementar SingleThreadModel.
isThreadSafe="true|false". session="true|false". Un valor de true (por defecto) indica
que la variable predefinida session (del tipo HttpSession) debera unirse a la sesin existente si existe una, si no existe se debera crear una nueva sesin para unirla. Un valor de false indica que no se usarn sesiones, y los intentos de acceder a la variable session resultarn en errores en el momento en que la pgina JSP sea traducida a un servlet. buffer="sizekb|none". Esto especifica el tamao del buffer para el JspWriter out. El valor por defecto es especfico del servidor y debera ser de al menos 8kb.
JSP: Directivas
autoflush="true|false". Un valor de true (por defecto)
indica que el buffer debera descargase cuando est lleno. Un valor de false, raramente utilizado, indica que se debe lanzar una excepcin cuando el buffer se sobrecargue. Un valor de false es ilegal cuando usamos buffer="none". extends="package.class". Esto indica la superclase del servlet que se va a generar. Debemos usarla con extrema precaucin, ya que el servidor podra utilizar una superclase personalizada. info="message". Define un string que puede usarse para ser recuperado mediante el mtodo getServletInfo. errorPage="url". Especifica una pgina JSP que se debera procesar si se lanzar cualquier Throwable pero no fuera capturado en la pgina actual.
JSP: Directivas
isErrorPage="true|false". Indica si la pgina actual acta o no como pgina de error de otra pgina JSP. El valor por defecto es false. language="java". Esto est pensado para especificar el lenguaje a utilizar. Por ahora, no debemos precuparnos por l ya que java es tanto el valor por defecto como la nica opcin legal.
Ejercicio
Modificar la jsp Hola Mundo para que en lugar de hacer referencia directamente a java.util.Date importe el paquete java.util
Aadimos al comienzo de la pgina la siguiente Juego de directiva page Caracteres UNICODE <%@ page language="java" latin-1 import="java.util.*" contentType="text/html" pageEncoding="iso-8859-1" %>
JSP: Directivas
INCLUDE: Permite incluir ficheros en el momento en que la pgina JSP es traducida a un servlet.
<%@ include file="url relativa" %>
Los contenidos del fichero incluido son analizados como texto normal JSP y as pueden incluir HTML esttico, elementos de script, directivas y acciones. Uso: Barras de navegacin.
JSP: Directivas
La sntaxis XML para definir directivas es:
<jsp:directive.TipoDirectiva atributo=valor />
es:
<jsp:directive.page import="java.util.*" />
Ejercicio
Partiendo de la pgina index.html crear un formulario pero modificarla para que en lugar de dirigirse a un servlet se dirija a saluda.jsp. Implementar saluda.jsp para que realice la misma funcionalidad que el servlet HolaMundo.