Anda di halaman 1dari 67

JSP

JavaServer Pages (JSP) es una tecnologa basada en el lenguaje

Java que permite incorporar contenido dinmico a las pginas web. Los archivos JSP combinan HTML con etiquetas especiales y fragmentos de cdigo Java. Sirve para crear y gestionar pginas web dinmicas Permite mezclar en una pgina cdigo HTML para generar la parte esttica, con contenido dinmico generado a partir de marcas especiales <% .... %> El contenido dinmico se obtiene, en esencia, gracias a la posibilidad de incrustar dentro de la pgina cdigo Java de diferentes formas. Su objetivo final es separar la interfaz (presentacin visual) de la implementacin (lgica de ejecucin)

Un ejemplo simple de archivo JSP sera:

Tipos de Datos

Los tipos de datos ms comunes en java jsp son: Tipo byte short int long float double char boolean Descripcin Entero con signo Entero con signo Entero con signo Entero con signo Real de simple precisin Real de doble precisin Caracteres Unicode Verdadero o falso Valor min./mx. -128 a 127 -32768 a 32767 -2147483648 a 2147483647 -922117036854775808 a 922117036854775807 3.402823e38 a 1.401298e-45 1.79769313486231570e+308 a 4.9406564584124654e-324 \u0000 a \uFFFF True o false

Elementos de una pgina JSP

Cdigo HTML. Directivas. Afectan a toda la estructura del servlet generado. Elementos de Scripting. Permiten insertar cdigo Java en la pgina JSP. Acciones. Afectan al comportamiento en tiempo de ejecucin del JSP.

Directivas JSP
Utilizadas para definir y manipular una serie de atributos dependientes de la pgina que afectan a todo el JSP. Las directivas existentes son las siguientes:
Page Include Taglib

Directiva Page
Sintaxis <%@ page ATRIBUTOS %> Donde ATRIBUTOS son parejas: nombre=valor

Ejemplo:

Directiva Include
Indica al motor JSP que incluya el contenido del fichero correspondiente en el JSP, insertndolo en el lugar de la directiva del JSP. El contenido del fichero incluido es analizado en el momento de la traduccin del fichero JSP y se incluye una copia del mismo dentro del servlet generado. Una vez incluido, si se modifica el fichero incluido no se ver reflejado en el servlet El tipo de fichero a incluir puede ser un fichero HTML (esttico) fichero jsp (dinmico)

Sintaxis <%@ include file=Nombre del fichero %>

Ejemplo: Pgina JSP que incluye el contenido de dos ficheros (una pgina HTML y una pgina JSP)

Directiva Taglib
Permite extender los marcadores de JSP con etiquetas o marcas generadas por el propio usuario (etiquetas personalizadas). Se hace referencia a una biblioteca de etiquetas que contiene cdigo Java compilado definiendo las etiquetas que van a ser usadas, y que han sido definidas por el usuario.
Sintaxis <%@ taglib uri=taglibraryURI prefix=tagPrefix %>

Elementos de Scripting
Permiten la insercin de Declaraciones, Cdigo Java arbitrario (scriptlets) y Expresiones dentro de una pgina JSP
Declaraciones Cdigo Java arbitrario Expresiones

Declaraciones
Usadas para definir variables y mtodos con mbito de clase para el servlet generado Estas variables o mtodos declarados pasarn a ser variables de instancia de la clase servlet generada

Esto significa que sern globales a todo el servlet generado para la pgina

Sintaxis
<% ! Declaracin %>

Ejemplo: Uso de un contador que indica el nmero de veces que se accede a una pgina.

Scriptlets
Un scriptlet es un bloque de cdigo Java insertado en pgina y ejecutado durante el procesamiento de respuesta El cdigo introducido se inserta directamente en mtodo _jspService() del servlet generado para pgina la la el la

Sintaxis

<% cdigo Java %>

Ejemplo: Pgina JSP que usa cdigo Java para repetir 10 veces un saludo.

Expresiones
Notacin abreviada que enva el valor de una expresin Java al cliente. La expresin se traduce por la llamada al mtodo println del objeto out dentro del mtodo _jspService(), con lo que en cada peticin, la expresin es evaluada y el resultado se convierte a un String y se visualiza

