Aplicaciones Web (Curso 2014/2015)

Documentos relacionados
Computación Web (Curso 2013/2014)

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

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

Aplicaciones Web (Curso 2015/2016)

Aplicaciones Web con Servlets y JSP (II)

Aplicaciones Web con Servlets y JSP (II)

Laboratorio de Aplicaciones Telemáticas

Computación Web (Curso 2013/2014)

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

apa de presentación: JSP Copyright Universidad de Alicante JSP básico 1 Capa de presentación: JSP Sesión 1: JSP Básico

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

Laboratorio de Aplicaciones Telemáticas

07 Java EE Tarea 7. Laboratorio de proyectos de tecnologías de la información III Prof. Emmanuel Oropeza Gonzalez

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

Una página JSP es simplemente una página web con elementos JSP. Todo en la página no son elementos JSP, el resto se denomina plantilla de texto.

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

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

Elementos sintácticos de una JSP.

JAVASERVER PAGES (JSP)

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

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

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

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

SERVLETS. Aplicaciones Distribuidas

Curso Java Web (JSP's/Servlets)

APLICACIONES WEB J2EE - JSP

Java EE JavaServer Pages (JSP)

JSP (I) Aplicaciones Distribuidas

Aplicaciones Web (Curso 2015/2016)

Computación Web (Curso 2015/2016)

Ejercicios de JSP Básico

Aplicaciones Web con Servlets y JSP (I)

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

Computación Web (Curso 2013/2014)

Arquitectura Java Web. Ing. Juan Zevallos Valle

Formato para prácticas de laboratorio

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.

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

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

Curso de Java Java para Web

Java Session. Usando Java Session en aplicaciones web

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 ]

Tema 3: Tecnologías Java distribuidas

Introducción n a Java EE: JSP

JSPs. JSPs. Java Server Pages. Páginas de Web con contenido DINÁMICO! Separa el contenido (generado por programadores)

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

Introducción a JSF con NetBeans

Java web: servlets, Jsp, Jstl, Struts & Ajax

PRACTICA JSP SEMANA 2

Desarrollo Web. Parte 1 Edición Taller de Programación

Introducción n a Java EE: Servlets

JSP/SERVLETS ISIS 3710

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

4. DESARROLLO WEB CON JAVA JSP & SERVLETS

Java Servlets. Qué es un programa? Luis Fernando Llana Díaz. 22 de abril de input Programa output. En pascal:

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

Spring MVC. Desarrollo de Aplicaciones Empresariales

Tecnología para la. Web (MVC)

Tutorial de Introducción a JSP 2º ASIR. José Luis Pérez Morillas y Juan Antonio Martínez Sanchéz.

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

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

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

Java Web J2EE con JSP

Java Web J2EE con JSP

Java Web J2EE con JSP

Escuela Politécnica Superior. Universidad Carlos III de Madrid. Leganés, a 3 de Febrero de Duración de la prueba: 2h 30min

Características de JavaScript

Capítulo 5. Java Server Pages

Introducción a JSP. Capa de presentación: Java Server Pages (JSP)

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

Programador de Aplicaciones Web

JSP( JavaServer Pages)

INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE COMPUTO

Formatos para prácticas de laboratorio

Estructura de datos y Programación

Curso Desarrollo Java Web con JSP, Servlets y el MVC

Guía de estilo de programación Propuesta de convención de Nombres para JSP y Servlets

Lógica en páginas JSP (I)

Desarrollo Web. Parte 2 Edición Taller de Programación

Departamento de Lenguajes y Sistemas Informáticos

Unidad V. Ya veremos qué poner en "algunas_palabras" y "algo_más", por ahora sigamos un poco más.

INF 473 Desarrollo de Aplicaciones en Java

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

Invocar a Recursos Web

Introducción a la programación en PHP

Diego Seco Material adaptado de: Fernando Bellas Universidade da Coruña Desarrollo de Aplicaciones Empresariales

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

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

4.3 Problemas con servlets y páginas JSP. Patrones

Programación Orientada a Objetos

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

Curso JAVA EE

Taller de Programación II J2EE

Capítulo 3. Tecnología Java Servlet

Requisitos. Universidad ORT Arquitectura de Software

Transcripción:

Aplicaciones Web con Servlets y JSP (II) Aplicaciones Web (Curso 2014/2015) 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 <%@ language=³java³ page contenttype=³text/html;charset=utf-8³%> <%@ import=³java.util.date³ page %> <!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 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. 7

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. 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. <%@ language=³java³ contenttype=³text/html³ page errorpage=³error.jsp³ %> iserrorpage=³false³ 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. <%-- los siguientes scriptlets son equivalentes --%> <%= user.getname() %> <% out.println(user.getname()); %> Aplicaciones Web con Servlets y JSP (II) p. 12

