Introducción n a Java EE: JSP

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

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.

Lógica en páginas JSP (I)

4. DESARROLLO WEB CON JAVA JSP & SERVLETS

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

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

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

Introducción n a Java EE: Servlets

Computación Web (Curso 2013/2014)

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

Java Web J2EE con JSP

Java Web J2EE con JSP

Java Web J2EE con JSP

Introducción a JSF con NetBeans

Aplicaciones Web (Curso 2014/2015)

Elementos sintácticos de una JSP.

JSP (I) Aplicaciones Distribuidas

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

Laboratorio de Aplicaciones Telemáticas

Aplicaciones Web con Servlets y JSP (II)

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

Spring MVC. Desarrollo de Aplicaciones Empresariales

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

APLICACIONES WEB J2EE - JSP

Aplicaciones Web (Curso 2015/2016)

Aplicaciones Web con Servlets y JSP (II)

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

Práctica No. 6. Manejo de Eventos con Javascript

JAVASERVER PAGES (JSP)

Curso Desarrollo Java Web con JSP, Servlets y el MVC

Java EE JavaServer Pages (JSP)

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

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

Curso Java Web (JSP's/Servlets)

Oracle 10g: Creación de Aplicaciones J2EE

JSP( JavaServer Pages)

Curso JAVA EE

Práctica No. 1. Instalación del Servidor y Primer Página

Introducción n a Apache Tomcat 5.5

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

Sistemas Informáticos del Valle

Diplomado Java Web Programming with Servlets, JSP, JSF & Ajax

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.

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 ]

Diseño de la capa de presentación. Aplicaciones Distribuidas

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

Spring MVC Spring MVC Anotaciones (II)

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

Laboratorio. Desplegando listas.

Implantación de Sistemas Introducción al PHP con Dreamweaver CS4

Objetivo de aprendizaje del tema

Java Enterprise Edition

Curso de Java Java para Web

Struts. Sesión 1. Introducción a Struts: el controlador y las acciones. Especialista Universitario Java Enterprise

Índice de Figuras 160

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

TEMARIO. 4-Servlet Definición de servlet El Web Container y el ciclo de vida de los servlets El ciclo request- response.

JSP/SERVLETS ISIS 3710

Accesibilidad en la Web: de WCAG 1.0 a WCAG 2.0

SERVLETS. Aplicaciones Distribuidas

Computación Web (Curso 2013/2014)

Diplomado Programming Java (JSE, Servlets & JSP) with Oracle 10g & MyEclipse (o NetBeans)

Capítulo 5. Java Server Pages

Diplomado Programming Java (JSE, Servlets & JSP) with Oracle 10g, Eclipse (o NetBeans) & JBoss

Programación en Internet

Struts. Sesión 2: La vista en Struts. ActionForms y taglibs propias. Especialista Universitario Java Enterprise

Formato para prácticas de laboratorio

Programador de Aplicaciones Web

ESPECIALISTA EN TECNOLOGIAS JAVA

HTML Introducción. 2. Nuevos Conceptos

XML: HTML y XHTML. Sergio Luján Mora XML-03

Arquitectura Java Web. Ing. Juan Zevallos Valle

4.3 Problemas con servlets y páginas JSP. Patrones

Introducción al desarrollo web (idesweb) - 3 a ed.

CAPÍTULO 1. MI PRIMERA APLICACIÓN...

1.- INTRODUCCIÓN. <etiqueta> contenido</etiqueta>

Apéndice A. El lenguaje EL y las librerías JSTL

Introducción a las aplicaciones WEB

Aplicaciones Web con Servlets y JSP (I)

INF 473 Desarrollo de Aplicaciones en Java

Presentación del Curso Presencial. Programación Web con Java J2EE

Formatos para prácticas de laboratorio

Guía Docente ESCUELA POLITÉCNICA SUPERIOR

Temario Detallado Curso Java Verano Online

A continuación en la figura D.1 se verá el código de una implementación del archivo struts-config.xml:

Curso de JavaServer Faces

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

Qué es una aplicación web

Capítulo 3. Tecnología Java Servlet

Experto en Desarrollo de Componentes Web con Tecnología Servlet y JSP

Experto en Desarrollo de Componentes Web con Tecnología Servlet y JSP

JAVA WEB 1er Nivel Servlet + JSP + JDBC + Sesiones

Práctica 1. Entorno de Trabajo e Introducción a Java. Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos. Versión 1.0.

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

Transcripción:

Introducción n a Java EE: Departamento Lenguajes escuela técnica superior ingeniería informática Versión original: Amador Durán y Ramón Mel (marzo 2007) Tiempo: 1h Grupo Ingeniería a l Software Abril 2007 Qué es Java Server Pages? Es una tecnología a servidor basada en servlets para generar páginas dinámicas. Inicialmente permitía mezclar contenido estático tico* con scriptlets código Java (contenido dinámico mico). Actualmente se prefiere mezclar contenido estático con elementos especiales que generan contenido dinámico en lugar usar scriptlets. request response HTML Servidor HTTP HTTP Contenedor servlets Cliente web CSS Compilador *HTML, XML, WML, SVG, texto, etc. XML Grupo Ingeniería l Software 1 1

Estructura básica b una página p Des la especificación 2.0, las páginas puen ser plantillas texto sin formato específico o documentos XML, aunque esta nueva notación está aún poco extendida y es algo farragosa. La extensión habitual una es.jsp, aunque se usa.jspx para las páginas que son documentos XML y.jspf para los fragmentos. En la notación habitual (sin usar ningún n tipo scriptlets), una está compuesta por: Contenido estático tico: HTML, XML, WML, texto libre, etc. Comentarios : <%-- -- Directivas : <%@ Código EL (Expression( Language): ${ } Elementos ndar: <jsp: ></ </jsp:> Elementos custom : JSTL, Struts, etc. Grupo Ingeniería l Software 2 Ejemplo una página p <?xml <?xml version="1.0" version="1.0" encoding="iso-8859-1" encoding="iso-8859-1"?>?> <%@ <%@ page page language="java" language="java" <%@ <%@ page page contenttype="text/html" contenttype="text/html" <%@ <%@ page page pageencoding="iso-8859-1" pageencoding="iso-8859-1" <%@ <%@ taglib taglib prefix="c" prefix="c" uri="http://java.sun.com/jsp/jstl/core" uri="http://java.sun.com/jsp/jstl/core" <!DOCTYPE <!DOCTYPE html html PUBLIC PUBLIC "-//W3C//DTD "-//W3C//DTD XHTML XHTML 1.0 1.0 Transitional//EN" Transitional//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html <html xmlns="http://www.w3.org/1999/xhtml"> xmlns="http://www.w3.org/1999/xhtml"> <head <head> head> <meta <meta http-equiv="content-type" http-equiv="content-type" content="text/html;charset=iso-8859-1" content="text/html;charset=iso-8859-1" <link <link rel="stylesheet" rel="stylesheet" type="text/css" type="text/css" href="styles/estilo.css" href="styles/estilo.css" <title <title>página title>página ejemplo</title ejemplo</title> title> </head </head> head> <%-- <%-- sigue sigue en en la la siguiente siguiente transparencia transparencia -- -- Grupo Ingeniería l Software 3 2

Ejemplo una página p (continuación) n) <%-- <%-- viene viene la la transparencia transparencia anterior anterior -- -- <body <body> body> <h1 <h1>ejemplo h1>ejemplo página página 2.1</h1 2.1</h1> /h1> <jsp:usebean <jsp:usebean id="errores" id="errores" scope="session" scope="session" class="es.us.lsi.daaw.beans.listamensajes" class="es.us.lsi.daaw.beans.listamensajes" <div <div id="div_errores" id="div_errores" class="errores"> class="errores"> <ul <ul> ul> <c:foreach <c:foreach var="mensaje" var="mensaje" items="${ items="${errores.mensajes}"> ${errores.mensajes}"> <li <li>${mensaje}</li> li>${mensaje} ${mensaje}</li> </c:foreach </c:foreach> c:foreach> </ul </ul> ul> </div </div> div> </body </body> body> </html </html> html> Grupo Ingeniería l Software 4 Principales directivas : <%@ page Especifica ciertas características la, por ejemplo: language = "java" Lenguaje los scriptlets la página. Por fecto es Java, por lo que no es necesario especificarlo. errorpage = "URL gestión n errores" URL la página a la que el contenedor hará un forward si se genera alguna excepción al ejecutar la. iserrorpage = "true false" true false" Indica si la es una página gestión errores con acceso al objeto exception. El valor por fecto es false. contenttype = "text" text/html;charset=iso-8859-1" Indica el tipo MIME y el juego caracteres para la respuesta. Por fecto son text/html e ISO-8859 8859-1. El juego caracteres también se pue especificar aparte con pageencoding. iselignored = "true false" true false" Indica si el contenedor servlets be ignorar o procesar el código EL. Si el archivo web.xml es acor a la especificación servlets 2.3, el valor por fecto es true; si lo es a la 2.4, es false, (el contenedor procesa el código EL). Grupo Ingeniería l Software 5 3