Sintaxis

<%= Expresin Java a evaluar %>

Ejemplo: En esta pgina JSP la expresin consiste en crear un objeto y llamar a uno de sus mtodos. El resultado es un string que se muestra al cliente

Acciones estndar
Son marcas estndar, con formato XML, que afectan al comportamiento en tiempo de ejecucin del JSP y la respuesta se devuelve al cliente. En la traduccin de JSP al servlet, la marca se reemplaza por cierto cdigo Java que define a dicha marca. Una marca por tanto define un cierto cdigo Java (es como una macro). Constan de un prefijo y un sufijo adems de una serie de atributos. El prefijo es siempre jsp en las acciones estndar Sintaxis <jsp:sufijo atributos/>

Accin jsp:include
Permite incluir un recurso especificado por la URL, en la peticin JSP en tiempo de ejecucin. Cuando se realiza la traduccin de JSP al servlet, dentro del mtodo _jspService() se genera el cdigo que comprueba si existe el recurso (pgina) y si no se crea, invocndolo a continuacin. Cuando se ejecuta el servlet, se invoca al recurso que realiza la operacin y devuelve el resultado al servlet El elemento incluido puede acceder al objeto request de la pgina padre, y adems de los parmetros normales, a los que se aadan con <jsp:param>

Sintaxis <jsp:include page=URL flush=true> <jsp:param name=nombre clave value=valor/> (no obligatorios) .... </jsp:include>

Ejemplo de uso de la accin include

Fichero incluido (incluido.jsp)

Accin jsp:param
Se usa como submarca dentro de cualquier otra marca Sirve para pasar parmetros a un objeto
Sintaxis <jsp:.... > <jsp:param name=nombre clave value=valor/> (no obligatorios) .... </jsp:.... >

Accin jsp:forward
Esta marca permite que la peticin sea redirigida a otra pgina JSP, a otro servlet o a otro recurso esttico Muy til cuando se quiere separar la aplicacin en diferentes vistas, dependiendo de la peticin interceptada. Cuando se ejecuta el servlet se redirige hacia otro servlet y no se vuelve al servlet original. Sintaxis
<jsp:forward page=URL > <jsp:param name=nombre clave value=valor/> (no obligatorios) .... </jsp:forward>

Ejemplo: Formulario HTML que pide nombre y password y los enva a una pgina jsp que lo analiza (forward.jsp)

Pgina JSP que lo ejecuta No tiene nada de HTML En funcin de los valores de los parmetros de la peticin redirige a una segunda pgina JSP (si es un usuario y una clave determinadas) o bien recarga la pgina inicial (incluyndola) Mezcla cdigo Java puro con acciones estndar

El programa saludoforward.jsp podra ser el siguiente:

Objetos Implcitos

En JSP disponemos de algunos objetos implcitos, que nos permitirn acceder a diferente informacin y realizar diversas acciones. En JSP tenemos los siguientes objetos implcitos: request, response, out, session, application, config, pageContext y page.

request
Es un objeto de la clase HttpServletRequest, su uso principal es el acceso a los parmetros de la peticin. Destacaremos las siguientes funciones: String getParameter(String name). Devuelve el valor de un parmetro. Enumeration getParameterNames(). Devuelve una enumeracin con los nombres de todos los parmetros de la peticin. String[] getParameterValues(String name). Los parmetros pueden tener valor mltiple, con esta funcin recuperamos un array con todos los valores para un nombre dado. String getRemoteAddr(). Devuelve la IP del host desde el que se realiza la peticin String getRemoteHost(). Devuelve el nombre del host desde el que se realiza la peticin.

Ejemplo:

response
Es un objeto de la clase HttpServletResponse, que asiste al servlet en su generacin de la respuesta para el cliente, contiene funciones para manejo de cabeceras, cdigos de estado, cookies y transferencia de control.

out
Es un objeto de la clase JspWriter, es el que nos permite acceder a la salida del navegador desde los scriplet. Ejemplo:

session
Es un objeto de la clase HttpSession. Nos permite acceder a la sesin asociada a la peticin. A travs de este objeto podemos, entre otras cosas, guardar objetos que sern accesibles desde cualquier JSP de la sesin o invalidarla. Para guardar y recuperar informacin usaremos:

