Sunteți pe pagina 1din 15

Universidad de Sonsonate -

FICN

Ingeniera en Sistemas Computacionales


Desarrollo del Software I

Gua #3

Swing de Java

JSP es una especificacin de Sun Microsystems, sirve para crear y gestionar pginas web
dinmicas.
Las paginas JSP permiten 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 y su objetivo final es separar la interfaz (presentacin visual)
de la implementacin (lgica de ejecucin)
Una pgina JSP puede contener dos tipos de elementos bien diferenciados, por un lado
tenemos los elementos estticos como etiquetas HTML, texto, script de cliente, etiquetas XML,
etc., que no necesitan de ningn procesamiento por parte del contenedor de pginas JSP, sino
que son traducidos en el servlet correspondiente mediante sentencias out.print(), es decir, se
devolvan directamente a la respuesta que se enviaba al cliente.
Por otro lado tenemos otro grupo de elementos los cuales son: las directivas, elementos de
scripting (elementos para construir script de servidor con sentencias Java), acciones y objetos
integrados. Este grupo de elementos necesitan de un procesamiento en el servidor
(contenedor de pginas JSP) ya que son los encargados de generar el contenido dinmico, es
decir, son los elementos que en forma de etiquetas similares a XML nos permiten programar
nuestras pginas JSP.
Es por eso que se debe comenzar a tratar elementos de las pginas JSP y el primero ser las
directivas, que se corresponden con una etiqueta especial de JSP que puede utilizarse
utilizando la sintaxis XML.
GUA 3 DESARROLLO DEL SOFTWARE I

Universidad de Sonsonate -

FICN

Expresin JSP
<%= expression %>;

La Expresin es evaluada y situada en la salida.


El equivalente XML es
<jsp:expression> expression </jsp:expression>

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>

Declaracin JSP
<%! code %>

El cdigo se inserta en el cuerpo de la clase del servlet, fuera del mtodo service.
El equivalente XML es:
<jsp:declaration> code </jsp:declaration>.

GUA 3 DESARROLLO DEL SOFTWARE I

Universidad de Sonsonate -

FICN

Comentario JSP
<%-- comment --%>

Comentario ignorado cuando se traduce la pgina JSP en un servlet.


Si queremos un comentario en el HTML resultante, usamos la sintaxis de comentario normal
del HTML <!-- comment -->.

Expresiones JSP
<%= 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() %>

El equivalente en XML es usar una sintaxis alternativa para las expresiones JSP:
<jsp:expression>
Expresin Java
</jsp:expression>

GUA 3 DESARROLLO DEL SOFTWARE I

Universidad de Sonsonate -

FICN

Declaraciones
Los elementos XML, al contrario que los del HTML, son sensibles a las maysculas.
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 %>

Las directivas son un conjunto de etiquetas JSP que ofrecen al contenedor de pginas JSP
instrucciones especficas de cmo se debe procesar una pgina determinada. Las directivas
definen propiedades generales que afectan a la pgina, incluso algunas de estas directivas se
pueden utilizar para generar de forma indirecta contenido dinmico que ser devuelto como
parte de la respuesta enviada al cliente, y por lo tanto tienen una traduccin correspondiente
dentro del servlet equivalente a la pgina JSP. Las directivas sirven como mensajes que se
envan desde la pgina JSP al contendor JSP que la ejecuta.
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" %>
GUA 3 DESARROLLO DEL SOFTWARE I

Universidad de Sonsonate -

FICN

Directiva page JSP (@page)


Esta directiva se usa para establecer las propiedades generales de una pgina JSP. Podemos usar esta
directiva varias veces a lo largo de la pgina JSP, pero slo podemos asignar el valor de un atributo una
vez por cada una, excepto para el atributo import. Los valores de la directiva se aplicarn a toda la
pgina.

Aqu podemos ver la sintaxis de la directiva page con todos sus atributos. Los valores por defecto se
muestran en negrita. Los corchetes ([...]) indican un trmino opcional. La barra vertical (|) proporciona
una eleccin entre dos valores como true y false.
<%@ page
[ languaje="java"]
[ extends="package.class"]
[ import= "{ package.class|package.*}, ..." ]

[ session="true|false"]
[ buffer="none|8kb|sizekb"]
[ autoFlush="true|false"]
[ isThreadSafe="true|false"]
[ info="text"]
[ errorPage="URLrelativa"]
[ contentType="mimeType[
8859-1]

;charset=characterSet]

text/html;

charset=ISO-

[ isErrorPage="true|false"]
%>

language=java
Este atributo define el lenguaje de script usado en los scriptlet, declaraciones y expresiones en el
fichero JSP y en cualquier fichero incluido. En JSP 1.0 el nico lenguaje permitido es Java.
extends=package.class
GUA 3 DESARROLLO DEL SOFTWARE I

