• Nenhum resultado encontrado

Curso de JSP Basico

N/A
N/A
Protected

Academic year: 2021

Share "Curso de JSP Basico"

Copied!
46
0
0

Texto

(1)

Curso de

Curso de

 Java Server Pages

 Java Server Pages

Nivel básico

Nivel básico

Manual del alumno

Manual del alumno

<JSP>

<JSP>

 e

 e

 d 

 d 

i  

i  

 c 

 c 

 S 

 S 

i  

i  

m

m

 o

 o

n

n

 e

 e

l   

l   

 : 

 : 

 6 

 6 

 8 

 8 

 0 

 0 

 9 

 9 

 7 

 7 

 C 

 C 

 e

 e

l   

l   

 : 

 : 

 8 

 8 

 8 

 8 

 8 

 8 

 8 

 8 

 3 

 3 

 8 

 8 

 7 

 7 

E

E

m

m

 a

 a

i  

i  

l   

l   

 : 

 : 

 c 

 c 

 e

 e

 d 

 d 

i  

i  

 c 

 c 

 @

 @

 s 

 s 

 o

 o

l   

l   

 u

 u

 c 

 c 

i  

i  

 o

 o

n

n

 j   

 j   

 a

 a

 v

 v

 a

 a

 .

 .

 c 

 c 

 o

 o

m

m

 W

 W

 S 

 S 

 o

 o

l   

l   

 u

 u

 c

 c

i   

i   

 o

 o

n

n

 J 

 J 

 a

 a

 v

 v

 a

 a

 .

 .

 c

 c

 o

 o

m

m

(2)

ÍÍ

ndice

ndice

 Índice...2

 Índice...2

1Introducción al curso...5

1Introducción al curso...5

1.1Objetivo de este curso...5

1.1Objetivo de este curso...5

1.2Manual 1.2Manual del del alumno..alumno...5...5

1.3Ejercicio 1.3Ejercicios s prácticos....prácticos...5...5

1.4Requisi 1.4Requisitos tos para para atender atender a a este este curso...curso...5...5

1.5Soporte después del curso...5

1.5Soporte después del curso...5

  2Introducción al JSP...6

  2Introducción al JSP...6

2.1¿Que es el JSP?...6

2.1¿Que es el JSP?...6

2.2¿Por 2.2¿Por qué qué utilizaríamutilizaríamos os el el JSP?...JSP?...6...6

2.3Navegadores web...6

2.3Navegadores web...6

 

3Arquitectura

J2EE...7 

 

3Arquitectura

J2EE...7 

3.1Introducción a la Tecnología y Conceptos J2EE...7

3.1Introducción a la Tecnología y Conceptos J2EE...7

3.2Componentes J2EE...7

3.2Componentes J2EE...7

3.3La 3.3La ArquitectArquitectura ura Java Java Naming Naming Directory Directory Interface Interface (JNDI)...(JNDI)...8...8

3.3.1Ejemplo de JNDI...8

3.3.1Ejemplo de JNDI...8

  4El protocolo HTTP...9

  4El protocolo HTTP...9

4.1Modelo 4.1Modelo de de consulta consulta / / respuesta respuesta HTTP....HTTP...9...9

4.2Detalles 4.2Detalles de de una una consulta..consulta...9...9

4.3Detalles de respuesta...10

4.3Detalles de respuesta...10

4.4Parámetro 4.4Parámetros s de de consulta..consulta...11...11

4.5Métodos de consulta...11

4.5Métodos de consulta...11

5Instalación del servidor JSP...13

5Instalación del servidor JSP...13

5.1Jakarta 5.1Jakarta Tomcat...Tomcat...13...13

5.2Instalación...13

5.2Instalación...13

5.3Configuración de Eclipse...13

5.3Configuración de Eclipse...13

5.4Verificació 5.4Verificación n de de la la instalacióninstalación...14...14

6Uso

6Uso de

de herramienta

herramienta y

y entorno...

entorno...

...

...

...

...

...

...

...

...

...

...

...

...

...15

...15

6.1Eclipse 6.1Eclipse...15...15

6.1.1Creació 6.1.1Creación n del del servidor...servidor...15...15

6.1.2Creación de un nuevo proyecto web...16

6.1.2Creación de un nuevo proyecto web...16

6.1.3Creación 6.1.3Creación de de la la página página de de índice....índice...17...17

7Utilización

7Utilización de

de los

los scriptlets...

scriptlets...

...

...

...

...

...

...

...

...

...

...

...

...

...

...20

...20

7.1¿Qué son los scriptlets?...20

7.1¿Qué son los scriptlets?...20

7.2Los 7.2Los scriptlet scriptlet de de declaración declaración de de variables...variables...20...20

7.3Los scriptlet de utilización de variables...20

7.3Los scriptlet de utilización de variables...20

7.4Los scriptlets de código...20

7.4Los scriptlets de código...20

 ©

(3)

7.5Agregar comentarios...21

7.5Agregar comentarios...21

8Utilización de directivas...22

8Utilización de directivas...22

8.1Directiva 8.1Directiva de de página....página...22...22

8.1.1Lista de parámetros para directiva de Página...22

8.1.1Lista de parámetros para directiva de Página...22

8.2Directiva de inclusión...23

8.2Directiva de inclusión...23

8.3Directiva taglib...23

8.3Directiva taglib...23

9Utilización de variables de sesión...24

9Utilización de variables de sesión...24

9.1Declaración 9.1Declaración de de variable variable de de sesión...sesión...24...24

9.2Recuper 9.2Recuperar ar el el valor valor de de un un variable variable de de sesión...sesión...24...24

9.3Invalidar una sesión...24

9.3Invalidar una sesión...24

9.4Otros métodos...24 9.4Otros métodos...24

10Objetos

implícitos...25

10Objetos

implícitos...25

10.1request...25 10.1request...25 10.2response...25 10.2response...25 10.3session...25 10.3session...25 10.4application...25 10.4application...25 10.5out...25 10.5out...25 10.6exception 10.6exception...25...25

11Los

formularios...26

11Los

formularios...26

11.1Creación 11.1Creación del del formulario..formulario...26...26

11.2Tratamie 11.2Tratamiento nto del del formulario...formulario...26...26

12Elementos

12Elementos de

de acciones

acciones estándar...

estándar...

...

...

...

...

...

...

...

...

...

...

...

...

...29

...29

12.1<jsp:forward />...29 12.1<jsp:forward />...29 12.2<jsp:include />...29 12.2<jsp:include />...29 12.3<jsp:par 12.3<jsp:param>...am>...29...29 12.4<jsp:plugin>...29 12.4<jsp:plugin>...29 12.5<jsp:params>...30 12.5<jsp:params>...30 12.6<jsp:fallback>...30 12.6<jsp:fallback>...30 12.7<jsp:u 12.7<jsp:useBean>....seBean>...30...30 12.8<jsp:get 12.8<jsp:getProperty>..Property>...30...30 12.9<jsp:setProperty>...30 12.9<jsp:setProperty>...30

(4)

14.2.2<jsp:getProperty>...34 14.2.2<jsp:getProperty>...34 14.2.3<jsp:set 14.2.3<jsp:setProperty>...Property>...35...35 14.3Scope de un JavaBean...35 14.3Scope de un JavaBean...35

15Utilización

15Utilización de

de servlets...

servlets...

...

...

...

...

...

...

...

...

...

...

...

...

...

...36

...36

15.1¿Qué 15.1¿Qué es es un un servlet?...servlet?...36...36

15.2¿Para 15.2¿Para que que sirve sirve un un servlet?...servlet?...36...36

15.3Anatomía de un servlet...36

15.3Anatomía de un servlet...36

15.4Ciclo de vida de un servlet...37

15.4Ciclo de vida de un servlet...37

15.5Creación 15.5Creación de de un un servlet servlet simple....simple...37...37

