0% encontró este documento útil (0 votos)
49 vistas38 páginas

INF 473 Desarrollo de Aplicaciones en Java

Este documento introduce los conceptos básicos de JSP, incluyendo las tres partes principales de una página JSP: elementos, directivas y acciones. También explica la sintaxis de expresiones, scriptlets, declaraciones y directivas JSP.

Cargado por

linoquispe
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
49 vistas38 páginas

INF 473 Desarrollo de Aplicaciones en Java

Este documento introduce los conceptos básicos de JSP, incluyendo las tres partes principales de una página JSP: elementos, directivas y acciones. También explica la sintaxis de expresiones, scriptlets, declaraciones y directivas JSP.

Cargado por

linoquispe
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 38

INF 473 Desarrollo de Aplicaciones en Java

Desarrollo de Aplicaciones Web Introduccin a JSP


Prof. Jos Miguel Rubio
[email protected] [email protected]

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>

Atributos para pagina:


<body background="fondo.jpg bgcolor=red" text=black" link=grey" vlink=yellow" alink=blue">

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 formularios: Campos de texto


<input type="text" name="nombre">

Elementos formularios: Campos de texto password


<input type="password" name="nombre">

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 formularios Cajas de validacin:


<input type="checkbox" name=si>Mayor de 18

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 %>;

El cdigo se inserta en el mtodo service. El equivalente XML es:


<jsp:scriptlet> code </jsp:scriptlet>.

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.

Se tiene acceso a variables:


request, el HttpServletRequest response, el HttpServletResponse session, el HttpSession asociado con el request (si existe) out, el PrintWriter (una versin con buffer del tipo JspWriter) usada para enviar la salida al cliente.
Your hostname: <%= request.getRemoteHost() %>

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.

Ejercicio. Mi primera JSP


A partir de una Pgina index.html por ejemplo Hola Mundo
Renombrar index.html a index.jsp Establecer index.jsp como pgina por defecto donde? Aadir tras el saludo
<br> Hoy estamos a <%=(new java.util.Date())%> <br>

JSP: Scriptlets
<% cdigo %>

que se insertan dentro del mtodo service del servlet.


Tienen acceso a las mismas variables que las expresiones. El cdigo dentro de un scriptlet se insertar exactamente como est escrito, y cualquier HTML esttico (plantilla de texto) anterior o posterior al scriptlet se convierte en sentencias write. Ejemplo:

<html> <% for ( int i = 0 ; i < 10 ; i ++ ) out.println(<br>+i);%> </html>

JSP: Scriptlets
<% if (Math.random() < 0.5) { %> Tendrs un <B>mal</B> day! <% } else { %> Tendrs un <B>buen</B> day! <% } %>

Que se traducir en:


if (Math.random() < 0.5) { out.write(Tendrs un <B>mal</B> da!");} else { out.write(Tendrs un <B>buen</B> da!");}

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 />

Por ejemplo, el equivalente XML de:


<%@ page import="java.util.*" %>

es:
<jsp:directive.page import="java.util.*" />

JSP: Variables predefinidas


REQUEST: Este es el HttpServletRequest asociado con la peticin, y nos permite mirar los parmetros de la peticin (mediante getParameter), el tipo de peticin (GET, POST, HEAD, etc.), y las cabeceras HTTP entrantes (cookies, Referer, etc.). Estrictamente hablando, se permite que la peticin sea una subclase de ServletRequest distinta de HttpServletRequest, si el protocolo de la peticin es distinto del HTTP. Esto casi nunca se lleva a la prctica.

JSP: Variables predefinidas


RESPONSE: Este es el objeto de clase HttpServletResponse asociado con la respuesta al cliente. Como el stream de salida tiene un buffer, es legal seleccionar los cdigos de estado y cabeceras de respuesta, aunque no est permitido en los servlets normales una vez que la salida ha sido enviada al cliente.

JSP: Variables predefinidas


OUT: Este es el PrintWriter usado para envar la salida al cliente. Sin embargo, para poder hacer til el objeto response, sta es una versin con buffer de PrintWriter llamada JspWriter. Podemos ajustar el tamao del buffer, o incluso desactivar el buffer, usando el atributo buffer de la directiva page. Se usa casi exclusivamente en scriptlets ya que las expresiones JSP obtienen un lugar en el stream de salida, y por eso raramente se refieren explcitamente a out.

JSP: Variables predefinidas


SESSION: Este es el objeto HttpSession asociado con la peticin. Las sesiones se crean automticamente, por esto esta variable se une incluso si no hubiera una sesin de referencia entrante. La nica excepcin es usar el atributo session de la directiva page para desactivar las sesiones, en cuyo caso los intentos de referenciar la variable session causarn un error en el momento de traducir la pgina JSP a un servlet.

JSP: Variables predefinidas


APPLICATION: El ServletContext obtenido mediante getServletConfig().getContext(). CONFIG: El objeto ServletConfig. PAGECONTEXT: JSP presenta una nueva clase llamada PageContext para encapsular caractersticas de uso especficas del servidor como JspWriters de alto rendimiento. La idea es que, si tenemos acceso a ellas a travs de esta clase en vez directamente, nuestro cdigo seguir funcionando en motores servlet/JSP "normales".

JSP: Variables predefinidas


PAGE: Esto es slo un sinnimo de this, y no es muy til en Java. Fue creado como situacin para el da que el los lenguajes de script puedan incluir otros lenguajes distintos de Java.

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.

También podría gustarte