Newest Viewed Downloaded

Aplicaciones Web de Servidor JavaServer Pages (JSP) 23 y 25 de Abril de 2008

Aplicaciones Web de Servidor JavaServer Pages (JSP) 23 y 25 de Abril de 2008

La especificación JSP 1.2 – ¿Qué es una JSP?

Ejemplo Hola mundo en una JSP <% out.println(“Hola mundo desde una JSP”); %> Las JavaServer Pages (JSP) nos permiten separar la parte dinámica de nuestras páginas Web del código estático. Para ello: Simplemente escribimos el HTML (o XML) regular de la forma normal, usando cualquier herramienta de construcción de paginas Web. Encerramos el código de las partes dinámicas en unas etiquetas especiales, la mayoría de las cuales empiezan con “<%” y terminan con “%>.

La especificación JSP 1.2 – Funcionamiento.

Cliente Ligero (Navegador Servidor Web Motor de Servlet´s Motor de JSP´s 1 Petición HolaMundo.jsp 2 Petición HolaMundo.jsp 3 Se mapea la petición a un fichero JSP y se pasa el control al motor de JSP´s 4 Se compila el fichero HolaMundo.jsp en un Servlet. 5 Se transfiere el control al servlet HolaMundo.class 6 El servlet HolaMundo genera una respuesta 7 Se envía la respuesta al cliente 9 Petición HolaMundo.jsp 10 Se mapea la petición a un fichero JSP y se pasa El control al motor de JSP´s 11 Se transfiere el control al servlet HolaMundo.class 12 El servlet HolaMundo genera una respuesta 13 Se envía la respuesta al cliente 8 reload HolaMundo.jsp El “Motor de Servlet´s” es el encargado de ejecutar los servlet´s. El “Motor de JSP´s” es el encargado de traducir y compilar ficheros JSP en Servlet´s. El flujo de una petición de una página JSP es el siguiente: El usuario solicita una página JSP desde una navegador. El navegador envía la petición al servidor web. Se mapea la petición a un fichero JSP y se pasa el control al motor de servlet´s. Si es la primera vez que se solicita la página, el motor de Servlet´s compila la página JSP a un Servlet. El motor de servlet´s transfiere el control de la petición al servlet´s generado. El servlet genera una respuesta y se la pasa al servidor web. El servidor web devuelve la respuesta al navegador.

Elementos JSP

La especificación JSP 1.2 – Elementos de script JSP y su notación XML.

Los elementos de script nos permiten insertar código Java dentro del servlet que se generará desde la página JSP actual. Hay tres formas: Expresiones de la forma <%= expresión %> que son evaluadas e insertadas en la salida. Scriptlets de la forma <% codigo %> que se insertan dentro del método service() del servlet. Declaraciones de la forma <%! codigo %> que se insertan en el cuerpo de la clase del servlet, fuera de cualquier método existente. Directivas de la forma <%@ directive atributo1="valor1"... atributoN="valorN" %> que afectan a la estructura general del servlet generado. Acciones de la forma que permiten realizar operaciones como acceso a JavaBeans, inclusión de paginas,...

La especificación JSP 1.2 – Expresiones JSP.

Una expresión JSP se usa para insertar valores Java directamente en la salida. Tiene la siguiente forma: <%= expresión Java %> La expresión Java es evaluada, convertida a un string, e insertada en la página. Esta evaluación se realiza durante la ejecución (cuando se solicita la página) y así tiene total acceso a la información sobre la solicitud. Por ejemplo, esto muestra la fecha y hora, del servidor, en que se solicitó la página: Current time: <%= new java.util.Date() %> Notación XML: Expresión Java

La especificación JSP 1.2 – Ejemplo 1:Expresiones

Fichero Expresiones.jsp Ejemplo1: Expresiones

Ejemplos de expresiones JSP

  • Hora actual en el servidor: <%= new java.util.Date() %>
  • Nombre del host: <%= request.getRemoteHost() %>
  • Identificador de sesion: <%= session.getId() %>
  • Valor del parametro testParam: <%= request.getParameter("testParam") %>

La especificación JSP 1.2 – Scriptlets JSP.

Si queremos hacer algo más complejo que insertar una simple expresión, los Scriptlets JSP nos permiten insertar código Java arbitrario dentro del método servlet que será construido al generar la página. Los Scriptlets tienen la siguiente forma: <% Código Java %> El código dentro de un scriplet se insertará exactamente como está escrito, y cualquier HTML estático anterior o posterior al scriptlet se convierte en sentencias print(). Por tanto no se necesita completar la sentencias Java, y los bloques abiertos pueden afectar al HTML estático fuera de los scriplets. Notación XML: Código Fragmento de JSP que contiene una mezcla de texto y scritplets: <% if (nombre.equals(“Pepe”)) { %> Hola Pepe <% } else { %> No sé cual es tu nombre! <% } %> que se convertirá en algo como esto:a if (nombre.equals(“Pepe”)) { out.println("Hola Pepe"); } else { out.println(" No sé cual es tu nombre! "); } Si queremos usar los caracteres "%>" dentro de un scriptlet, debemos poner "%\>".

La especificación JSP 1.2 – Ejemplo 2: Scriplets JSP.

Fichero BGColor.jsp Color de Fondo <% String bgColor = request.getParameter("bgColor"); boolean hasExplicitColor; if (bgColor != null) { hasExplicitColor = true; } else { hasExplicitColor = false; bgColor = "WHITE"; } %>

Color de Fondo

La especificación JSP 1.2 – Ejemplo 2: Scriplets JSP (continuación).

Fichero BGColor.jsp <% if (hasExplicitColor) { out.println(“Establecido el color de fondo:” + bgColor + “.”); } else { out.println(“Usando los colores de fondo por defecto.”); } %>

La especificación JSP 1.2 – Declaraciones JSP.

Una declaración JSP nos permite definir métodos o atributos que serán insertados dentro del cuerpo principal de la clase servlet (fuera del método service() que procesa la petición). Tienen la siguiente forma: <%! Código Java%> Como las declaraciones no generan ninguna salida, normalmente se usan en conjunción con expresiones JSP o Scriptlets. Notación XML: Código Como con los scriptlet, si queremos usar los caracteres "%>", ponemos "%\>".

La especificación JSP 1.2 – Ejemplo 3: Declaraciones JSP.

Fichero ContadorDeAccesos.jsp Ejemplo3: Declaraciones JSP

Declaraciones JSP

<%! private int accessCount = 0; %>

Número de accesos al servidor desde que se inició: <%= ++accessCount %>

La especificación JSP 1.2 – Comentarios JSP.

Comentarios ocultos JSP: Estos comentarios no son visibles en la página generada y tienen la forma: <%-- texto --%> Comentarios visibles JSP: Estos comentarios son visibles en la página generada, incluso se pueden mezclar con expresiones JSP: ] --> Ejemplo: <%@ page language="java" %> Ejemplo de comentarios ocultos