15.6Uso 15.6Uso de de servlet servlet para para mostrar mostrar imágenes imágenes o o archivos archivos binarios....binarios...38...38

16El modelo MVC...43

16El modelo MVC...43

16.1¿Qué 16.1¿Qué es es el el modelo modelo MVC?...MVC?...43...43

16.2MVC 16.2MVC con con JSP JSP y y JavaBeans...JavaBeans...43...43

16.3MVC con JSP, JavaBeans y servlet...43

16.3MVC con JSP, JavaBeans y servlet...43

16.4MVC 16.4MVC con JSP, con JSP, servlet, servlet, JavaBeans JavaBeans y y EJB...EJB...4...444

17Ejercicios...45

17Ejercicios...45

18

18 Esquema

Esquema de

de la

la base

base de

de datos...

datos...

...

...

...

...

...

...

...

...

...

...

...

...46

...46

 ©

(5)

1 Introducci

1 Introducci

ó

ó

n al curso

n al curso

1.1 Objetivo de este curso

1.1 Objetivo de este curso

En este curso vamos a aprender el lenguaje JSP que nos permitir

En este curso vamos a aprender el lenguaje JSP que nos permitiráá crear pcrear pááginas web dinginas web dináámicas.micas.

1.2 Manual del alumno

1.2 Manual del alumno

Este manual del alumno es una ayuda para el alumno, para tenga un recuerdo del curso. Este manual contiene un Este manual del alumno es una ayuda para el alumno, para tenga un recuerdo del curso. Este manual contiene un resumen de las materias que se van a estudiar durante el curso, pero el alumno deber

resumen de las materias que se van a estudiar durante el curso, pero el alumno deberíía de a de tomar tomar notas pernotas personalessonales

para completas este manual. para completas este manual.

1.3 Ejercicios pr

1.3 Ejercicios pr

á

á

cticos

cticos

Para captar mejor la teor

Para captar mejor la teoríía, se hara, se haráán muchos ejercicios con los alumnos, para probar la teorn muchos ejercicios con los alumnos, para probar la teoríía y verificar laa y verificar la

integraci

integracióón de la materia.n de la materia.

Tambi

Tambiéén, el alumno podrn, el alumno podráácopiar sus ccopiar sus cóódigos en un disquete al fin del curso para llevarse, con fin de seguir la prdigos en un disquete al fin del curso para llevarse, con fin de seguir la práácticactica

en su hogar. en su hogar.

1.4 Requisitos para atender a este curso

1.4 Requisitos para atender a este curso

Una iniciaci

Una iniciacióón al lenguaje Java es requerida para seguir este curso. La creacin al lenguaje Java es requerida para seguir este curso. La creacióón y el manejo de objetos Java estn y el manejo de objetos Java estáá

considerada c

considerada cóómo asimilado antes de empezar este curso.mo asimilado antes de empezar este curso.

El conocimiento del lenguaje HTML y JavaScript son tambi

El conocimiento del lenguaje HTML y JavaScript son tambiéén requeridos para poder atender a este curso.n requeridos para poder atender a este curso.

Si el alumno tiene dificultades en un u otro capitulo, el debe sentirse libre de pedir explicaciones adicionales al Si el alumno tiene dificultades en un u otro capitulo, el debe sentirse libre de pedir explicaciones adicionales al profesor.

profesor.

Pero si aparece que el alumno no posee los requisitos m

Pero si aparece que el alumno no posee los requisitos míínimos para este curso, por respeto a los otros alumnos que yanimos para este curso, por respeto a los otros alumnos que ya

poseen esta materia, el alumno podr

poseen esta materia, el alumno podríía ser traslado para otro curso en el futuro, cuando el cumplira ser traslado para otro curso en el futuro, cuando el cumpliráá con los requisitos.con los requisitos.

1.5 Soporte despu

1.5 Soporte despu

 é

 é

s del curso

s del curso

Si tienes preguntas sobre la materia del curso en tus ejercicios pr

Si tienes preguntas sobre la materia del curso en tus ejercicios práácticos, puedes escribir tuscticos, puedes escribir tus

preguntas a [email protected]. preguntas a [email protected].

(6)

2 Introducci

2 Introducci

ó

ó

n al JSP

n al JSP

 2.1 ¿Que es el JSP?

 2.1 ¿Que es el JSP?

El JSP es una extensi

El JSP es una extensióón del lenguaje de programacin del lenguaje de programacióón Java, utilizado para crear pn Java, utilizado para crear pááginas web dinginas web dináámicas.micas.

El JSP necesita que un servidor web con capacidad JSP sea instalado y funcionando para poder ejecutar las p

El JSP necesita que un servidor web con capacidad JSP sea instalado y funcionando para poder ejecutar las pááginasginas

JSP. JSP.

El servidor va a compilar el c

El servidor va a compilar el cóódigo JSP y tratarlo en tiempo real, con la informacidigo JSP y tratarlo en tiempo real, con la informacióón viniendo n viniendo del cliente del cliente web, web, parapara

regresarle una pagina web adaptada, en tiempo real. regresarle una pagina web adaptada, en tiempo real. El servidor tiene tambi

El servidor tiene tambiéén capacidad de seguir el camino de un usuario, asn capacidad de seguir el camino de un usuario, asííccóómo de identificarlo.mo de identificarlo.

 2.2 ¿Por qu

 2.2 ¿Por qu

 é

 é

utilizar

utilizar

í

í

amos el JSP?

amos el JSP?

El JSP se necesita cuando la pagina web tiene que adaptarse en funci

El JSP se necesita cuando la pagina web tiene que adaptarse en funcióón del usuario, y cuando se necesita guardarn del usuario, y cuando se necesita guardar

valores de sesi

valores de sesióón del usuario.n del usuario.

Existen otros lenguaje que permiten eso, como el ASP o el PHP, pero el JSP tiene como aventaje que esta basado en el Existen otros lenguaje que permiten eso, como el ASP o el PHP, pero el JSP tiene como aventaje que esta basado en el lenguaje Java, y le tiene la herencia de su poder y de su portabilidad. Los servidores JSP existen para varios sistemas lenguaje Java, y le tiene la herencia de su poder y de su portabilidad. Los servidores JSP existen para varios sistemas operativos, entre otros Windows, Linux, y Unix.

operativos, entre otros Windows, Linux, y Unix. El JSP est

El JSP estáátambitambiéén utilizado en paquetes empresariales muy grande como el servidor de IBM Websphere, o eln utilizado en paquetes empresariales muy grande como el servidor de IBM Websphere, o el

servidor de aplicaci

servidor de aplicacióón de Oracle.n de Oracle.

El JSP es un est

El JSP es un estáándar de programacindar de programacióón Internet.n Internet.

  2.3 Navegadores web

  2.3 Navegadores web

Si los navegadores prueban todos de poder aplicar al m

Si los navegadores prueban todos de poder aplicar al mááximo las recomendaciones del HTML 4.0 existen ciertasximo las recomendaciones del HTML 4.0 existen ciertas

opciones, a dentro

opciones, a dentro o afuera del o afuera del HML estHML estáándar que sndar que sóólo ciertos navegadores soportan. Tambilo ciertos navegadores soportan. Tambiéén, un mismo cn, un mismo cóódigo nodigo no

aparecer

apareceráá siempre igual en un navegador e en otro.siempre igual en un navegador e en otro.

El JSP no est

El JSP no estááligado directamente con los navegadores, pero el HTML que generaran si. Asligado directamente con los navegadores, pero el HTML que generaran si. Asííque un cque un cóódigo generadodigo generado

podr

podríía funcionar bien en un navegador, y dar un resultado diferente en otro. Veremos diferente ejemplos en estea funcionar bien en un navegador, y dar un resultado diferente en otro. Veremos diferente ejemplos en este

