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



Documentos relacionados
Curso Java Web (JSP's/Servlets)

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

Java EE JavaServer Pages (JSP)

Laboratorio de Aplicaciones Telemáticas

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 ]

Java 2 Enterprise Edition

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

Figura 7-1 Enlace para instalar el servidor web Apache Jakarta Tomcat

Configuración servidor Tomcat

Formato para prácticas de laboratorio

Requisitos. Universidad ORT Arquitectura de Software

Formatos para prácticas de laboratorio

Elementos sintácticos de una JSP.

USANDO SERVLETS EN UN SERVIDOR WEB RESIN

envía al browser. El browser despliega el archivo.

Ejemplos de Servlet y JSP Web Application Development

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

Curso Desarrollo Java Web con JSP, Servlets y el MVC

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

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.

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

JSP(JAVA SERVER PAGES)

JSP (I) Aplicaciones Distribuidas

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

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

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

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

Desarrollo de Servicios Web con JBuilder

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

Servlets. Unidad: 4 Laboratorio de Programación. Universidad Nacional de la Patagonia Austral Unidad Académica Río Gallegos

Introducción al desarrollo web (idesweb)

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

JAVA EE 5. Arquitectura, conceptos y ejemplos.

La utilización de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor.

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

Capitulo 5. Implementación del sistema MDM

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"

HTTP, CGI, Applets y Servlets

ATLAS MANUAL DE USUARIO ARBOL ACCESIBLE

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

Tutorial 4. Aplicaciones Web con NetBeans 5.0

La plantilla propone aprovechar esta estructura en común y sólo modificar el contenido del área del documento que sea diferente.

Hostaliawhitepapers. Redirección 301. Cardenal Gardoki, BILBAO (Vizcaya) Teléfono:

Computación Web (Curso 2013/2014)

