Java Server Pages JSP Otra forma de hacer servlets.

Slides:



Advertisements
Presentaciones similares
Java Enterprise Edition (Java EE)
Advertisements

CJ02 – Técnicas avanzadas en java 1.4 y 5.0
Curso de Java “Java para Web” Rogelio Ferreira Escutia.
Fernando Alonso Blázquez Sesiones 06 de Mayo de 2004.
Curso de java básico (scjp)
El mecanismo básico de interacción entre el usuario y un sitio web esta dado por el uso de formularios html. El server envía un formulario que el browser.
Curso de Java Capitulo 7: Conceptos sobre poo Profesor:
Programación Orientada a Objeto 1
CAPTURA Y RECOLECCIÓN DE ERRORES 20 de Noviembre de 2004.
JSP Java Server Pages.
Modelando aplicaciones
ActiveX.
Clases Extendidas La clase extendida hereda los campos y métodos de la clase de la cual extiende. La clase original se conoce como superclase y la clase.
Entendiendo la definición de clases
Arquitectura CLARO-TECNOTREE
"java del lado del servidor" Servlet y JSP Java Server Pages.
OBJETO REQUEST. El objeto Request Por qué el objeto request Funcionamiento Colecciones: – Transferencia de variables por URL –Transferencia de variables.
JSP Copyright ISIPE – Instituto de Servicios Informáticos para Empresas – Universidad Siglo 21 – Cualquier copia u otro uso debe ser autorizado expresamente.
Informática II Prof. Dr. Gustavo Patiño MJ
Objetos y Clases en Java
Sesión en Servlets 31 de Marzo de Índice ¿Por qué seguir la trayectoria de usuarios? Formas de seguir la trayectoria de usuarios –Cookies –Reescritura.
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
Modificadores.
Lic. Rosemary Torrico Bascopé
JAVA. Introducción Que es java?  Código reusable  Multiplataforma.
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA CINCO CONSOLE.
Tema 6: Clases Antonio J. Sierra.
Al término de la clase, el alumno reconoce las ventajas de usar JAVASCRIPT para un proyecto web.
Ingeniero Anyelo Quintero
Tecnologías para el desarrollo de aplicaciones Web
Semana 5 Subprogramas..
UNIDAD 2 CLASES Y OBJETOS. CLASE Elementos cabecera y cuerpo de la clase. Cabecera: aporta información fundamental sobre la clase en sí y constituye de.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Objetos.
Tema 2a - JSP Dr. Diego Lz. de Ipiña Gz. de Artaza
Capítulo 1 “Elementos de Programación”
Capitulo # 4 herencia PROGRAMACION III UNIVERSIDAD
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SEMANA DOS ORIENTACION A OBJETOS.
1 Objetos y Clases en Java ELO-329: Diseño y Programación Orientados a Objetos.
Generación de páginas en forma dinámica utilizando Apache Tomcat®. Expositores: Luis Ehlen Luis Báez Grupo 8 Programación de Sistemas Profesor: Agustín.
Servlets 18 de Marzo de Índice ¿Qué es un Servlet? ¿Cuándo y por qué usar Servlets? Estructura básica de un HttpServlet Servlet simple que genera.
Applets CONTENIDO ¿Que es un applet? Lo básico de un applet Ciclo de vida de un Applet Las etiquetas de HTML Pasando información a los applets.
Alcance Dinámico La Asociación Actual para un Nombre dado es el encontrado recientemente durante la ejecución, y no a sido destruido aun por el retornado.
Aplicaciones Web M.C. Jorge Eduardo Ibarra Esquer
Estructuras de Control.
Confidential // Neoris 1 Confidential // Do Not Reproduce without prior written permission from Neoris JavaServer Pages JSP.
Ihr Logo PHP Parte 4 “manejo de formularios”. Your Logo Formularios  El proceso para el manejo de FORMULARIOS html requiere generalmente dos páginas,
Servlets Servlets son módulos que extienden a servidores “java-enabled” orientados a request/response, como por ejemplo Servidores Web Un servlet puede.
Servlets Servlets son módulos que extienden a servidores orientados a request/response, como por ejemplo Servidores Web “java-enabled”. Un servlet puede.
Aplicaciones Web de Servidor
Servlets 10 de Mayo de 2006.
Clases y Objetos en Java ELO329: Diseño y Programación Orientados a Objetos.
Programación Orientada a Objetos
Introducción al Lenguaje. ¿ Qué es PHP ? O Hypertext Pre-processoes (PHP) es un lenguaje de "código abierto" interpretado, de alto nivel, embebido en.
MIME EXTENSIONES DE CORREO INTERNET MULTIPROPÓSITO. SERIE DE ESPECIFICACIONES DIRIGIDAS AL INTERCAMBIO TRANSPARENTE DE TODO TIPO DE ARCHIVOS A TRAVÉS DE.
Programación orientada a objetos
Ihr Logo PHP Parte 2 “php toma muchas sintaxis de lenguajes de alto nivel conocidos para poder trabajar”
:: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Presentación.
Integrante: Mariana Alcalá Hdz María del Carmen Andrade G. Alondra E. García Mtz Joselyn Gpe García V. Antonio de Jesús Hdz R. Cristian Jesús Ruvalcaba.
Servicios Web Conjunto de aplicaciones o de tecnologías con capacidad para interoperar en la Web. Estas aplicaciones o tecnologías intercambian datos entre.
Programación orientada a objetos La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa objetos.
 Una tecnología que permite combinar código HTML estático con código generado dinámicamente en un mismo fichero.  Ventajas: ◦ Separación de datos estáticos/dinámicos.