curso. curso.

En este curso, utilizaremos dos navegadores diferentes: el Internet Explorer de Microsoft, y el Firefox de Mozilla. En este curso, utilizaremos dos navegadores diferentes: el Internet Explorer de Microsoft, y el Firefox de Mozilla.

 ©

(7)

3 Arquitectura J2EE

3 Arquitectura J2EE

  3.1 Introducci

  3.1 Introducci

ó

ó

n a la Tecnolog

n a la Tecnolog

í

í

a y Conceptos J2EE

a y Conceptos J2EE

Java 2 Enterprise Edition (J2EE) es una arquitectura multicapa para implementar aplicaciones de tipo empresarial y Java 2 Enterprise Edition (J2EE) es una arquitectura multicapa para implementar aplicaciones de tipo empresarial y aplicaciones basadas en la Web. Esta tecnolog

aplicaciones basadas en la Web. Esta tecnologíía soporta una gran variedad de tipos de aplicaciones desde aplicacionesa soporta una gran variedad de tipos de aplicaciones desde aplicaciones

Web de gran escala a peque

Web de gran escala a pequeññas aplicaciones cliente-servidor. El objetivo principal de la tecnologas aplicaciones cliente-servidor. El objetivo principal de la tecnologíía J2EE es crear una J2EE es crear un

simple modelo de desarrollo para aplicaciones empresariales utilizando componentes basados en el modelo de simple modelo de desarrollo para aplicaciones empresariales utilizando componentes basados en el modelo de aplicaci

aplicacióón. En este modelo dichos componentes utilizan servicios proporcionados por el contenedor, que de otro modon. En este modelo dichos componentes utilizan servicios proporcionados por el contenedor, que de otro modo

tendr

tendríían que estar incorporados en el can que estar incorporados en el cóódigo de la aplicacidigo de la aplicacióón. Observa que esto podrn. Observa que esto podríía no ser lo ideal para todos losa no ser lo ideal para todos los

escenarios: por ejemplo, una peque

escenarios: por ejemplo, una pequeñña aplicacia aplicacióón se cubrirn se cubriríía mejor utilizando una solucia mejor utilizando una solucióón de la tecnologn de la tecnologíía Java dea Java de

peso ligero (por ejemplo Servlets, JSPs, etc.). peso ligero (por ejemplo Servlets, JSPs, etc.).

  3.2 Componentes J2EE

  3.2 Componentes J2EE

Las aplicaciones J2EE est

Las aplicaciones J2EE estáán compuestas de diferentes componentes. Un componente J2EE es una unidad de softwaren compuestas de diferentes componentes. Un componente J2EE es una unidad de software

funcional auto-contenido que se ensambla dentro de una aplicaci

funcional auto-contenido que se ensambla dentro de una aplicacióón J2EE con sus clases de ayuda y ficheros y que sen J2EE con sus clases de ayuda y ficheros y que se

comunica con otros componentes de la aplicaci

comunica con otros componentes de la aplicacióón. La especificiacin. La especificiacióón J2EE define los siguientes componentes J2EE:n J2EE define los siguientes componentes J2EE:

1

1. . LLaass Aplicaciones Clientes Aplicaciones Clientes y losy los Applets Applets son componentes que se ejecutan en el lado del cliente.son componentes que se ejecutan en el lado del cliente. 2.

2. Los Los comcomponponententeses Java ServletJava Servlet la tecnologla tecnologííaa JavaServer PagesJavaServer Pages son componentes Web que se ejecutanson componentes Web que se ejecutan

en el lado del servidor. en el lado del servidor. 3

3. . LLooss Enterprise JavaBeansEnterprise JavaBeans (beans enterprise) son componentes de negocio que se ejecutan en el servidor(beans enterprise) son componentes de negocio que se ejecutan en el servidor de aplicacion.

de aplicacion.

Todos esos componentes se ensamblan en una aplicaci

Todos esos componentes se ensamblan en una aplicacióón J2EE, se verifica que estn J2EE, se verifica que estáán bien formados y que cumplen lan bien formados y que cumplen la

especificaci

especificacióón J2EE, y se despliegan en el entorno de produccin J2EE, y se despliegan en el entorno de produccióón, donde se ejecutan y son controlados por el servidorn, donde se ejecutan y son controlados por el servidor

de aplicaciones J2EE. de aplicaciones J2EE.

(8)

 3.3 La Arquitectura Java Naming Directory Interface (JNDI)

 3.3 La Arquitectura Java Naming Directory Interface (JNDI)

J2EE utiliza el API JNDI para acceder gen

J2EE utiliza el API JNDI para acceder genééricamente a servicios de nombrado y directorio utilizando la tecnologricamente a servicios de nombrado y directorio utilizando la tecnologííaa

Java. El API JNDI reside entre la aplicaci

Java. El API JNDI reside entre la aplicacióón y el servicio de nombres y hace que el servicio de nombres subyacente sean y el servicio de nombres y hace que el servicio de nombres subyacente sea

transparente para los componentes de la aplicaci transparente para los componentes de la aplicacióón:n:

Un cliente puede buscar referencias a componentes EJB u otros recursos en un servicio de nombres como el Un cliente puede buscar referencias a componentes EJB u otros recursos en un servicio de nombres como el mencionado arriba. El c

mencionado arriba. El cóódigo del cliente no se modifica, sin importar el servicio de nombres que se estdigo del cliente no se modifica, sin importar el servicio de nombres que se estééutilizando o enutilizando o en

qu

quéétecnologtecnologíía esta estéébasado, y esto no crea ninguna diferencbasado, y esto no crea ninguna diferencíía en el modo en que los clientes localizan los objetosa en el modo en que los clientes localizan los objetos

remotos mediante el API JNDI. remotos mediante el API JNDI. Para que una aplicaci

Para que una aplicacióón pueda interactuar con un servicio de nombre, este debe conocer las propiedades del servicion pueda interactuar con un servicio de nombre, este debe conocer las propiedades del servicio

JNDI al cual el quiere conectars

JNDI al cual el quiere conectarse. e. Estas propiedades son entre otras el tipo de Estas propiedades son entre otras el tipo de servicio JNDI (facory), servicio JNDI (facory), el domicilio IP yel domicilio IP y el Puerto del servicio.

el Puerto del servicio. 3.3.1

3.3.1

Ejemplo de JNDI

Ejemplo de JNDI

...

...

DataSource ds=null; DataSource ds=null;

InitialContext ctx = new InitialContext(); InitialContext ctx = new InitialContext();

ds = (DataSource) ctx.lookup("java:comp/env/jdbc/"+datasourceName); ds = (DataSource) ctx.lookup("java:comp/env/jdbc/"+datasourceName); con = ds.getConnection(); con = ds.getConnection(); ... ...  ©

(9)

4 El protocolo HTTP

4 El protocolo HTTP

El protocolo HTTP (HyperText Transport Protocol) es un protocolo que define en detalle c

El protocolo HTTP (HyperText Transport Protocol) es un protocolo que define en detalle cóómo un cliente y un servidormo un cliente y un servidor

deben comunicar entre ellos. El modelo de comunicaci

deben comunicar entre ellos. El modelo de comunicacióón HTTP es a la base del web. El protocolo se aplica a cualquiern HTTP es a la base del web. El protocolo se aplica a cualquier

servidor y cliente web. Vamos a examinar los detalles m

servidor y cliente web. Vamos a examinar los detalles máás importante del protocolo HTTP.s importante del protocolo HTTP.

  4.1 Modelo de consulta / respuesta HTTP

  4.1 Modelo de consulta / respuesta HTTP

El HTTP y los protocolos extendidos basados sobre el utilizan un modelo de comunicaci

El HTTP y los protocolos extendidos basados sobre el utilizan un modelo de comunicacióón simple, pero poderoso.n simple, pero poderoso.

De manera t