Universidad de Sonsonate -

FICN

Este atributo especifica un nombre totalmente cualificado de una superclase que ser extendida por la
clase Java en el fichero JSP. Sun recomienda que usemos este atributo con cuidado, ya puede limitar
la habilidad del motor del JSP a proporcionar la superclase especializada que mejora la calidad del
fichero compilado.
import= { package.class | package.* },
Esta lista especifica una lista separada por comas de uno o ms paquetes o clases que el fichero JSP
debera importar. Las clases de los paquetes se ponen a disposicin de los scriptlets, expresiones,
declaraciones y etiquetas dentro del fichero JSP.
Como cabra esperar, el atributo import debe aparecer antes de cualquier etiqueta que refiera la clase
importada. Para importar varios paquetes, podemos usar una lista separada por comas, ms de una
directiva import o una combinacin de ambas.
session=true|false
Todo cliente debe unirse a una sesin HTTP para poder usar una pgina JSP. Si el valor es true, el objeto
session se refiere a la sesin actual o a una nueva sesin. Si el valor es false, no podemos utilizar el
objeto session en el fichero JSP. El valor por defecto es true.
buffer=none|8kb|sizekb
Este atributo especifica el tamao del buffer en kilobytes que ser usado por el objeto out para manejar
la salida enviada desde la pgina JSP compilada hasta el navegador cliente. El valor por defecto es 8 kb.
autoFlush=true|false
Este atributo especifica si la salida sera enviada o no cuando el buffer est lleno. Por defecto, el valor
es true, el buffer ser descargado. Si especificamos false, se lanzar una excepcin cuando el buffer se
sobrecargue.
isThreadSafe=true|false
Este atributo especifica si la seguridad de threads est implementada en el fichero JSP. El valor por
defecto, true, significa que el motor puede enviar mltiples solicitudes concurrentes a la pgina.
Si usamos el valor por defecto, varios threads pueden acceder a la pgina JSP. Por lo tanto, debemos
sincronizar nuestros mtodos para proporcionar seguridad de threads.
Con false, el motor JSP no enva solicitudes concurrentes a la pgina JSP. Probablemente no querremos
forzar esta restriccin en servidores de gran volumen porque puede daar la habilidad del servidor de
enviar nuestra pgina JSP a mltiples clientes.
info=text
GUA 3 DESARROLLO DEL SOFTWARE I

Universidad de Sonsonate -

FICN

Este atributo nos permite especificar una cadena de texto que es incorporada en la pgina JSP
compilada. Podemos recuperar el string ms tarde con el mtodo getServletInfo().
errorPage=URLrelativa
Este atributo especifica un path a un fichero JSP al que este fichero JSP enva excepciones. Si el path
empieza con una /, el path es relativo al directorio raz de documentos de la aplicacin JSP y es
resuelto por el servidor Web. Si no, el path es relativo al fichero JSP actual.
isErrorPage=true|false
Este atributo especifica si el fichero JSP muestra una pgina de error. Si es true, podemos usar el
objetoexception, que contiene una referencia a la excepcin lanzada, en el fichero JSP. Si es false (el
valor por defecto), significa que no podemos usar el objeto exception en el fichero JSP.
contentType=mimeType [ ; charset=characterSet ] | text/html;charset=ISO-8859-1
Este atributo especifica el tipo MIME y la codificacin de caracteres que use el fichero JSP cuando se
enva la respuesta al cliente. Podemos usar cualquier tipo MIME o conjunto de caracteres que sean
vlidos para el motor JSP.
El tipo MIME por defecto es text/html, y el conjunto de caracteres por defecto es ISO-8859. (En el IDE
de
Netbeans
es UTF-8).
Los atributos contentType, pageEncoding e import son los ms usados. De hecho la plantilla bsica
que proporciona el IDE de NetBeans incorpora siempre la directiva <%@page contentType=text/html
pageEncoding=UTF-8 %>
Los atributos language y extends no suele utilizarse. El resto de los atributos se utilizan para
situaciones muy concretas.

Directiva include JSP


Esta directiva permite a los autores de pginas incluir el contenido de un recurso dentro del
contenido generado por una pgina JSP. Elrecurso a incluir dentro de la pgina JSP se indica
mediante una URL relativa o absoluta, pero que debe hacer referencia la servidor en el que se
ejecutan las pginas JSP. La sintaxis general de esta directiva ser la siguiente.
<%@ include file=URLlocal%>

GUA 3 DESARROLLO DEL SOFTWARE I

Universidad de Sonsonate -

FICN

Y su sintaxis equivalente en XML es:


<jsp:directiva.include file=URLlocal/>
Accin jsp:include
<jsp:include page="relative URL" flush="true"/>

