Computación Web (Curso 2013/2014)

Documentos relacionados
Laboratorio de Aplicaciones Telemáticas

JavaBeans y JavaServer Pages: Guía rápida. Manuel Urueña

JSP Básico. Índice. 2 Traducción de los JSP a servlets Acciones Introducción a JSP... 2

Elementos sintácticos de una JSP.

Tema 3: Diseño de la capa de presentación

Mario Muñoz Organero & Norberto Fernández * Departamento de Ingeniería Telemática

Contiene código HTML normal junto elementos especiales de JSP. Internamente, el servidor de aplicaciones las compilará a un servlet

Java EE JavaServer Pages (JSP)

JSP (I) Aplicaciones Distribuidas

Curso Java Web (JSP's/Servlets)

Arquitectura J2EE para aplicaciones web. Aplicaciones web con JSP. Arquitectura J2EE: Capa de Acceso Web. Arquitectura J2EE: Capa Cliente

Formato para prácticas de laboratorio

Agosto. Un primer JSP. Guía rápida. [ h t t p : / / w w w. o p e n b o x e r m b. c o m / j a v a. p h p ]

Aplicaciones Web con Servlets y JSP (I)

Separemos la presentación n del contenido Mis amigos los servlets, JavaBeans,.. Java Server Pages

Escribir código HTML en los servlets es tedioso. que hay que utilizar las instrucciones print, println, etc. Es decir, HTML está dentro de java.

Práctica 4 PROGRAMACIÓN WEB CON SERVLETS Y JSP. 1. Introducción a JSP... 2

Introducción (1) En una aplicación web, especialmente en Internet, los cambios a la interfaz gráfica son muy frecuentes

JavaServer Faces. Sesión 2: MVC en JSF. Experto Universitario Java Enterprise

Java Web J2EE con JSP

PRACTICA JSP SEMANA 2

Introducción a JSF con NetBeans

4. DESARROLLO WEB CON JAVA JSP & SERVLETS

Introducción n a Java EE: JSP

Seguridad de la aplicación para servlets y JSP (página activas java)

SERVLETS. Aplicaciones Distribuidas

(de documentos 09-JSP-Intro.pdf y 10-JSP-Scripting- Elements.pdf) Página 296

Laboratorio de Aplicaciones Telemáticas (Curso 2009/2010)

Formatos para prácticas de laboratorio

Java Avanzado Facultad de Ingeniería. Escuela de computación.

INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE COMPUTO

Sistemas de Información 12/13 Servlets y JSPs (Java Server Pages)

Principios de Computadoras II

Un servlet es una clase java que implementa la Servlet interface. Un servlet corre dentro de un contexto denominado Servlet engine.

Los Constructores(1)

Sincronización de Threads

Programa Regular. Vázquez Alejandro. Jefe de TP simple.

Tema: Clases y Objetos en C#. Parte II.

Tema 6: Clases. Índice

Tecnología para la. Web (MVC)

5.3.2 Java Server Faces (JSF)

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Requisitos. Universidad ORT Arquitectura de Software

Unidad Didáctica 3. Tipos genéricos. Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos

Curso Desarrollo Java Web con JSP, Servlets y el MVC

Programación Orientada a Objetos en C++

ISJu: Técnicas de Programación Cartilla Teórica-Práctica Instalación del "Eclipse IDE for Java EE Developers" y el servidor "Apache Tomcat"

INTRODUCCIÓN N A LAS APLICACIONES WEB Y TECNOLOGÍA A JAVA

Productos para desarrollar aplicaciones web: ASP, CFM, JSP y PHP

FUNCIONAMIENTO: FUNCIONALIDAD

Universidad Tecnológica del Valle del Mezquital. Desarrollo de Aplicaciones Web. Manual JSP

! Qué es la POO?! Un paradigma de programación. ! No hay paradigmas mejores ni peores! Todos tienen sus ventajas e inconvenientes

<JSP> Manual del alumno. Curso de Java Server Pages Nivel básico

Diseño Y Aplicaciones de Sistemas Distribuidos. Servlets. Joan Vila

Características de las tecnologías de web scripting

4.3 Problemas con servlets y páginas JSP. Patrones

Curso JAVA EE

PARTE 1 CAPÍTULO 1. Agradecimientos xix Acercadelautor xx Introducción xxi. xxii. Servlets 2. I Y2.2 2

aplicaciones web: ASP, CFM, JSP y PHP

Programación Avanzada CONCEPTOS BÁSICOS DE IMPLEMENTACIÓN EN C++

J2EE Java 2 Enterprise Edition

Capítulo 5. Java Server Pages

class identificador{ //Bloque de propiedades (datos miembro, atributos, propiedades) //Bloque de métodos (comportamientos) }

qwertyuiopasdfghjklzxcvbnmqwertyui opasdfghjklzxcvbnmqwertyuiopasdfgh jklzxcvbnmqwertyuiopasdfghjklzxcvb nmqwertyuiopasdfghjklzxcvbnmqwer

FACULTAD DE ECONOMIA Y ADMINISTRACION DEPARTAMENTO DE CIENCIAS DE LA COMPUTACION CÁTEDRA PROGRAMACION GENERAL. Trabajo Práctico Nº 4

Librería Estándar de Etiquetas JSP (JSTL JSP Standard Tag Library)

Tipos Recursivos de Datos

Técnico Superior en Programación con Java SE Standard Edition

JSP(JAVA SERVER PAGES)

CAPÍTULO 14. DESARROLLO

4.4 Caso de Estudio: Diseño e Implementación de la Capa Web de MiniPortal

Curso: Programación con JAVA SE Estándar Edition.

ESPECIALISTA EN TECNOLOGIAS JAVA

Java Servlets. Luis Fernando Llana Díaz. 17 de abril de Departamento de Sistemas Informáticos y ProgramaciónUniversidad Complutense de Madrid

Objetivo de aprendizaje del tema

PROGRAMACIÓN ORIENTADA A OBJETOS 10/02/2009. Examen de Java. Nombre: DNI: Titulación:

Web Tier en JAVA. Nicolás Troncoso Carrère. Valparaíso, ILI 258 Departamento de Informática Universidad Técnica Federico Santa María

Master en Java Certificación para Programadores

Prueba N o 1. Programación II

Experto Universitario Java Enterprise Spring

Test : Conteste exclusivamente en una HOJA DE LECTURA ÓPTICA, no olvidando marcar que su tipo de examen es A.

NIVEL 16: ESTRUCTURAS N-ARIAS RECURSIVAS Aplicaciones Web, Html y Servlets. ISIS1206 Estructuras de Datos

Java Inicial (20 horas)

El Internet tuvo origen en los Estados Unidos de Norte América cuando en un proyecto

Oracle 10g: Creación de Aplicaciones J2EE

Apuntes de Programación y estructuras de datos. Control de datos

Java 2 Enterprise Edition

FUNDAMENTOS DE INFORMÁTICA

Curso de JavaServer Faces

Experto Universitario Java Enterprise Spring

IMPORTAR Y USAR CLASES DEL API DE JAVA. EJEMPLO CLASE MATH Y MÉTODO POW. CONSTRUCTORES PRIVADOS. (CU00647B)

Oracle Fusion Middleware 11g: Creación de Aplicaciones con ADF I

Tema 3. Introducción a programas en el lado del servidor

Definición de clase: Una clase es un prototipo que define las variables y los métodos de todos los objetos con características comunes.

Definición de clase: Una clase es un prototipo que define las variables y los métodos de todos los objetos con características comunes.

18. Interfaces Declaración de una interfaz

PHP HypertextPreProcessor

Primeros pasos con JavaServer Faces usando Eclipse

Construcciones del Lenguaje Java

Lección 2: Creando una Aplicación en Java. 1. Estructura del archivo de una clase. 3. Definiendo clases fundamentos

Transcripción:

Aplicaciones Web con Servlets y JSP (II) Computación Web (Curso 2013/2014) Jesús Arias Fisteus // jaf@it.uc3m.es Aplicaciones Web con Servlets y JSP (II) p. 1

Java Server Pages (JSP) Aplicaciones Web con Servlets y JSP (II) p. 2

Introducción Un servlet no resulta adecuado para presentación (escribir directamente la salida HTML) porque el código HTML está entremezclado dentro del código Java: Incómodo cambiar el código HTML. No facilita la división de tareas entre diseñadores de HTML y programadores. Alternativa: escribir directamente el código HTML con poco código Java incrustado. Aplicaciones Web con Servlets y JSP (II) p. 3

Introducción Una página JSP es una página HTML que incorpora ciertos elementos dinámicos: etiquetas especiales y pequeños fragmentos de código. El código HTML aparece a la salida sin modificaciones. Los elementos dinámicos se evalúan o ejecutan en el servidor en el momento de construcción de la respuesta. Aplicaciones Web con Servlets y JSP (II) p. 4

JSP ejemplo <%@ page language= java contenttype= text/html;charset=utf-8 %> <%@ page import= java.util.date %> <!DOCTYPE html> <html> <head> <title>hola Mundo</title> </head> <body> <p>hola, esto es una página JSP.</p> <p>la hora del servidor es <%= new Date() %></p> </body> </html> Aplicaciones Web con Servlets y JSP (II) p. 5

JSP ejemplo: documento recibido por el cliente <!DOCTYPE html> <html> <head> <title>hola Mundo</title> </head> <body> <p>hola, esto es una página JSP.</p> <p>la hora del servidor es Wed Nov 06 13:25:34 CET 2002</p> </body> </html> Aplicaciones Web con Servlets y JSP (II) p. 6

JSP ejemplo transformado en un servlet (...) out.write("<!doctype html>\n "); out.write("<html>\n "); out.write(" <head>\n "); out.write(" <title>hola Mundo</title>\n "); out.write(" </head>\n "); out.write(" <body>\n <p>hola, esto es una página JSP.</p>\n "); out.write(" <p>la hora del servidor es "); out.print( new Date() ); out.write("</p>\n "); out.write(" </body>\n"); out.write("</html>\n"); (..) Aplicaciones Web con Servlets y JSP (II) p. 7

JSP como servlet Aunque no es estrictamente obligatorio, los contenedores de servlets suelen transformar las páginas JSP en el código fuente de servlets, que después se compilan y ejecutan. Aplicaciones Web con Servlets y JSP (II) p. 8

Comentarios en JSP Los comentarios JSP no se envían al cliente, al contrario que los comentarios HTML. <%-- Esto es un comentario JSP --%> Aplicaciones Web con Servlets y JSP (II) p. 9

Directivas JSP: page Todas las páginas JSP deberían incluirla. Atributos habituales: language: lenguaje de programación (java por defecto). contenttype: tipo de contenido de la página (text/html por defecto). iserrorpage: indica si es una página de error (false por defecto). errorpage: página a la que dirigirse si ocurre una excepción procesando esta página. <%@ page language= java contenttype= text/html iserrorpage= false errorpage= error.jsp %> Aplicaciones Web con Servlets y JSP (II) p. 10

Otras directivas JSP include: permite incluir directamente el código de otro fichero en el punto en que aparezca la directiva. import: permite importar clases Java utilizadas en la página JSP. <%@ include file= footer.html %> <%@ page import= java.util.* %> Aplicaciones Web con Servlets y JSP (II) p. 11

Scriptlets Permiten incrustar código escrito en otro lenguaje de programación (normalmente Java): <%= expresión %>: evalúa la expresión y muestra el resultado en la página. <% sentencias %>: ejecuta las sentencias, sin mostrar nada en la página. <%! declaraciones %>: declaraciones de variables. <%-- los siguientes scriptlets son equivalentes --%> <%= user.getname() %> <% out.println(user.getname()); %> Aplicaciones Web con Servlets y JSP (II) p. 12

Scriptlets (aviso) Con<%! declaraciones %> se declaran atributos y métodos de instancia: Todas las peticiones a la página JSP comparten la misma instancia del servlet asociado, por lo que también comparten la misma copia de los atributos de instancia. Por tanto, no se debe declarar variables locales de la página con esta directiva, sino con: <% String text = new String(); %> Aplicaciones Web con Servlets y JSP (II) p. 13

Scriptlets: ejemplo <table> <tr><th>product</th><th>price</th></tr> <% for (int i=0; i<catalog.length; i++ ) { ProductInfoBean product = catalog[i]; %> <tr> <td> <a href= <%= response.encodeurl("view?id=" + product.getid()) %> > <%= product.getshortname() %> </a> </td> <td><%= product.getprice() %> Euros</td> </tr> <% } %> </table> Aplicaciones Web con Servlets y JSP (II) p. 14

Variables implícitas JSP proporciona automáticamente una serie de variables adecuadamente declaradas e inicializadas, utilizables por el programador: javax.servlet.servletcontext application javax.servlet.servletconfig config javax.servlet.jsp.jspwriter out javax.servlet.jsp.pagecontext pagecontext javax.servlet.http.httpservletrequest request javax.servlet.http.httpservletresponse response javax.servlet.http.httpsession session <%-- Sólo en páginas marcadas con iserrorpage: --%> java.lang.throwable exception Aplicaciones Web con Servlets y JSP (II) p. 15

Acciones:jsp:include La acciónjsp:include invoca al servlet o JSP dado e incluye en resultado de su ejecución en el punto actual del documento JSP desde el cual se incluya. El control retorna finalmente a la página inicial. Opcionalmente, se pueden pasar parámetros. <jsp:include page= header.jsp > <jsp:param name= title value= Welcome /> </jsp:include> Aplicaciones Web con Servlets y JSP (II) p. 16

Acciones:jsp:forward La acciónjsp:forward invoca al servlet o JSP dado e incluye en resultado de su ejecución en el punto actual del documento JSP desde el cual se incluya, sin que retorne el control a la página inicial. Opcionalmente, se pueden pasar parámetros. <jsp:forward page= list.jsp > <jsp:param name= order value= date /> </jsp:forward> Aplicaciones Web con Servlets y JSP (II) p. 17

Java Beans Un Java Bean es una clase Java que cumple el siguiente convenio: Contiene propiedades (normalmente atributos de instancia privados). El acceso a las propiedades se realiza mediante métodos de acceso get, set e is. Tiene siempre un constructor sin argumentos (aunque podría tener más constructores). Aplicaciones Web con Servlets y JSP (II) p. 18

Java Beans: ejemplo public class UserInfoBean implements java.io.serializable { private String firstname; private boolean registered; } public String getfirstname() { return firstname; } public void setfirstname(string firstname) { this.firstname = firstname; } public boolean isregistered() { return registered; } public void setregistered(boolean registered) { this.registered = registered; } Aplicaciones Web con Servlets y JSP (II) p. 19

Java Beans en JSP JSP proporciona instrucciones especiales para trabajar más cómodamente con Java Beans. La acciónjsp:usebean: Si el bean aún no existe en el contexto: Declara, crea e inicializa el bean. Crea una referencia al bean con el nombre dado porid. Si el bean ya existe en el contexto: Obtiene una referencia al mismo con el nombre dado porid. <jsp:usebean id= user class= foo.userinfobean scope= session > <jsp:setproperty property= name value= Pepe /> </jsp:usebean> Aplicaciones Web con Servlets y JSP (II) p. 20

Java Beans en JSP: contextos (I) Un bean en JSP se puede almacenar en uno de los siguientes contextos: page: asociado a la página JSP y a una petición HTTP concreta, desaparece al finalizar el procesado de la página. request: asociado a una petición HTTP concreta, compartida entre todos los JSPs y servlets que atiendan dicha petición, desaparece al finalizar el procesado de la petición. Aplicaciones Web con Servlets y JSP (II) p. 21

Java Beans en JSP: contextos (II)... session: asociado a la sesión, compartida por todos los JSPs y servlets para todas las peticiones de una misma sesión, desaparece al finalizar la sesión. application: asociado al contexto de la aplicación Web, compartido por todos los servlets y JSPs de la aplicación en todas las peticiones. Aplicaciones Web con Servlets y JSP (II) p. 22

La acciónjsp:getproperty Se evalúa al valor de una propiedad de un bean. <jsp:getproperty name= user property= fullname /> Aplicaciones Web con Servlets y JSP (II) p. 23

La acciónjsp:setproperty Establece el valor de una propiedad de un bean. Convierte, si es necesario, el valor de la propiedad desde una cadena de texto al tipo de datos correspondiente. Proporciona un atajo para establecer valores de propiedades a partir de los parámetros de la petición, si ambos tienen el mismo nombre. <jsp:setproperty name= user property= firstname value= <%= request.getparameter("firstname") %> /> <%-- si firstname es un parámetro de la petición --%> <jsp:setproperty name= user property= firstname /> <%-- todos los parámetros de la petición cuyo nombre coincida con propiedades --%> <jsp:setproperty name= user property= * /> Aplicaciones Web con Servlets y JSP (II) p. 24

Java Server Pages Tag Libraries Permiten declarar nuevas marcas JSP (tags) cuyo código Java se programa en clases de implementación de cada tag: Permite reducir el código Java incrustado en páginas. Útil para acciones utilizadas a menudo (p.e. acceso a bases de datos). No las veremos en esta asignatura. Aplicaciones Web con Servlets y JSP (II) p. 25

Algunas referencias Marty Hall, Core Servlets and JavaServer Pages. Prentice Hall (2000). http://www.oracle.com/technetwork/ java/javaee/jsp/ Aplicaciones Web con Servlets y JSP (II) p. 26