De manera tíípica, un cliente envpica, un cliente envíía una consulta para un recurso a un servidor, y el servidor contesta una respuestaa una consulta para un recurso a un servidor, y el servidor contesta una respuesta

que corresponde al recurso preguntado (o contesta con un mensaje de error). El recurso puede ser una p

que corresponde al recurso preguntado (o contesta con un mensaje de error). El recurso puede ser una páágina HTML,gina HTML,

o una aplicaci

o una aplicacióón que contesta con un contenido dinn que contesta con un contenido dináámico.mico.

Este modelo simple implica tres cosas que Usted tiene que ser conciente: Este modelo simple implica tres cosas que Usted tiene que ser conciente:

1.

1. El protocolo El protocolo HTTP es HTTP es un protocolo un protocolo sin estado. sin estado. Es decir que Es decir que el servidor nel servidor no guarda o guarda ningningúún informacin informacióón acercan acerca

del cliente depuse de haberle contestado, y por eso no puede reconocer que varias consultas de un mismo del cliente depuse de haberle contestado, y por eso no puede reconocer que varias consultas de un mismo cliente pueden ser relacionadas.

cliente pueden ser relacionadas. 2.

2. La La apapliclicacaciióón web no puede entregar una respuesta inmediato, como en aplicaciones locales. La velocidadn web no puede entregar una respuesta inmediato, como en aplicaciones locales. La velocidad

depende del ancho de banda disponible y de la carga del servidor. depende del ancho de banda disponible y de la carga del servidor. 3.

3. No hay No hay nada en enada en el protocolo ql protocolo que indica al ue indica al servidor como servidor como la consulta la consulta le ha llegado, le ha llegado, asasííque el servidor no puedeque el servidor no puede

distinguir diferente m

distinguir diferente méétodos de consulta. Por ejemplo, en servidor no puede distinguir una consulta generadatodos de consulta. Por ejemplo, en servidor no puede distinguir una consulta generada

por un clic en un enlace del uso del bot

por un clic en un enlace del uso del botóón 'atrn 'atráás' del navegador. Tambis' del navegador. Tambiéén, como el HTTP es sin estado, no sen, como el HTTP es sin estado, no se

puede a dentro del HTTP llamar a la p

puede a dentro del HTTP llamar a la páágina anterior.gina anterior.

  4.2 Detalles de una consulta

  4.2 Detalles de una consulta

Existen dos m

(10)

El

El ttíítulo HOST dice al servidor el nombre (hostname) utilizado en el URL. Un servidor puede tener varios nombres, ytulo HOST dice al servidor el nombre (hostname) utilizado en el URL. Un servidor puede tener varios nombres, y

este informaci

este informacióón permite distinguir mn permite distinguir múúltiple servidores virtuales utilizando un mismo proceso web.ltiple servidores virtuales utilizando un mismo proceso web.

El

El ttíítulotuloUser-AgentUser-Agent contiene informacicontiene informacióón sobre el tipo de navegador utilizado para hacer la consulta. El servidor pueden sobre el tipo de navegador utilizado para hacer la consulta. El servidor puede

utilizar este informaci

utilizar este informacióón para generar respuestas diferentes dependiendo del navegador (IE, Netscape, WAP, PDA,...).n para generar respuestas diferentes dependiendo del navegador (IE, Netscape, WAP, PDA,...).

Los t

Los tíítulostulosAcceptAcceptproveen informaciproveen informacióón sobre el idioma y el formato de archivo que el navegador acepta.n sobre el idioma y el formato de archivo que el navegador acepta.

  4.3 Detalles de respuesta

  4.3 Detalles de respuesta

El mensaje de la respuesta parece al de la consulta. El contiene tres partes: una l

El mensaje de la respuesta parece al de la consulta. El contiene tres partes: una líínea de estado, unos tnea de estado, unos tíítulos detulos de

respuesta, y el cuerpo de la respuesta. respuesta, y el cuerpo de la respuesta. Ejemplo de respuesta:

Ejemplo de respuesta: HTTP/1.0 200 OK

HTTP/1.0 200 OK

Last-Modified: Mon, 19 Dec 2004 20:21:42 GMT Last-Modified: Mon, 19 Dec 2004 20:21:42 GMT Date: Tue, 12 Jul 2005 13:12:10 GMT

Date: Tue, 12 Jul 2005 13:12:10 GMT Status: 200

Status: 200

Content-Type: text/html Content-Type: text/html

Servlet-Engine: Tomcat Web Server/3.2 Servlet-Engine: Tomcat Web Server/3.2 Content-Length: 59 Content-Length: 59 <html> <html> <body> <body> <h1>Hello World!</h1> <h1>Hello World!</h1> </body> </body> </html> </html> La

La llíínea de estado empieza con el nombre del protocolo, seguido por el cnea de estado empieza con el nombre del protocolo, seguido por el cóódigo de resultado y una breva descripcidigo de resultado y una breva descripcióón deln del

ccóódigo de resultado. Aqudigo de resultado. Aquíí el el ccóódigo de resultado es 200, que significa que salidigo de resultado es 200, que significa que salióóconconééxito.xito.

El mensaje de respuesta tiene t

El mensaje de respuesta tiene tíítulos, como el de consulta. En este ejemplo:tulos, como el de consulta. En este ejemplo:

El

El ttíítulotuloLast-ModifiedLast-Modified da la fecha y hora de cuando el recurso fue modificado porda la fecha y hora de cuando el recurso fue modificado por úúltima vez. El cliente puede utilizarltima vez. El cliente puede utilizar

esta informaci

esta informacióón para marcar la pn para marcar la páágina el su cachgina el su cachéé, y pedir en el futuro solamente las que fueron modificadas., y pedir en el futuro solamente las que fueron modificadas.

El

El ttíítulotuloContent-TypeContent-Type dice al navegador que tipo de datos contiene el cuerpo de la respuesta.dice al navegador que tipo de datos contiene el cuerpo de la respuesta.

El

El ttíítulotuloContent-LengthContent-Length dice al navegador el tamadice al navegador el tamañño del cuerpo de la respuesta.o del cuerpo de la respuesta.

Una l

Una líínea vacnea vacíía separa los ta separa los tíítulos del cuerpo de la respuesta. El cuerpo de la respuesta contiene el ctulos del cuerpo de la respuesta. El cuerpo de la respuesta contiene el cóódigo que serdigo que seráá

ense

enseññado en el navegador. Aquado en el navegador. Aquííuna simple puna simple páágina HTML.gina HTML.

El cuerpo puede contener p

El cuerpo puede contener pááginas HTML mginas HTML máás complicadas, u otro tipo de contenido (imagen, sonido, archivos complicadas, u otro tipo de contenido (imagen, sonido, archivo

comprimido,...).

comprimido,...). El cuerpo El cuerpo puede tambipuede tambiéén contener cn contener cóódigo que va generar otras consultas al servidor, como ladigo que va generar otras consultas al servidor, como la

inserci

insercióón de una imagen.n de una imagen.

 ©

(11)

 Interacci

 Interaccióón entre un cliente y un servidor webn entre un cliente y un servidor web

  4.4 Par

  4.4 Par

á

á

metros de consulta

metros de consulta

Se pueden pasar par

Se pueden pasar paráámetros de consulta a dentro del URL. Por eso, despumetros de consulta a dentro del URL. Por eso, despuéés del nombre de la ps del nombre de la páágina, hay quegina, hay que

mencionar un punto de pregunta '?' y uno a varios par

mencionar un punto de pregunta '?' y uno a varios paráámetros deparados por '&', con el nombre del parmetros deparados por '&', con el nombre del paráámetro, elmetro, el

signo '=', y el valor del par

signo '=', y el valor del paráámetro.metro.

 Veremos ejemplos utilizando los formularios.  Veremos ejemplos utilizando los formularios.

 4.5 M 

 4.5 M 

 é

 é