Estructuras de control selectivas Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Práctica 3.
Prof. Manuel B. Sánchez. Declaración de Objetos Una vez que la clase ha sido implementada se pueden declarar objetos como variables locales de métodos.
Introducción a programación web Martin Esses. Formularios HTML se utilizan para pasar datos a un servidor. Un formulario HTML puede contener elementos.
Métodos en Java. Estructura de un programa en Java ► La relación con la vida misma la podemos ver en el siguiente comentario: Imaginemos que dos clases.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Programación I Clases. Paradigma POO La programación Orientada a objetos (POO) es una forma programar, más cercana a como expresaríamos las cosas en la.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Otra forma de hacer servlets
Transcripción de la presentación:

Java Server Pages JSP Otra forma de hacer servlets

Las JSP Son páginas HTML a las que se le inserta código que produce servlets Se usan cuando la parte estática de la página que se debe generar es relativamente importante (la parte que no cambia) Al cargarse una página JSP esta se compila, se genera el servlet y se ejecuta Por esto, la primera invocación a una JSP demora más que las siguientes

Contenido de una JSP Una JSP, aparte de código HTML puede contener 3 tipos de constructos : –Elementos de scripting: son los elementos que definen el comportamiento dinámico del servlet, es decir su código –directivas: afectan la estructira general del servlet que resulta de la JSP –acciones: permiten redirigir el request a otra instancia JSP, servlet o página HTML

Elementos de scripting 1. Expresiones de la forma, son evaluadas e insertadas en el output del servlet 2. Scriptlets de la forma, que son insertadas en el método _jspService el cual es el método llamado cuando se contacta a la página jsp 3. Declaraciones de la forma, que son insertadas en el cuerpo de la clase del servlet, fuera de todo método, definiendo así variables de instancia

Variables predefinidas Para simplificar las expresiones, existen variables predefinidas que se pueden usar. Las más importantes son: – request, el HttpServletRequest –response, el HttpServletResponse –session, el HttpSession asociada al request –out, el PrintWriter usado para mandar output al cliente

Un Ejemplo (Ejemplo1.jsp) JSP Expressions JSP Expressions Current time: Your hostname: Your session ID: The testParam form parameter:

Explicaciones El servidor crea un servlet, lo compila y llama al método _jspService que contiene todas las sentencias escritas entre El texto HTML es mandado al cliente por vía out.print(....) Las expresiones se evalúan y se insertan en el texto que se manda, por lo cual la expresión Current time: equivaldría en un servlet a hacer out.println(“ Current time: “+ new java.util.Date() );

Scriptlets Si se quiere hacer algo más complicado que insertar una simple expresión en el output del servlet se pueden incluir sentencias JAVA en scriptlets que tienen la siguiente estructura: <%String queryData = request.getQueryString(); out.println("Attached GET data: " + queryData); %> Los Scriptlets tienene acceso a a las mismas variables definidas automáticamente a las que tienen acceso las expresiones En particular, esto también se pudo haber logrado con Attached GET data: pero hay cosas que no se pueden hacer con expresiones :

Algo más serio (Ejemplo2.jsp) Color Testing <% String bgColor = request.getParameter("bgColor"); boolean hasExplicitColor; if (bgColor != null) { hasExplicitColor = true; } else { hasExplicitColor = false; bgColor = "WHITE"; } %> "> Color Testing <% if (hasExplicitColor) out.println("You supplied color " +bgColor ); else out.println("Using background color WHITE.."); %>

Usando Scriptlets para hacer partes del archivo JSP condicional Para entender esto hay que tener claro que el contenido de un scriptlet se incluye exactamente como está escrito al método _jspService y las sentencias HTML se traducen como un out.println(...contenido de sentencia HTML...) en el mismo orden en que aparecen en la página jsp

Scriptlets para hacer partes del archivo JSP condicional Por lo tanto, lo siguiente Have a nice day! Have a lousy day! se traduce en if (Math.random() < 0.5) { out.println(“Have a nice day!”); } else { out.println(“Have a lousy day! “); }