Principales directivas : <%@ inclu Incluye un archivo (normalmente un fragmento ) antes que el contenedor transforme la página en un servlet.* Su único atributo es: file = "URL relativa" URL relativa l archivo a incluir. Si empieza por /, se consira relativo al contexto la aplicación web. Principales directivas : <%@ taglib Permite usar una biblioteca custom. Sus atributos son los siguientes: uri = "URI la la biblioteca" URI que intifica manera única a una biblioteca custom, p.e. http://java.sun.com/jsp/jstl/core. prefix = "prefijobiblioteca" prefijobiblioteca" Prefijo para las etiquetas los elementos finidos en la biblioteca custom. No se admiten prefijos vacíos ni ninguno los siguientes: jsp, jspx, java, javax, servlet, sun, y sunw. *Ver la sección dicada al ciclo vida una. Grupo Ingeniería l Software 6 Lenguaje Expresiones (EL) El Expression Language permite especificar expresiones forma sencilla en las páginas. Las expresiones EL son analizadas y procesadas por el contenedor servlets al transformar la página en un servlet.* Una expresión EL tiene la forma ${expresión} n}, y pue incluir números, canas y propiedas JavaBeans, incluyendo entre otros, los siguientes objetos implícitos que son tratados como mapas: pagescope: contexto la página que permite accer a su mapa y a las propiedas los objetos servletcontext, session, request y response. requestscope: mapa con los atributos request. sessionscope: mapa con los atributos sesión. applicationscope: mapa con los atributos aplicación. param y paramvalues: valores enviados por un formulario. *Si el scriptor spliegue (web.xml) sigue la especificación 2.4 o superior. Grupo Ingeniería l Software 7 4