todos de consulta

todos de consulta

 Ya hemos visto el uso del m

 Ya hemos visto el uso del méétodo GET. Tambitodo GET. Tambiéén existe el mn existe el méétodo POST. La diferencia entre los dos es que el mtodo POST. La diferencia entre los dos es que el méétodotodo

GET pasa los par

GET pasa los paráámetros a dentro del URL, asmetros a dentro del URL, asííque se puede guardar f que se puede guardar f áácilmente en su lista de marcadores. Tambicilmente en su lista de marcadores. Tambiéén,n,

en navegador sabe que este m

en navegador sabe que este méétodo no puede datodo no puede daññar el servidor, asar el servidor, asííacepta de someter la consulta nuevamenteacepta de someter la consulta nuevamente

(refresca) sin alerta. (refresca) sin alerta. El

El mméétodo POST, en vez de pasar los partodo POST, en vez de pasar los paráámetros en el URL, les pasa a dentro del cuerpo de la consulta. Eso permitemetros en el URL, les pasa a dentro del cuerpo de la consulta. Eso permite

enviar consulta de tama

enviar consulta de tamañño o mmáás grande que 2000 caracteres, y sin que los pars grande que 2000 caracteres, y sin que los paráámetros aparecen en el URL.metros aparecen en el URL.

Como los par

Como los paráámetros estmetros estáán guardados a dentro del cuerpo de la consulta, la consulta no puede ser guardada tann guardados a dentro del cuerpo de la consulta, la consulta no puede ser guardada tan

f áácilmente en los marcadores, porque ademcilmente en los marcadores, porque ademáás del URL, debers del URL, deberááguardar el cuerpo de la consulta.guardar el cuerpo de la consulta.

Tambi

Tambiéén, cuando se proba de enviar de nuevo una encuesto POST (refresh) el navegador genera una alerto porquen, cuando se proba de enviar de nuevo una encuesto POST (refresh) el navegador genera una alerto porque

este acci

(12)

Ejemplo de formulario: Ejemplo de formulario:

<form action="/prueba.jsp" method="POST"> <form action="/prueba.jsp" method="POST"> Cuidad: <input name="cuidad" type="text"> Cuidad: <input name="cuidad" type="text"> Pais: <input name="pais" type="text"> Pais: <input name="pais" type="text"> <p> <p> <input type="SUBMIT"> <input type="SUBMIT"> </form> </form>

Ejemplo de consulta POST generada por el formulario arriba: Ejemplo de consulta POST generada por el formulario arriba: POST / prueba.jsp HTTP/1.0

POST / prueba.jsp HTTP/1.0 Host: www.businesssoft.com.ni Host: www.businesssoft.com.ni

User-Agent : Mozilla/4.5 [en] (WinNT; I) User-Agent : Mozilla/4.5 [en] (WinNT; I)

Accept: image/gif, image/jpeg, image/pjpeg, image/png, */* Accept: image/gif, image/jpeg, image/pjpeg, image/png, */* Accept-language : en Accept-language : en Accept-charset : iso-8859-1,*,utf-8 Accept-charset : iso-8859-1,*,utf-8 cuidad=Managua&pais=Nicaragua cuidad=Managua&pais=Nicaragua Ejemplo de Socket que se cone

Ejemplo de Socket que se conecta al servidor Web cta al servidor Web local (Tomcat), le envlocal (Tomcat), le envíía una consulta HTTP y recibe la pa una consulta HTTP y recibe la pááginagina

HTML. HTML. LeerWeb.java: LeerWeb.java: import java.io.*; import java.io.*; import java.net.*; import java.net.*; public class LeerWeb { public class LeerWeb {

public LeerWeb() throws Exception { public LeerWeb() throws Exception {

Socket s = new Socket("127.0.0.1", 8080); Socket s = new Socket("127.0.0.1", 8080); OutputStream os = s.getOutputStream(); OutputStream os = s.getOutputStream(); PrintStream ps = new PrintStream(os); PrintStream ps = new PrintStream(os); ps.print("GET / HTTP/1.0\r\n\r\n"); ps.print("GET / HTTP/1.0\r\n\r\n"); InputStream is = s.getInputStream(); InputStream is = s.getInputStream();

InputStreamReader isr = new InputStreamReader(is); InputStreamReader isr = new InputStreamReader(is); BufferedReader br = new BufferedReader(isr); BufferedReader br = new BufferedReader(isr); String line = br.readLine();

String line = br.readLine(); while (line!=null){ while (line!=null){ System.out.println(line); System.out.println(line); line=br.readLine(); line=br.readLine(); } } } }

public static void main(String[] args) throws Exception { public static void main(String[] args) throws Exception {

LeerWeb test = new LeerWeb(); LeerWeb test = new LeerWeb(); }

} }

}

 ©

(13)

5 Instalaci

5 Instalaci

ó

ó

n del servidor JSP

n del servidor JSP

5.1 Jakarta Tomcat

5.1 Jakarta Tomcat

Para poder poner en pr

Para poder poner en prááctica el lenguaje JSP, necesitamos un servidor con capacidad JSP.ctica el lenguaje JSP, necesitamos un servidor con capacidad JSP.

Por eso, vamos a utilizar el famoso servidor Tomcat, de la fundaci

Por eso, vamos a utilizar el famoso servidor Tomcat, de la fundacióón Apache. El Tomcat hace parte deln Apache. El Tomcat hace parte del

proyecto Jakarta de la fundaci

proyecto Jakarta de la fundacióón Apache.n Apache.

El servidor Tomcat es un producto gratuito y libre: su c

El servidor Tomcat es un producto gratuito y libre: su cóódigo fuente estdigo fuente estáádisponible, al lado de lasdisponible, al lado de las

versiones compiladas. versiones compiladas. Tomcat est

Tomcat estáá disponible para varios sistemas operativos, y estdisponible para varios sistemas operativos, y estáámuy utilizado bajo Unix y Linux, por sus estabilidad.muy utilizado bajo Unix y Linux, por sus estabilidad.

5.2 Instalaci

5.2 Instalaci

ó

ó

n

n

 Antes de instalar el servidor Tomcat (versi

 Antes de instalar el servidor Tomcat (versióón 7.0), el Java JRE versin 7.0), el Java JRE versióón 1.6 o arriba tiene que ser instalado en eln 1.6 o arriba tiene que ser instalado en el

servidor. Para instalar Tomcat, en Windows existe un instalador, y en Linux basta con descomprimir el archivo zip o servidor. Para instalar Tomcat, en Windows existe un instalador, y en Linux basta con descomprimir el archivo zip o gz en una carpeta local (como su carpera /home/usuario).

gz en una carpeta local (como su carpera /home/usuario). Es importante de leer las notas de instalaci

Es importante de leer las notas de instalacióón para ver si no hay informaciones importante para nuestran para ver si no hay informaciones importante para nuestra

configuraci configuracióón.n.

5.3 Configuraci

5.3 Configuraci

ó

ó

n de Eclipse

n de Eclipse

Se requiere crear un servidor en Eclipse para poder manejar Tomcat desde Eclipse. Se requiere crear un servidor en Eclipse para poder manejar Tomcat desde Eclipse. Escoge la perspectiva Java EE, vista de servidores, y crear un nuevo servidor. Escoge la perspectiva Java EE, vista de servidores, y crear un nuevo servidor.

(14)

5.4 Verificaci

5.4 Verificaci

ó

ó

n de la instalaci

n de la instalaci

ó

ó

n

n

Para verificar si la instalaci

Para verificar si la instalacióón es exitosa, inicia el servidor desde Eclipsen es exitosa, inicia el servidor desde Eclipse

Luego abrimos un navegador web y vamos al domicilio:

Luego abrimos un navegador web y vamos al domicilio: http://localhost:8080http://localhost:8080