Incluye un fichero en el momento en que la pgina es solicitada.


Aviso: en algunos servidores, el fichero incluido debe ser un fichero HTML o JSP, segn
determine el servidor (normalmente basado en la extensin del fichero).

GUA 3 DESARROLLO DEL SOFTWARE I

Universidad de Sonsonate -

FICN

El primer paso es crear un proyecto web, para crearlo hay que ir al men File opcin New
Project

Elegimos la carpeta Web y la opcin Web Application como se muestra en la imagen:

Ahora hacemos click en Next, asignamos o buscamos la localizacin del proyecto o Project
Location y le asignamos el nombre o Project Name, el cual en nuestro caso tendr Prueba.
Como se muestra en la siguiente imagen:

GUA 3 DESARROLLO DEL SOFTWARE I

Universidad de Sonsonate -

FICN

Luego hacemos clic en siguiente y establecemos el servidor GlassFish Server, si no es la


opcin por defecto.

GUA 3 DESARROLLO DEL SOFTWARE I

10

Universidad de Sonsonate -

FICN

Al hacer clic en Finish o Finalizar nos creara todo el proyecto web el cual por defecto ya
contendr una carpeta Web Pages y una pgina jsp llamada index que ser la principal o la
primera en ejecutarse. Si queremos agregar ms paginas JSP o HTML tenemos que hacer clic
derecho sobre la carpeta Web Pages, elegir la opcin New y luego seleccionar que tipo de
pgina queremos si es JSP o HTML.

Con todo lo anterior aclarado ya podemos utilizar NetBeans y comenzar con nuestro primer
ejercicio que se define a continuacin:

Primer Ejercicio de JSP (Primera pgina)


Ejemplo de pgina dinmica que dice Hola y escribe la fecha actual (fichero Primera.jsp)
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ page info="Un ejemplo Hola Mundo"
import="java.util.Date" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
GUA 3 DESARROLLO DEL SOFTWARE I

11

Universidad de Sonsonate -

FICN

<body>
<h1> Hola, Mundo! </h1>
La fecha de hoy es: <strong><%= new Date().toString() %> </strong>
</body>
</html>

En esta pgina se mezcla cdigo HTML con cdigo Java incrustado con unas marcas
especiales.
En este caso es una expresin, que se sustituye en la pgina por el resultado de evaluarla.
En otros casos es un trozo de cdigo Java que simplemente se ejecuta.

Segundo Ejercicio de JSP (Directiva Page)


Muestra el uso de la directiva page. Agregar al proyecto Creado, Segunda.jsp. Es muy similar
a Primera.jsp, pero con dos directivas page. Su Localizacin ser la misma que Primera.jsp,
es decir, dentro de la carpeta web.

Cdigo de Segunda.jsp:

GUA 3 DESARROLLO DEL SOFTWARE I

12

Universidad de Sonsonate -

FICN

Tercer Ejercicio de JSP (Directiva Include)


Muestra el uso de la directiva include. Se trata de acceder a una jsp que incluye otra jsp con
informacin de la fecha actual y una pgina htm con informacin de copyright. Para ejecutar
el ejemplo, agregar al proyecto Creado, DirectivaInclude.jsp, Fecha.jsp y Copyright.html

GUA 3 DESARROLLO DEL SOFTWARE I

13

Universidad de Sonsonate -

FICN

Cdigo de DirectivaInclude.jsp

Cdigo de Fecha.jsp

Cdigo de Copyright.html

GUA 3 DESARROLLO DEL SOFTWARE I

14

Universidad de Sonsonate -

FICN

Ejercicio 4: Para el ejercicio 2. Mostrar en vez de la palabra Mundo, en el texto mostrado


HOLA Mundo, cmo te va la vida?, tu primer nombre. Sin modificar el cdigo del ejercicio.

Ejercicio 5: Hacer una pgina utilizando la directiva <%@Include%>, separando la


principal e incluyendo una pgina para el encabezado, una para el men, una para el cuerpo y
otra para el pie (utilizando la estructura de HTML5).
El men debe tener las tres opciones y funcionar para mostrar uno de los 3 ejercicios anteriores
en la parte del <section> segn sea la opcin cliqueada. Recordar que se har una sola pgina
jsp llamada Principal.jsp. (tip: request.getParameter)
Ejercicio 6: modificar el archivo index para que sea un formulario login para un usuario admin,
y otro user (pass admin y user). Al logearse de forma correcta debe dirigirse a la pgina
Principal.jsp (<% response.sendRedirect("url");%> ) y mostrar un men diferente si es admin
(incluir un botn ms para regresar al login).

GUA 3 DESARROLLO DEL SOFTWARE I

15

S-ar putea să vă placă și