Y para invalidar la sesin:

Ejemplo:

application
Es un objeto de la clase ServletContext. Este objeto es comn para toda la aplicacin web y, entre otras cosas, nos permite almacenar informacin que ser accesible desde todas las pginas de la aplicacin web, independientemente de la sesin. Para guardar y recuperar valores usaremos:

Ejemplo:

pageContext
Es un objeto de la clase PageContext. Entre otras cosas, nos permite almacenar informacin localmente a la pgina. Para guardar y recuperar valores:

Tambin podemos usar PageContext para almacenar y recuperar informacin en sesin y en aplicacin: Almacenar en contexto de pgina:

Almacenar en contexto de sesin:

Almacenar en contexto de aplicacin:

Instrucciones de Control de Programa

Instrucciones de control de programa permiten alterar la secuencia normal de ejecucin de un programa. Las instrucciones condicionales que en java jsp se implementan son las instrucciones if y switch. Las instrucciones para ciclos son for, while y do while. Tienen la misma sintaxis que en Java.

Sentencia If

Otro ejemplo if

switch

Checkbox y excepciones

Radio button

Bucle for

Bucle while

Bucle do while

Arreglos

Un arreglo tipo lista se define como una variable que permite almacenar un conjunto de datos del mismo tipo organizados en una sola columna y uno o mas renglones. Los procesos normales con una lista o con sus elementos, incluyen declarar toda la lista, capturar sus elementos, desplegarlos, realizar operaciones con ellos, desplegarlos, etc. Sintaxis:
tipodato nomlista[]= new tipodato[cantelementos];

Ejemplo:

ARREGLOS BIDIMENSIONALES TIPO TABLA


Un arreglo tipo tabla se define como un conjunto de datos del mismo tipo organizados en dos o mas columnas y uno o mas renglones. Para procesar internamente todos los elementos de la tabla se ocupan dos ciclos, uno externo para controlar rengln y uno interno para controlar columna. Los elementos de la tabla se deberan simbolizar con el nombre de la tabla y 2 subindices, el primer subindice referencia al renglon y el siguiente subindice referencia la columna los dos dentro del mismo corchete.

La declaracin de una tabla ser de acuerdo a los siguientes formatos:


1) tipodato nomtabla[][]= new tipodato[reng][col]; ejemplo: int calif[][]=new int[3][4]; double ingresos[][]= new double[3][4]; 2) Clasenumerica objetotabla[][]= new constructor[ren][col];

Ejemplo:
Integer calif[][]= new Integer[2][3]; Double ingresos[][]=new Double[3][4];

Ejemplo:

Declaraciones o Procedimientos

Una declaracin es un grupo de instrucciones, variables, constantes, etc., que estn diseados con un propsito particular y tiene su nombre propio. Una declaracin es un modulo de un programa que realiza una tarea especifica y que no puede regresar valores al programa principal u a otro procedimiento que lo este invocando. Un programa puede tener tantos procedimientos como se deseen. Su formato es:
<%! void Nom_decl(){instrucciones;} %>

Ejemplo:

Funciones

Una funcin es un modulo de un programa separado del cuerpo principal, que realiza una tarea especifica y que puede regresar un valor a la parte principal del programa u otra funcin o procedimiento que la invoque. La forma general de una funcin es:
<%! tipoDatoRegresa Nom_fun(parametros){ cuerpo de instrucciones; intruccion return; } %>

Ejemplo:

ARREGLOS COMO PARAMETROS Para pasar un arreglo completo como parmetro a un procedimiento a una funcin solo se manda el nombre del arreglo sin corchetes e ndices, en el procedimiento o funcin que recibe solo se declara un arreglo del mismo tipo y se puede usar el mismo o diferente nombre del arreglo sin corchetes e ndices.

Ejemplo:

Acceder a una clase Java desde un JSP

Crear en webapps/ROOT/WEB-INF/classes/pruebas/ un archivo Prueba.java con el contenido:

Nos situamos en /webapps/ROOT/WEB-INF/classes y compilamos:

Crear un archivo prueba.jsp en webapps/ROOT, con el


contenido:

Anda mungkin juga menyukai