Por defecto, el servidor de Tomcat utiliza el puerto 8080, para no chocar con un eventual servidor Apache (puerto 80). Por defecto, el servidor de Tomcat utiliza el puerto 8080, para no chocar con un eventual servidor Apache (puerto 80).  Ah

 Ahíítenemos que encontrar la ptenemos que encontrar la páágina por defecto de Tomcat, o una pgina por defecto de Tomcat, o una páágina de error de Tomcat.gina de error de Tomcat.

 ©

(15)

6 Uso de herramienta y entorno

6 Uso de herramienta y entorno

6.1 Eclipse

6.1 Eclipse

Para dise

Para diseññar las par las pááginas JSP, vamos a utilizar la herramienta Eclipse Ganymede, en su verisginas JSP, vamos a utilizar la herramienta Eclipse Ganymede, en su verisóón J2EE o Reporting.n J2EE o Reporting.

Estos programas son libres y gratuitos, y funcionan bajo Windows como bajos Linux. Estos programas son libres y gratuitos, y funcionan bajo Windows como bajos Linux. 6.1.1

6.1.1

Creaci

Creaci

ó

ó

n del servidor

n del servidor

Eclipse integra la posibilidad de manejar una multitud de servidores web diferente desde Eclipse. Eso permita el Eclipse integra la posibilidad de manejar una multitud de servidores web diferente desde Eclipse. Eso permita el nuevo despliegue, de manera autom

nuevo despliegue, de manera automáática, del sitio desputica, del sitio despuéés de cada cambia. Y tambis de cada cambia. Y tambiéén permite visualizar la consolan permite visualizar la consola

del servidor en Eclipse, para una depuraci

del servidor en Eclipse, para una depuracióón n mmáás comoda.s comoda.

Para crear un servidor, presiona CTRL + N. Escoja 'Servidor' en la lista. Luego escoje el tipo 'Tomcat 7'. Para crear un servidor, presiona CTRL + N. Escoja 'Servidor' en la lista. Luego escoje el tipo 'Tomcat 7'.

(16)

6.1.2

6.1.2

Creaci

Creaci

ó

ó

n de un nuevo proyecto web

n de un nuevo proyecto web

Para crear nuestra primera p

Para crear nuestra primera páágina JSP, necesitamos crear un nuevo sitio web en Tomcat. Por eso, en Eclipse, creamosgina JSP, necesitamos crear un nuevo sitio web en Tomcat. Por eso, en Eclipse, creamos

un nuevo proyecto de tipo 'Dynamic Web Project', que llamamos ‘curso’. un nuevo proyecto de tipo 'Dynamic Web Project', que llamamos ‘curso’.

Escojamos como 'Target Runtime' el servidor que hemos creado en el punto anterior. Como versi

Escojamos como 'Target Runtime' el servidor que hemos creado en el punto anterior. Como versióón de modulon de modulo

escojamos 3.0, y como configuraci

escojamos 3.0, y como configuracióón '<custom>'. n '<custom>'. Luego aceptamos Luego aceptamos los valores por deflos valores por defecto.ecto.

Una vez creado, validamos las propiedades del proyecto, y Una vez creado, validamos las propiedades del proyecto, y agregamos el proyecto al servidor Tomcat 7.

agregamos el proyecto al servidor Tomcat 7.

 ©

(17)

Para agregar el proyec

Para agregar el proyecto al servidor, hacer doble clic sobre to al servidor, hacer doble clic sobre el servidor en la pantalla abajo el servidor en la pantalla abajo a la derecha, escoja laa la derecha, escoja la pesta

pestañña 'Module' y agrega el proyecto 'curso'.a 'Module' y agrega el proyecto 'curso'.

6.1.3

6.1.3

Creaci

Creaci

ó

ó

n de la p

n de la p

á

á

 gina de

 gina de

í

í

ndice

ndice

Para poder probar el servidor, vamos a crear nuestra primera p

Para poder probar el servidor, vamos a crear nuestra primera páágina JSP.gina JSP.

Por eso, hacemos un clic derecho sobre la carpeta WebContent del proyecto curso, en Eclipse, y elegimos ‘new’...’JSP'. Por eso, hacemos un clic derecho sobre la carpeta WebContent del proyecto curso, en Eclipse, y elegimos ‘new’...’JSP'.

(18)

Una vez elegido, mencionamos el nombre de la p

Una vez elegido, mencionamos el nombre de la páágina, que sergina, que serááindex.jsp. Todas la pindex.jsp. Todas la pááginas con extensiginas con extensióón JSP (.jsp enn JSP (.jsp en

minuscula) ser

minuscula) seráán traducidas por el servidor en un servlet (cn traducidas por el servidor en un servlet (cóódigo Java) y producirdigo Java) y produciráán una pn una páágina HTML como salida.gina HTML como salida.

Para probar si la p

Para probar si la páágina funciona, tenemos que llenarla con alggina funciona, tenemos que llenarla con algúún n ccóódigo JSP y/o HTML. Con un doble clic sobredigo JSP y/o HTML. Con un doble clic sobre

index.jsp abrimos su contenido. Miramos que ya viene con alg

index.jsp abrimos su contenido. Miramos que ya viene con algúún n ccóódigo pre-hecho.digo pre-hecho.

 Vamos a modificar el c

 Vamos a modificar el cóódigo de la manera siguiente, y lo guardamos:digo de la manera siguiente, y lo guardamos:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" <%@ page language="java" contentType="text/html; charset=ISO-8859-1"

pageEncoding="ISO-8859-1"%> pageEncoding="ISO-8859-1"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <html> <head> <head> <%! <%!

String titulo="Mi primera Página JSP"; String titulo="Mi primera Página JSP"; int nrPagina=1; int nrPagina=1; %> %> <title><%=titulo%></title> <title><%=titulo%></title> </head> </head> <body bgcolor="#FFFFFF"> <body bgcolor="#FFFFFF"> <h1><%=titulo%></h1> <h1><%=titulo%></h1> <hr> <hr> <p> <p>

Este es mi página en JSP numero <%= nrPagina%>. Este es mi página en JSP numero <%= nrPagina%>. </body>

</body> </html> </html>

En el futuro, no escribir

En el futuro, no escribiréé en el manual los encabezados generados por el entorno, comoen el manual los encabezados generados por el entorno, como <%@page...><%@page...> <!DOCTYPE....><!DOCTYPE....> porqueporque

no son obligatorio para que funciona bien el c no son obligatorio para que funciona bien el cóódigo.digo.

Iniciamos el servidor. Iniciamos el servidor.

Luego miramos el resultado con un navegador web en el domicilio:

Luego miramos el resultado con un navegador web en el domicilio: http://localhost::8080/curso/ http://localhost::8080/curso/ oo http://localhost:8080/curso/index.jsp

http://localhost:8080/curso/index.jsp

Por defecto, si ninguna p

Por defecto, si ninguna páágina esta especificada en el URL, el servidor busca primero la pgina esta especificada en el URL, el servidor busca primero la páágina index.html, luegogina index.html, luego

index.htm, y luego index.jsp. Este opci

index.htm, y luego index.jsp. Este opcióón puede ser modificada al nivel del servidor, y/o al nivel del sitio, en el archivon puede ser modificada al nivel del servidor, y/o al nivel del sitio, en el archivo

web.xml. web.xml.

 ©

(19)

 As

 As podemos ver que en la barra de aplicacipodemos ver que en la barra de aplicaci n como en la primera ln como en la primera l nea de la pnea de la p gina sale en valor de la variablegina sale en valor de la variable 'titulo'.

(20)

7 Utilizaci

7 Utilizaci

ó

ó

n de los scriptlets

n de los scriptlets

7.1 ¿Qu

7.1 ¿Qu

 é

 é

son los scriptlets?