Partes de un programa en Java. A. Ejemplo de un Programa en Java /* Programa Ejemplo de Java: Muestra una Ventana Archivo: Ejemplo1.

API de java. ( Guía de alumno Laboratorio 9. Recursos disponibles en moodle para este día.

Objetivo de aprendizaje del tema

Conexión de Mysql con NetBeans

Cada vez que la misma computadora solicita una página pg con un browser, junto con la solicitud el browser envía la cookie al servidor.

I. Introducción a la programación orientada a objetos y al lenguaje JAVA Colegio Reuven Feuerstein Javier Navarro

Especialista Universitario Java Enterprise. Struts. Sesión 4: Introducción a Struts Depto. Ciencia de la Computación e IA

AGREGAR COMPONENTES ADICIONALES DE WINDOWS

EXTENSIÓN DE UML PARA APLICACIONES WEB

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

Introducción a los servlets

Ejemplos básicos de webmathematica para profesores

Primera Escuela de la Red Temática SVO. Madrid, Noviembre, 2006 JAVA BÁSICO. Raúl Gutiérrez Sánchez LAEFF - INTA raul@laeff.inta.

Aplicaciones Web (Curso 2014/2015)

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 4: Tecnologías Web Java

ÍTEMS DEL MENÚ CREACIÓN Y GESTIÓN (Última revisión: lunes, 9 de marzo de 2009)

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

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

Curso de JavaServer Faces

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

Tutorial Servicios Web

aplicaciones web: ASP, CFM, JSP y PHP

FUNCIONAMIENTO: FUNCIONALIDAD

PASO 1: Creamos un nuevo proyecto en NetBeans. Nos vamos a File y pulsamos sobre New Project

Clase. geniería de la Computación. Departamento de Ciencias e Ing. Diego C. Martínez - DCIC-UNS

Internet Information Server

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

Experto Universitario Java Enterprise Spring

Curso de Java POO: Programación orientada a objetos

JavaScript como Orientación a Objetos

[CASI v.0109] Pág. 1

Objetivo: Introducción conceptual y aplicación básica de los lenguajes del lado del servidor.

CREAR UN SERVICIO WEB BASICO CON JAVA AXIS2. Víctor J. Sosa

Modulo 1 El lenguaje Java

ENTORNO DE DESARROLLO MICROSOFT.NET 2010

Integración Capa Web de pojo-miniportal (1)

COPIAS DE SEGURIDAD CON COBIAN BACKUP INSTALACIÓN Y CONFIGURACIÓN

SERVLETS. Aplicaciones Distribuidas

Universidad ORT - Arquitectura de Software. Requisitos

Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java

TUTORIAL DESARROLLO DE APLICACIONES PARA EVOLUTION CON MS ACCESS

RUEDA TORRES DULCE CAROLINA 3CM2 JAX-WS WEB SERVICES WEB APPLICATION DEVELOPMENT

Introducción a Java LSUB. 15 de enero de 2015 GSYC

Internet Information Server

Unidad II. - Las técnicas en las que se basó, las categorías de análisis o ejes centrales que permiten guiar el proceso de investigación.

Curso de PHP con MySQL Gratis

PHPMYADMIN Y MYSQL. Para gestionar la base de datos MySQL, lo haremos desde la aplicación PhpMyAdmin.

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

UNIVERSIDAD DE MEDELLÍN NUEVO PORTAL WEB MANUAL DE USUARIO GESTOR DE CONTENIDOS

Introducción Entorno de ejecución Referencias Descripción del servicio

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

Práctica 4: Java Remote Method Invocation (RMI)

Transcripción:

JSP Java Server Pages cesaracebal.com acebal@uniovi.es

Qué es JSP? Una tecnología para crear páginas Web dinámicas Contiene código HTML normal junto elementos especiales de JSP Están construidas sobre servlets Internamente, el servidor de aplicaciones las compilará a un servlet Vienen a resolver el problema de aquéllos (que era el mismo que con CGI), es decir: Que la creación de la página Web se haga generando HTML directamente por código, en un lenguaje de programación Esto dificulta enormemente la separación de tareas en el equipo de desarrollo, entre diseñadores y programadores 2

Insertar JSP en páginas HTML JSP (como ASP) aborda el problema a la inversa: En vez de insertar HTML en código de programación, podremos insertar ciertos elementos de código en las páginas HTML 3

Ejemplo de página JSP <html> <head> <title>saludo personalizado con JSP</title> </head> <body> <% java.util.date hora = new java.util.date(); %> <% if (hora.gethours() < 12) { %> <h1> Buenos días!</h1> <% } else if (hora.gethours() < 21) { %> <h1> Buenas tardes!</h1> <% } else { %> <h1> Buenas noches!</h1> <% } %> <p>bienvenido a nuestro sitio Web, abierto las 24 horas del día.</p> </body> </html> 4

Para este viaje hacen falta tantas alforjas? Lo cierto es que incluir mucha lógica de programación en una página Web no es que sea mucho mejor que generar el HTML por programa Pero JSP proporciona los elementos de acción (action elements) ) que son como etiquetas HTML pero que representan código reutilizable Además, podríamos llamar a otras clases Java del servidor, a componentes (Javabeans o EJB) 5

Separación de presentación y lógica En definitiva, lo que permite JSP (bien utilizado) es una mayor separación entre la presentación de la página y la lógica de la aplicación, que iría aparte (Desde la página JSP únicamente llamaríamos, de diferentes formas, a ese código) 6

Despliegue de una página JSP Crear una página JSP que muestre la fecha actual <html> <head> <title>fecha actual con JSP</title> </head> <body> <p> <p>hoy es <%= new java.util.date(); %> </body> </html> 7

Despliegue de una página JSP Crear la estructura básica de directorios ejemplos WEB-INF classes Y éste (el directorio raíz de la aplicación) iría en el directorio de despliegue del servidor de aplicaciones (Tomcat, en nuestro caso) lib. web.xml Las clases compiladas de Java (servlets, JavaBeans, etc.) Cualquier fichero.jar necesario para la aplicación Descriptor de despliegue (cómo llamar a los servlet, seguridad, etc.) 8

Despliegue de una página JSP Lo guardamos como index.jsp en el directorio raíz de la aplicación Debe tener extensión jsp 9

Primer ejemplo Una vez desplegada la aplicación en Tomcat, vamos a probarla Introducir en el navegador el siguiente URL: http://localhost:8080/ejemplos-jsp/index.jspjsp/index.jsp Debería mostrarnos la siguiente página: 10

Resultado de la ejecución Para ver esta película, debe disponer de QuickTime y de un descompresor TIFF (LZW). 11

Establecer la página inicial En el ejemplo anterior era necesario indicar explícitamente cuál era la página predeterminada Aquélla que deberá devolver el servidor cuando sólo se le indique un directorio Por ejemplo, ante: http://localhost:8080/ejemplos-jspjsp Podemos cambiar esto en el fichero web.xml: <welcome-file-list> list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> list> 12

Un servlet? Efectivamente, las páginas JSP no son más que otra interfaz que se le ofrece al programador de la misma tecnología Otra manera de hacer lo mismo De hecho, ya hemos dicho que el servidor de aplicaciones las compilará internamente a un servlet Incluso en este caso, que sólo hay código HTML, debido a la extensión (.jsp) Podemos comprobarlo yendo al directorio work/catalina/localhost/ejemplos- jsp/org/apache/jsp/ dentro de Tomcat y examinado el fichero generado index_jsp.java Además, nótese cómo la primera vez que pedimos la página tarda un poco (es porque está compilando la página) 13

Servlet generado por Tomcat import oracle.jsp.runtime.*; package org.apache.jsp; import javax.servlet.*; import javax.servlet.http.*; import javax.servlet.jsp.*; public final class index_jsp extends org.apache.jasper.runtime.httpjspbase implements org.apache.jasper.runtime.jspsourcedependent { private static java.util.list _jspx_dependants; public Object getdependants() { return _jspx_dependants; } public void _jspservice(httpservletrequest request, HttpServletResponse response) throws java.io.ioexception, ServletException { JspFactory _jspxfactory = null; PageContext pagecontext = null; HttpSession session = null; ServletContext application = null; ServletConfig config = null; JspWriter out = null; Object page = this; JspWriter _jspx_out = null; PageContext _jspx_page_context = null; 14

Servlet generado por Tomcat try { _jspxfactory = JspFactory.getDefaultFactory(); response.setcontenttype("text/html"); pagecontext = _jspxfactory.getpagecontext(this, request, response, null, true, 8192, true); _jspx_page_context = pagecontext; application = pagecontext.getservletcontext(); config = pagecontext.getservletconfig(); session = pagecontext.getsession(); out = pagecontext.getout(); _jspx_out = out; out.write("<!doctype html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n"); out.write("\t\"http://www.w3.org/tr/xhtml1/dtd/xhtml1-strict.dtd\">\n"); out.write("<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"es\" lang=\"es\">\n"); out.write(" <head>\n"); out.write(" <title>fecha de hoy con JSP</title>\n"); out.write("\t<meta http-equiv=\"content-type\" content=\"text/html; charset=iso-8859-1\"/>\n"); out.write(" </head>\n"); out.write(" <body>\n"); out.write("\n"); out.write("\t<h1>fecha con JSP</h1>\n"); out.write("\t\n"); out.write("\t<p>hoy es "); out.print( new java.util.date() ); out.write("</p>\n"); out.write("\n"); out.write(" </body>\n"); out.write("</html>\n"); 15

Servlet generado por Tomcat } catch (Throwable t) { if (!(t instanceof SkipPageException)){ out = _jspx_out; if (out!= null && out.getbuffersize()!= 0) out.clearbuffer(); if (_jspx_page_context!= null) _jspx_page_context.handlepageexception(t); } } finally { if (_jspxfactory!= null) _jspxfactory.releasepagecontext(_jspx_page_context); } } } import javax.servlet.*; import javax.servlet.http.*; import javax.servlet.jsp.*; public class _index extends com.orionserver.http.orionhttpjsppage { public final String _globalsclassname = null; // ** Begin Declarations // ** End Declarations public void _jspservice(httpservletrequest request, HttpServletResponse response) throws java.io.ioexception, ServletException { response.setcontenttype( "text/html;charset=iso-8859-1"); /* set up the intrinsic variables using the pagecontext goober: ** session = HttpSession ** application = ServletContext 16

Un servlet? En la siguiente figura podemos ver los pasos que comprende el procesamiento de una página JSP en el servidor: Primero, una fase de traducción automática de la página JSP a código fuente Java del servlet que la implementa Luego, se compila dicha clase Ante las subsiguientes peticiones, se ejecutará directamente la clase del servlet generado 17

Elementos de JSP Tres son los bloques de construcción básicos de JSP: Directivas Acciones Elementos de scripting scripting Veamos los distintos elementos, comenzando por estos últimos 18

Elementos de scripting Permiten añadir pequeños trozos de código directamente en la página JSP, incrustado entre el HTML Por ejemplo, una instrucción if para generar una salida HTML diferente dependiendo de una determinada condición Hay que usarlos con mucho cuidado (o no usarlos en absoluto) Si no, acabaríamos por tener los mismos problemas de mantenibilidad de la aplicación que con los servlets cuando metíamos en ellos HTML 19

Elementos de scripting Hay tres tipos de elementos de scripting : Elemento Descripción <%... %> Scriptlet. se usa para meter código Java dentro <%=... %> Expresión. Permite acceder al valor devuelto por una expresión en Java <%!... %> Declaración. Usada para declarar variables y métodos en la clase correspondiente a la página 20

Un ejemplo más dinámico Hagamos ahora una página JSP que, en función de la hora, muestre un saludo diferente (buenos días, buenas tardes o buenas noches) Y que muestre también la hora actual 21

Objetos predefinidos Las páginas JSP tienen acceso a los mismos objetos predefinidos que tenían los servlets Aquí se llaman como sigue: request response pagecontext session application out config page Se puede acceder a ellos directamente desde los scriptlets 22

Ejercicio: Saludo personalizado Hacer una página JSP que reciba el nombre del usuario y muestre un saludo personalizado Hacer uso de request.getparameter( Nombre ) Llamar a dicha página saludo.jsp Probar la página con el método GET Pasándole como parámetro el nombre a través del URL (Como en el ejemplo del servlet) Crear una página index.html que llame a esa JSP Cambiando el atributo action de form para que llame a la página anterior 23

Directivas JSP tiene una serie de directivas que permiten configurar la página Ejemplos: Elemento <% page... %> <%= include... %> <%! taglib... %> Descripción Permite importar clases Java, especificar el tipo de la respuesta ( text/html por omisión), etcétera Permite incluir otros ficheros antes de que la página sea traducida a un servlet Declara una biblioteca de etiquetas con acciones personalizadas para ser utilizadas en la página 24

Acciones Elementos XML que realizan determinadas acciones JSP define las siguientes acciones: Elemento <jsp:usebean> <jsp:getproperty> <jsp:setproperty> <jsp:include> <jsp:forward> <jsp:param> <jsp:plugin> Descripción Permite usar un JavaBean desde la página Obtiene el valor de una propiedad de un componente JavaBean y lo añade a la respuesta Establece el valor de una propiedad de un JavaBean Incluye la respuesta de un servlet o una página JSP Redirige a otro servlet o página JSP Envía un parámetro a la petición redirigida a otro servlet o JSP mediante <jsp:include> o <jsp:forward> Genera el HTML necesario para ejecutar un applet 25

Acciones personalizadas Aparte de ésas, JSP permite crear nuestros propios elementos de acciones De esa manera, sí que logramos una verdadera separación entre la presentación (HTML) y la lógica de la aplicación (que ahora iría fuera de la JSP, invocada por estos elementos) En el curso usaremos los elementos propios de Struts 26