Ejemplos uso expresiones EL ${param.nombre param.nombre} El valor l parámetro "nombre" o null si no se ha enviado o es una cana vacía. Equivale a ${param param["nombre"]} y a ${param param['nombre']} ['nombre']}. ${!empty param.direccion} Cierto (true) si el parámetro "dirección" se ha enviado y no es una cana vacía. Equivale a ${!empty param[" ["direccion"]}. ${sessionscope.carrito.size sessionscope.carrito.size} El valor la propiedad "size" la variable sesión "carrito". Equivale a ${sessionscope sessionscope["carrito"]. ["carrito"].size}. ${applicationscope applicationscope[" ["numusuarios"]} El valor la variable aplicación "numusuarios". Equivale a ${applicationscope.numusuarios applicationscope.numusuarios}. ${carrito.preciototal carrito.preciototal} El valor la propiedad "preciototal" la variable "cararito" si la encuentra en los ámbitos página, request, sesión o aplicación (en ese orn). Si no la encuentra, vuelve null. Equivale a ${carrito["preciototal preciototal"]} "]}. Grupo Ingeniería l Software 8 Elementos Son 14 elementos que comienzan con el prefijo jsp: Algunos tienen que ver con la nueva sintaxis XML : jsp:root, jsp:body, jsp:attribute, jsp:text, Otros no se suelen usar mucho, como la inclusión dinámica (jsp:inclu), o el forwarding (jsp:forward, sin haber generado contenido previamente). Los más utilizados son: <jsp:usebean>: para usar o crear JavaBeans en cualquiera los mapas los posibles ámbitos (página, request, sesión o aplicación). <jsp:setproperty>: para dar valor a las propiedas los JavaBeans clarados con <jsp:usebean>. Otros como jsp:getproperty han quedado obsoletos con la aparición las expresiones EL. Grupo Ingeniería l Software 9 5

Elementos : <jsp:usebean< jsp:usebean> Si no existe, crea un bean usando la clase especificada y almacenándolo con el nombre indicado en el mapa l ámbito correspondiente. En cualquier caso, asocia el bean con el intificador especificado en el atributo id y permite su uso en el resto la. Ejemplo: <jsp:usebean id="cliente" scope="session" class="es.us.lsi.daaw.beans.cliente" Equivale (ntro un servlet) a: HttpSession sesion = request.getsession(); if ( sesion.getattribute( "cliente" ) == null ) { sesion.setattribute( "cliente", new Cliente() ); } Cliente cliente = (Cliente)sesion.getAttribute("cliente"); Grupo Ingeniería l Software 10 Elementos : <jsp:setproperty< jsp:setproperty> Asigna el valor especificado a la propiedad indicada l bean previamente clarado o creado con jsp:usebean. Por ejemplo: <jsp:setproperty name="carrito" property="scuento" value="${sessionscope.cliente.scuento}" Se pue usar ntro jsp:usebean para asignar valores durante la creación l bean: <jsp:usebean id="cliente" scope="session" class="es.us.lsi.daaw.beans.cliente"> <jsp:setproperty name="cliente" property="nombre" value="${param['nombre']}" </jsp:usebean> Permite asignar golpe todos los parámetros enviados por un formulario que coincidan con los nombres y tipos las propiedas un bean:* <jsp:setproperty name="nuevocliente" property="*" *Pue generar una excepción si los tipos no coincin. Grupo Ingeniería l Software 11 6

Elementos custom Es posible sarrollar bibliotecas elementos conocidos como custom. Para usarlos en una hay que usar la directiva <%@ taglib. La JavaServer Pages Standard Tag Library (JSTL), es un conjunto 5 bibliotecas custom estandarizadas: Core (prefijo c): gestión variables, control flujo, gestión URLs. XML (prefijo x): similar a core, pero orientado a XML incluyendo transformación con XSL. i18n (prefijo fmt): internacionalización, incluyendo formateo fechas y números. SQL (prefijo sql): acceso a bases datos con SQL, sólo para prototipos (la capa presentación no be accer directamente a los datos). Funciones (prefijo fn): funciones longitud colecciones y manipulación canas. Grupo Ingeniería l Software 12 Ciclo vida una página p Las páginas son gestionadas por un servlet especial, interno al contenedor servlets. Dicho servlet traduce las páginas a servlets, las compila y las ejecuta la primera vez que se invocan o si la fecha la última modificación la página es posterior a la l servlet generado. La especificación oficial habla tres fases en el ciclo vida las páginas : Traducción: la se traduce en código un servlet. Compilación: el servlet generado se compila. www.javapassion.com Ejecución: el servlet compilado se ejecuta. Grupo Ingeniería l Software 13 7

Despliegue una página p Las páginas no necesitan ningún tipo spliegue especial, simplemente se colocan en la zona públicap la aplicación web. Ocultación n una página p Se pue ocultar una página en la zona privada la aplicación web, p.e. en un directorio ntro WEB-INF INF. No se podrá accer a la a través una URL, pero sí haciendo un forward s ntro un servlet. Grupo Ingeniería l Software 14 Mapeo URLs una página p Se pue asociar una URL a una (oculta o en la zona pública una aplicación web). Para ello se usan los elementos <servlet> y <servlet- mapping> l scriptor spliege web.xml. En el elemento <servlet> se be especificar el camino a la (<jsp-file> file>) en vez la clase l servlet (<servlet-class>). El elemento <web <web-app> web-app> <servlet- mapping> se utiliza igual que con los servlets, asociando una URL al nombre l servlet. <servlet <servlet> servlet> <servlet <servlet-name>jspoculto</servlet-name> servlet-name>jspoculto</ </servlet-name> <jsp <jsp-file>/web-inf/jsp/escondida.jsp</jsp-file> jsp-file> file>/web-inf/jsp/escondida.jsp</ </jsp-file> </servlet </servlet> servlet> <servlet <servlet-mapping> servlet-mapping> <servlet <servlet-name>jspoculto</servlet-name> servlet-name>jspoculto</ </servlet-name> <url <url-mapping>/escondido.html</url-mapping> url-mapping>/escondido.html</ </url-mapping> </servlet </servlet-mapping> servlet-mapping> </web </web-app> web-app> Grupo Ingeniería l Software 15 8

Creación n una página p con Eclipse 3.2 Grupo Ingeniería l Software 16 Creación n una página p con NetBeans 5.5 Grupo Ingeniería l Software 17 9

Creación n una página p con NetBeans 5.5 Grupo Ingeniería l Software 18 Bibliografía a recomendada Java Server Pages Basics. S. Ching. http://www.javapassion.com, 2006. 2.0 Syntax Reference. Sun Microsystems. http://java.sun.com/products /jsp/docs.html, 2006. The Java EE 5 Tutorial The Java EE 5 Tutorial. E. Jendrok et al. http://java.sun.com/javaee/5 /docs/tutorial/doc/, 2007. Grupo Ingeniería l Software 19 10

Desarrollar páginas p Escriba algunos ejemplos páginas sencillas: El clásico ejemplo l " Hola, mundo!", pero usando una expresión EL. Recibir datos un formulario y generar una respuesta con esos datos usando EL. Experimente con la ocultación páginas mediante los elementos <servlet> y <servlet- mapping> web.xml. Cree una en algún directorio WEB-INF y compruebe como no pue accer a ella s un navegador. Escriba un servlet que haga un forward a la oculta y compruebe como pue accer a los distintos objetos ámbito s la oculta usando expresiones EL. Observe el código l servlet generado por una al ser traducida. Grupo Ingeniería l Software 20 11