son los scriptlets?

Los scriptlets son las etiquetas que permiten de delimitar el c

Los scriptlets son las etiquetas que permiten de delimitar el cóódigo JSP, que tiene que ser analizado por el servidordigo JSP, que tiene que ser analizado por el servidor

JSP, del c

JSP, del cóódigo HTML, que tiene que ser enviado al cliente como tal. Asdigo HTML, que tiene que ser enviado al cliente como tal. Asííel servidor JSP combina el cel servidor JSP combina el cóódigo HTML condigo HTML con

el resultado del c

el resultado del cóódigo JSP para obtener la pdigo JSP para obtener la páágina HTML que sergina HTML que serááregresada al cliente y leregresada al cliente y leíída por el navegador delda por el navegador del

cliente. cliente.

El JSP es la parte de la programaci

El JSP es la parte de la programacióón que se ejecuta al nivel del servidor, en contra deln que se ejecuta al nivel del servidor, en contra del JavaScriptJavaScript, que se ejecuta al, que se ejecuta al

lado del cliente. lado del cliente.

7.2 Los scriptlet de declaraci

7.2 Los scriptlet de declaraci

ó

ó

n de variables

n de variables

El scriptlet de declaraci

El scriptlet de declaracióón de variable sirven para declarar variable que sern de variable sirven para declarar variable que seráán accesible de desde cualquier lugar de lan accesible de desde cualquier lugar de la

p

páágina JSP. Son equivalente a variable de clase.gina JSP. Son equivalente a variable de clase.

Los scriptlets se utilizan generalmente a dentro de la cabecera, o en el cuerpo de la p

Los scriptlets se utilizan generalmente a dentro de la cabecera, o en el cuerpo de la páágina HTML, antes de losgina HTML, antes de los

scriptlets de c scriptlets de cóódigo.digo.

El scriptlet de declaraci

El scriptlet de declaracióón estn estááencerrada entre '<%!' y encerrada entre '<%!' y '%>' (sin las '%>' (sin las cuotas).cuotas).

Ejemplo: Ejemplo:

<%! String titulo="Mi primera Página JSP"; <%! String titulo="Mi primera Página JSP"; int nrPagina=1; %>

int nrPagina=1; %>

7.3 Los scriptlet de utilizaci

7.3 Los scriptlet de utilizaci

ó

ó

n de variables

n de variables

El scriptlet de utilizaci

El scriptlet de utilizacióón de variable sirven para mencionar el valor de una variable en el cn de variable sirven para mencionar el valor de una variable en el cóódigo HTML. Sdigo HTML. Sóólo puedelo puede

contener una variable, pero tambi

contener una variable, pero tambiéén se puede utilizar mn se puede utilizar méétodos de objetos existente, o nuevos objetos).todos de objetos existente, o nuevos objetos).

El scriptlet de declaraci

El scriptlet de declaracióón estn estáá encerrada entre '<%=' y encerrada entre '<%=' y '%>' (sin las cuotas), y '%>' (sin las cuotas), y no lleva punto-coma.no lleva punto-coma.

Ejemplo: Ejemplo:

<h1><%=titulo%></h1> <h1><%=titulo%></h1>

7.4 Los scriptlets de c

7.4 Los scriptlets de c

ó

ó

digo

digo

Un scriptlet de c

Un scriptlet de cóódigo estdigo estáá encerrado entre '<%' y '%>' (sin las cuotas).encerrado entre '<%' y '%>' (sin las cuotas).

Un scriptlet de c

Un scriptlet de cóódigo puede ser utilizado para escribir el cdigo puede ser utilizado para escribir el cóódigo Java que se ejecutara en la pdigo Java que se ejecutara en la páágina JSP. Se puedegina JSP. Se puede

utilizar para declara clases c

utilizar para declara clases cóómo para implementar esquema de decisimo para implementar esquema de decisióón a dentro de la pn a dentro de la páágina para que sea dingina para que sea dináámica.mica.

Los scriptlets se pueden utilizar a dentro de la cabecera, o en el cuerpo de la p

Los scriptlets se pueden utilizar a dentro de la cabecera, o en el cuerpo de la páágina HTML.gina HTML.

Si el scriptlet tiene que generar alg

Si el scriptlet tiene que generar algúún n ccóódigo HTML, hay dos posibilidades:digo HTML, hay dos posibilidades:

1

1. . eel l ccóódigo HTML se genera a dentro el cdigo HTML se genera a dentro el cóódigo Java utilizando el mdigo Java utilizando el méétodotodoout.printout.print ooout.printlnout.println

2.

2. se se abrabre un e un blobloque que de de ccóódigo Java, se cierra el scriptlet y se pone el cdigo Java, se cierra el scriptlet y se pone el cóódigo HTML cdigo HTML cóómo en una pmo en una páágina HTMLgina HTML

normal (pero se puede utilizar otros scriptlets a dentro de este c

normal (pero se puede utilizar otros scriptlets a dentro de este cóódigo).digo).

 ©

(21)

El scriptlet que genera c

El scriptlet que genera c digo HMTL tendrdigo HMTL tendr que estar puesto al lugar de destino en el cque estar puesto al lugar de destino en el c digo HTML. Asdigo HTML. As que deque de costumbre las p

costumbre las pááginas JSP contienen varios scriptlets. Primero, en la cabecera, un scriptlet con el cginas JSP contienen varios scriptlets. Primero, en la cabecera, un scriptlet con el cóódigo dedigo de

inicializaci

inicializacióón de las variables y el cn de las variables y el cóódigo que no genera cdigo que no genera cóódigo HTML, y en el cuerpo, el los lugares deseados, losdigo HTML, y en el cuerpo, el los lugares deseados, los

scriptlets que generaran c

scriptlets que generaran cóódigo HTML para completar el cdigo HTML para completar el cóódigo HTML fijo.digo HTML fijo.

Ejemplo no 1: Ejemplo no 1: <html> <html> <head> <head> <%! <%!

String titulo="Mi primera Página JSP"; String titulo="Mi primera Página JSP"; int nrPagina=1; int nrPagina=1; %> %> <title><%=titulo%></title> <title><%=titulo%></title> </head> </head> <body> <body> <h1><%=titulo%></h1> <h1><%=titulo%></h1> <hr> <hr> <p> <p>

Este es mi página en JSP numero Este es mi página en JSP numero <%

<%

nrPagina++; nrPagina++;

out.print ("<font color=red><b>"+nrPagina+"</b></font> y me conviene el JSP"); out.print ("<font color=red><b>"+nrPagina+"</b></font> y me conviene el JSP"); %>. %>. </body> </body> </html> </html> Ejemplo no 2: Ejemplo no 2: Por ejemplo, en el c

Por ejemplo, en el cóódigo siguiente, segdigo siguiente, segúún la hora del dn la hora del díía, se marcara 'Buenos da, se marcara 'Buenos díía', o 'Buenas tarde', o 'Buenas noche'.a', o 'Buenas tarde', o 'Buenas noche'.

<html> <html> <head> <head> <title>Saludo</title> <title>Saludo</title> </head> </head> <body bgcolor="white"> <body bgcolor="white">

<% java.util.Date clock = new java.util.Date( ); %> <% java.util.Date clock = new java.util.Date( ); %> <% if (clock.getHours( ) < 12) { %> <% if (clock.getHours( ) < 12) { %> <h1>Buenos días!</h1> <h1>Buenos días!</h1> <% } else if (clock.getHours( ) < 18) { %> <% } else if (clock.getHours( ) < 18) { %> <h1>Buenas tardes!</h1> <h1>Buenas tardes!</h1> <% } else { %> <% } else { %> <h1>Buenas noches!</h1> <h1>Buenas noches!</h1> <% } %> <% } %> </body> </body> </html> </html>

7.5 Agregar comentarios

7.5 Agregar comentarios