Scriptlets: ejemplo <table> <tr><th>product</th><th>price</th></tr> <% for (int i=0; i<catalog.length; i++ ) { ProductInfo 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. 13

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. 14

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. 15

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. 16

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. 17

Java Beans: ejemplo package foo; public class UserInfo 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. 18

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.userinfo³ scope=³session³> <jsp:setproperty property=³firstname³ value=³pepe³ /> </jsp:usebean> Aplicaciones Web con Servlets y JSP (II) p. 19

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. 20

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. 21

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

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. name=³user³ property=³firstname³ <jsp:setproperty value=³<%= %>³ request.getparameter("firstname") /> <%-- ³firstName³ si es un parámetro de la petición --%> name=³user³ property=³firstname³ <jsp:setproperty /> <%-- todos los parámetros de la petición cuyo nombre coincida con propiedades --%> name=³user³ property=³ <jsp:setproperty * /> ³ Aplicaciones Web con Servlets y JSP (II) p. 23

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. 24

Arquitectura de una aplicación con Servlets y JSP Aplicaciones Web con Servlets y JSP (II) p. 25

Introducción Una aplicación Web realiza tareas de procesado y presentación: Los Servlets son adecuados para procesado. Las páginas JSP son adecuadas presentación. Una aplicación Web puede combinar Servlets y páginas JSP: Procesado de parámetros de la petición: Servlets. Acceso a bases de datos: Servlets. Lógica de la aplicación: Servlets. Presentación (vistas): JSP. Aplicaciones Web con Servlets y JSP (II) p. 26

Modelo de funcionamiento (I) 1. El cliente envía la petición HTTP a un servlet. 2. El servlet procesa la petición. Si es necesario, se conecta a la base de datos. 3. El servlet redirige la petición a un JSP. Si es necesario, añade beans como parámetros. 4. El JSP lee los parámetros y devuelve la respuesta formateada visualmente al usuario. Aplicaciones Web con Servlets y JSP (II) p. 27

Modelo de funcionamiento (II) navegador petición HTTP Servlet respuesta HTTP forward bean bean Base de datos JSP Aplicaciones Web con Servlets y JSP (II) p. 28

Mecanismos de redirección de peticiones Hay dos formas de redirigir una petición a otro recurso: Redirecciones HTTP (sendredirect): El servidor envía una respuesta al cliente con un código 3xx y la URI a la que este debe enviar la petición. Redirecciones internas en el servidor (forward): Se redirige la petición de un recurso a otro dentro de la misma aplicación Web. El recurso de la última redirección devuelve al cliente la respuesta HTTP. La redirección es transparente para el cliente. Aplicaciones Web con Servlets y JSP (II) p. 29

Redirecciones sendredirect Fuerza el envío de una respuesta HTTP de redirección al cliente. El cliente envía la petición a la URI recibida en la respuesta. // Redirección con URI absoluta response.sendredirect("http://www.ejemplo.es/"); // Redirección con URI relativa a la URI de la petición actual response.sendredirect("otra.html"); Aplicaciones Web con Servlets y JSP (II) p. 30

Redirecciones forward Un Servlet o JSP reenvía la petición a otro recurso (Servlet, JSP, HTML) de la misma aplicación Web. El cliente no se entera de la redirección (p.e., el navegador muestra la URI original de la petición, no la redirigida). El control retorna al finalizar el método forward, por lo que conviene que sea lo último que se ejecuta. Aplicaciones Web con Servlets y JSP (II) p. 31

Redirecciones forward Forward desde un Servlet: RequestDispatcher rd = request.getrequestdispatcher("vista.jsp"); rd.forward(request, response); Forward desde un JSP: <jsp:forward page="vista.jsp"/> Aplicaciones Web con Servlets y JSP (II) p. 32

Redirecciones forward con parámetros El objeto de la petición (ServletRequest) de los recursos origen y destino de la redirección es el mismo: Se pueden añadir parámetros como atributos a la petición. Noticia nuevanoticia = (...) request.setattribute("noticia", nuevanoticia); RequestDispatcher rd = request.getrequestdispatcher("vista.jsp"); rd.forward(request, response); Aplicaciones Web con Servlets y JSP (II) p. 33

Redirecciones forward con parámetros Recogida de parámetros desde un Servlet: Noticia noticia = (Noticia) request.getattribute("noticia"); Recogida de parámetros desde un JSP: <%-- Alternativa 1: con usebean --%> <jsp:usebean id="noticia" class="beans.noticia" scope="request" /> <%-- Alternativa 2: con scriptlet --%> <% Noticia noticia = (Noticia) request.getattribute("noticia"); %> Aplicaciones Web con Servlets y JSP (II) p. 34