Ejemplo de comentarios ocultos

<%-- Este comentario no se incluye en el response --%>

Directivas JSP

La especificación JSP 1.2 – Directivas JSP.

Una directiva JSP afecta a la estructura general de la clase servlet que resulta de la compilación de la JSP. Normalmente tienen la siguiente forma: <%@ directive atributo1="valor1" atributo2="valor2" ... atributoN="valorN" %> NOTACION XML:

La especificación JSP 1.2 – Directiva page.

La directiva page dirige al motor Servlet´s sobre la configuración general de la página. Nos permite definir uno o mas de los siguientes atributos aplicables a toda la página: <%@ page [import=“{paquete.class | paquete.*},…”] [session=“true|false”] [contentType=“tipoMime”[;charset=Character-Set]” | “text/html;charset=ISO-8859-1”] [pageEncoding="characterSet | ISO-8859-1“] [errorPage=“URL”] [isErrorPage=“true|false”] [isThreadSafe=“true|false”] [language=“java”] [extends=“paquete.class”] [buffer=“none”|8kb|sizekb”] [autoFlush=“true|false”] [info=“texto”] %> Notación XML: donde la listaDeAtributos es la misma que se muestra arriba. Ejemplos: <%@ page import="java.util.*, java.lang.*" %> <%@ page buffer="5kb" autoFlush="false" %>

La especificación JSP 1.2 – Directiva page. Atributo import.

El atributo import nos permite especificar los paquetes que deberían ser importados. Si no se especifica nada en el servlet se importan los siguientes paquetes por defecto: java.lang.* javax.servlet.* javax.servlet.jsp.* javax.servlet.http.* Puede aparecer de una de las siguientes formas: <%@ page import=“paquete.clase”%> <%@ page import=“paquete.clase1, ..., paquete.claseN”%> EL atributo import es el único que puede aparecer más de una vez dentro de una JSP. Hay que poner el atributo import antes de usar las clases importadas. Por ejemplo, la directiva: <%@page import=“java.util.*”%> Indica que todas las clases del paquete java.util deberían estar disponibles en la página JSP. Si las clases que importamos no están en los paquetes estándar java o javax,servlet, tenemos que estar seguros de que las clases estén instaladas en el servidor de aplicaciones.

La especificación JSP 1.2 – Ejemplo 1: Directiva page.

Fichero AtributoImport.jsp Ejemplo1: Directiva page. Atributo import

Ejemplo1: Directiva page. Atributo import

<%@ page import="java.util.*,servletsyjsps.*" %> <%-- Declaraciones JSP --%> <%! private String randomID() { int num = (int)(Math.random()*10000000.0); return("id" + num); } private final String NO_VALUE = "No Value"; %> Fichero ServletUtilities.java: package servletsyjsps; import javax.servlet.*; import javax.servlet.http.*; public class ServletUtilities { .......................... public static String getCookieValue(Cookie[] cookies, String cookieName, String defaultValue){ for (int i=0; i

La especificación JSP 1.2 – Ejemplo 1: Directiva page (continuación).

Fichero AtributoImport.jsp <%-- Scriptlet JSP --%> <% Cookie[] cookies = request.getCookies(); String oldID = ServletUtilities.getCookieValue(cookies, "userID", NO_VALUE); String newID; if (oldID.equals(NO_VALUE)) { newID = randomID(); } else { newID = oldID; } LongLivedCookie cookie = new LongLivedCookie("userID", newID); response.addCookie(cookie); %> <%-- Expresiones JSP --%> La última vez que se accedió a esta página fue <%= new Date() %> con un id de usuario <%= oldID %>. Fichero LongLivedCookie.java: package servletsyjsps; import javax.servlet.http.*; Public class LongLivedCookie extends Cookie{ public static final int SECONDS_PER_YEAR=60*60*24*365; public LongLivedCookie(String name, String value){ super(name, value); setMaxAge(SECONDS_PER_YEAR); } }

La especificación JSP 1.2 – Directiva page. Atributo session.

El atributo session indica si la página JSP participa o no en una sesión HTTP. El atributo puede tomar los valores: <%@page session=“true|false” %> Un valor true (valor por defecto) indica que la variable predefinida session (del tipo HttpSession) debería unirse a la sesión existente si existe una, y si no existe se debería crear una nueva sesión para unirla. Un valor de false indica que no se usarán sesiones.

Showing 1 - 20 of 61 items Details

Name: 
Jsps-tr
Author: 
N/A
Company: 
N/A
Description: 
Aplicaciones Web de Servidor JavaServer Pages (JSP) 23 y 25 de Abril de 2008
Tags: 
jsp | especificación | html | fichero | page | atributo | directiva | bean
Created: 
1/16/2010 5:23:40 PM
Slides: 
61
Views: 
104
Downloads: 
1
Rating: 
0


> Comment



Share this presentation
|

Comments

Share this presentation:

|
Sitemap