Para agregar comentarios en un scriptlet, se pueden utilizar los comentarios de Java :

Para agregar comentarios en un scriptlet, se pueden utilizar los comentarios de Java : ////para simple lpara simple líínea,nea,/*/*yy*/*/ para m

para múúltiple lltiple lííneas.neas.

Para comentarios afuera de un scriptlet, pueden utilizar los comentarios HTML, que son contenidos entre

Para comentarios afuera de un scriptlet, pueden utilizar los comentarios HTML, que son contenidos entre <!--<!--yy-->-->,, pero estos comentarios ser

pero estos comentarios seráán enviados al navegador del cliente y, an enviados al navegador del cliente y, aúún que no sern que no seráávisible en la pvisible en la páágina web, sergina web, seráánn

visible por el usuario si el pregunta al navegador de ense

(22)

8 Utilizaci

8 Utilizaci

ó

ó

n de directivas

n de directivas

Las directivas de p

Las directivas de pááginas dan informaciones sobre la pginas dan informaciones sobre la páágina al servidor JSP. No generan ninguna informacigina al servidor JSP. No generan ninguna informacióón visiblen visible

para el usuario, pero permite determinar la manera que el servidor va utilizar para tratar el c

para el usuario, pero permite determinar la manera que el servidor va utilizar para tratar el c óódigo JSP de la pdigo JSP de la páágina.gina.

Existen tres tipos de directivas: de p

Existen tres tipos de directivas: de páágina, de inclusigina, de inclusióón, n, yytaglibtaglib. Para adjuntar una directiva, hay que incluirla entre. Para adjuntar una directiva, hay que incluirla entre <<

%@

%@ yy%>%>. La instrucci. La instruccióón de directiva incluye el tipo de directiva, el parn de directiva incluye el tipo de directiva, el paráámetro de la directiva, el signo igual, y la valormetro de la directiva, el signo igual, y la valor del par

del paráámetro, en este orden.metro, en este orden.

8.1 Directiva de p

8.1 Directiva de p

á

á

 gina

 gina

La directiva de p

La directiva de páágina es la mgina es la máás utilizada. Ella permite de especificar informaciones relativas a la configuracis utilizada. Ella permite de especificar informaciones relativas a la configuracióón de lan de la

p

páágina JSP, como el tipo de contenido. Asgina JSP, como el tipo de contenido. Asíísi elsi elcontentType = "text/plain"contentType = "text/plain", la p, la páágina JSP resultando se ensegina JSP resultando se enseññara comoara como

texto normal, y no HTML. texto normal, y no HTML.

Ciertos navegadores, como Internet Explorer, quieren ser demasiado inteligente y corregir las supuesta errores del Ciertos navegadores, como Internet Explorer, quieren ser demasiado inteligente y corregir las supuesta errores del desarrollador, as

desarrollador, asííque mismo con la directiva de pque mismo con la directiva de páágina para indicar que es un texto normal, el lo tratara comogina para indicar que es un texto normal, el lo tratara como

HTML... HTML...

Esta aconsejado de incluir las directivas de p

Esta aconsejado de incluir las directivas de páágina en cima del cgina en cima del cóódigo, antes de la etiquetadigo, antes de la etiqueta <html><html>..

Ejemplo: Ejemplo: <%@ page contentType="text/plain" %> <%@ page contentType="text/plain" %> <html> <html> <head> <head>

<title>Test directiva de página</title> <title>Test directiva de página</title> </head>

</head>

<body bgcolor="white"> <body bgcolor="white">

La fecha de hoy es <%= new java.util.Date() %> La fecha de hoy es <%= new java.util.Date() %> </body>

</body> </html> </html>

8.1.1

8.1.1

Lista de par

Lista de par

á

á

metros para directiva de P

metros para directiva de P

á

á

gina

gina

  A

  Attttriribubuto to DeDefefectctoo a

auuttooFFlluussh h ttrruue e EEssttáá verdadero (verdadero (truetrue) cuando el buffer de la p) cuando el buffer de la páágina debe ser enviadogina debe ser enviado

autom

automááticamente cuando estticamente cuando estáálleno, o falso (lleno, o falso (falsefalse) si una excepci) si una excepcióón debe sern debe ser

generada cuando esta lleno. generada cuando esta lleno. b

buuffffeer r 88kkb b EEssppeecciiffiicca a eel l ttaammaañño del buffer para esta po del buffer para esta páágina. El tamagina. El tamañño debe ser expresado eno debe ser expresado en

kilobytes, seguido de

kilobytes, seguido de kbkb, o tiene que ser la palabra clave, o tiene que ser la palabra clave nonenone(ninguna) para(ninguna) para deshabilitar la opci

deshabilitar la opcióón del uso de un buffer.n del uso de un buffer.

conte

contentTypntType e text/text/html html EspecEspecifica ifica el el tipo tipo MIME MIME de de la la respurespuesta esta genergenerada ada por por la la ppáágina, y de maneragina, y de manera

opcional, el tipo de caracteres de la p

opcional, el tipo de caracteres de la páágina fuente y de la respuesta.gina fuente y de la respuesta.

er

errororPrPagage e No No dedefefectcto o UnUna a ppáágina JSP que hay que ensegina JSP que hay que enseññar en case de error durante la ejecuciar en case de error durante la ejecucióón deln del

ccóódigo de la pdigo de la páágina.gina.

ext

extendends s No No defdefectecto o El El nomnombre bre comcomplepleto to de de la la claclase se JavJava a que que la la ppáágina JSP generada extiende. La clasegina JSP generada extiende. La clase

tiene que implementar el

tiene que implementar elJspPageJspPageo el interfazo el interfaz HttpJspPageHttpJspPage del paquetedel paquetejavax.servlet.jspjavax.servlet.jsp.. Nota que no est

Nota que no estáá recomendado de utilizar este atributo. Especificando su propiorecomendado de utilizar este atributo. Especificando su propio

superclass restringe la posibilidad del contenedor JSP de entregar una superclass superclass restringe la posibilidad del contenedor JSP de entregar una superclass especializada y de alto rendimiento.

especializada y de alto rendimiento. im

impoporrt t No No dedeffececto to DeDecclalarracaciióón de la importacin de la importacióón de clases o paquetes Java (separados por coma)n de clases o paquetes Java (separados por coma)

inf

info o No No defdefectecto o TexTexto to que que un un concontentenedoedor r web web puepuede de utiutilizlizar ar comcomo o desdescricripcipcióón de la pn de la páágina en sugina en su

interfaz de administraci interfaz de administracióón.n.

 ©

Referências

Documentos relacionados

c) aos médicos que concluírem cursos de 'pós-graduação, de aperfei- çoamento ou de especialização, os certificados respectivos. A Congregação da Fa- culdade poderá também

A cobrança pelo uso dos recursos hídricos, além de ser uma fonte de recursos financeiros para subsidiar melhorias na gestão das águas da bacia, é um

Com o objetivo de estabelecer um modelo de relações causais que possa configurar a natureza, hierarquia e importância de fatores explicativos da desnutrição em crianças menores de

Ao comparar tais resultados com os dados obtidos para o Indicador de Salubridade Ambiental (ISA) calculado para todo o município, em estudo anterior por Menezes Filho e

Los nuevos tiempos ya reclaman un profesional con profundos conocimientos humanísticos (para crear sensibilidad en el público) y técnicos (para comunicar eficazmente la

Entende-se também que o fenômeno da aprendizagem nas organizações é complexo e multifacetado, devendo ser levado em consideração o contexto organizacional do estudo realizado,

As exigências desta nova agenda visando à qualidade nas ações em saúde, a necessidade e a importância da formação permanente, de forma continua na área e a pesquisa

Para o sistema recolher os dados referentes ao produto que está na palete é necessário que seja feita a leitura do código de barras do(s) produto(s) quando