El equivalente en XML El código equivalente para declarar scriptles pero siguiendo las reglas XML de es Code Esta forma de incluir sentencias jsp en la página HTML es muy recurrente, más adelante veremos otros jsp:setProperty: para definir propiedades a un bean jsp:include: para incluir otros archivos jsp:forward: para redirigir el request jsp:param: para definir parámetros a applets

Deaclaraciones No generan output, se usan para eclarar variables que más tarde serán usadas en expresiones o scriptlets Una declaración tiene la siguiente forma: Un ejemplo (Ejemplo3.jsp) que cuenta cuantas veces ha sido accesada una página desde que se cargó: Accesses to page since server reboot:

El equivalente en XML El código equivalente para declaraciones pero siguiendo las reglas XML de es Code

Directivas Afectan la estructura general del servlet generado Existen 3 tipos de directivas: page, include y taglib directiva atributo1="valor1" atributo2="valor2"... atributo N ="valor N " %>

Directiva page Permite controlar la estructura del servlet importando clases, afinando la superclase, definiendo el tipo de contenido a enviar, etc. Esto se hace definiendo uno o más de los siguientes atributos: – import, contentType, isThreadSafe, session, buffer, autoflush, extends, info, errorPage, isErrorPage y language. Veremos import, contentType, errorPage e isErrorPage

El atributo import Permite importar clases que no se incluyen automáticamente Por ejemplo, se pueden importar las usuales para java (java.util.*) Para las clases definidas por el programador, estas deben estar en un lugar “visible”. Este lugar depende del servidor En tomcat es el mismo directorio en donde están los servlets (Ejemplo4.jsp con ServletUtilities.java y LongLivedCookie.java) page import="package.class1,..., package.classN" %>

Controlando el tipo de salida Se hace a través de la directiva Se puede usar para determinar cualquier tipo de salida que no sea text/html Puede ir en cualquier parte del archivo, a pesar de que en un servlet esto debe ir antes de mandar cualquier cosa. Esto es porque primero la página se compila, traduce y luego se ejecuta en el orden adecuado de las directivas The contentType Attribute Esto debe verse como texto plano no como HTML.

Generando salida para excel Se hace a través de la misma directiva pero cambiando el tipo de salida que se generará (ejemplo5.jsp) (Anticipated) Tambien se puede lograr lo mismo escribiendo código HTML para generar una tabla pero poner en la directiva que el contentType es ms-excel (ejemplo6.jsp) Apples Oranges First Quarter Second Quarter Third Quarter Fourth Quarter

errorPage & isErrorPage Es posible invocar una determinada página cuando en otra sucede un error (se lanza una Exception ) Para ello hay que poner en la página que puede generar el ellror la directiva En la página que debe recibir el control (una_URL_relativa) debe ponerse lo siguiente (ver generaError.jsp y muestraError.jsp)

Incluyendo otros archivos Es posible hacerlo al momento en que se compila la página con la directiva Esto implica que se incluirá el archivo referenciado como parte del actual antes de compilarlo El problema es que si el archivo referenciado cambia, no cambiará en la página que se muestra (a menos que se reinicie el servidor) (ver contacto.jsp y pprincipal.jsp) Se puede hacer que cada vz que se referencie la página incluida se vuelva a recargar el contenido con la siguiente directiva (ver noticias.jsp e item1.html, item2.html, item3.html)

Incluyendo Applets Con JSP es posible poner applets en una pagina web pero que son interpretadas por un plugin y no por el browser Esto soluciona muchos problemas de versionamiento, ya que no todos los prowsers son capaces de interpretar applets compilados con una version de Java maor que 1.1.x El elemento jsp:plugin instruye al server para que construya un plugin apropiado para interpretar el objeto. Plugin tag OBJECT or EMBED not supported by browser. Ver ejemplo plugin de tomcat

Java Beans Usar Beans es una buena manera de complementar JSP cuando se requiere de estructuras de datos (clases) que hagan cosas más complejas, y separar el código de programación de estas clases de la JSP Un Bean es una clase con las siguientes características: –Tiene un constructor que no tiene parámetros –No tiene variables públicas –Para cierto subconjunto de variables privadas llamadas propiedades, si la variable es de tipo tipo1 y se llama variable1entonces existe un método programado tipo1 getVariable1() que retorna el valor actual de la propiedad y otro void setVariable1(tipo1 x) que modifica el valor de la variable con el que está dado como parámetro

Usando Beans en JSP Para poder usar Beans con JSP en Tomcat estos deben ir en el mismo directorio que los servlets Creación – Es lo mismo que haber hecho en un programa Java –Nombre_Clase bean1 = new Nombre_Clase(); Obtención de valores – Modificación valores –

Ejemplos JSP Ver Date.jsp usa las sentencias jsp:getProperty Numberguess.jsp usa los métodos set y get (y otros) directamente Carts.jsp implementa un “carrito de compras” forward.jsp muestra como se puede derivar el request a otra página