SERVLETS. Aplicaciones Distribuidas

Documentos relacionados
Aplicaciones Web con Servlets y JSP (I)

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

Aplicaciones Web (Curso 2015/2016)

Invocar a Recursos Web

Computación Web (Curso 2015/2016)

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

Introducción n a Java EE: Servlets

Computación Web (Curso 2013/2014)

Tema 2: Diseño de la capa lógica

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

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

Servlets. 1. Introducción Características fundamentales Ventajas fundamentales... 2

INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE COMPUTO

Capitulo 7: Tecnologías de la Capa Media, Lógica del Negocio.

Servlets (I) Mario Muñoz Organero & Norberto Fernández Departamento de Ingeniería Telemática

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

Tema 2: Diseño de la capa lógica

Curso de Java Java para Web

Implementando nuestro primer servlet

Tema 7: Servidores Web (II) Contenidos

Clase Java que implementa un modelo de programación peticiónrespuesta. Puede usarse para procesar cualquier tipo de petición

Servidores Web (II) Contenidos

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

JSP/SERVLETS ISIS 3710

Programación con JDBC (Java DataBase Connectivity ), Servlets y JSP (Java Server Pages)

J2EE Java 2 Enterprise Edition

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

Servlets. Tema 3. Servlets

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

Java Session. Usando Java Session en aplicaciones web

Unidad IV: Servlets. Comprender la estructura básica de los Servlets Crear servlets sencillos Presentar el ciclo de vida de un Servlet.

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

Desarrollo de aplicaciones para Internet

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.

Sistemas de Información 12/13 Ejercicios Tecnologías Web

Tema 4: Servidores Web

Servidores Web. Tema 4: Acceso a Páginas Web en ficheros. Output. GET /index.html. Server host. HTTP server: Apache, IIS SO Unix.

HTTP, CGI, Applets y Servlets

Servidores web. Mecánica de funcionamiento

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

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

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

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.

JAVA: Servlets. Diseño de aplicaciones web.

PROGRAMACIÓN JEE CON SERVLETS

Ejemplos de Servlet y JSP Web Application Development

4.1 Tutorial de Servlets y JSPs

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

Introducción a las aplicaciones WEB

Computación Web (Curso 2013/2014)

Java 2 Enterprise Edition

javax.servlet.genericservlet javax.servlet.http.httpservlet MiServlet

En principio cada aplicación web se encuentra aislada y es independiente de las otras.

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

USANDO SERVLETS EN UN SERVIDOR WEB RESIN

Framework 1. Web en Java. (solo aplicaciones en mantenimiento)

Hello World Ajax! con Eclipse

Curso Java Web (JSP's/Servlets)

Aplicaciones web con Tomcat y MySQL en Linux

3 PROGRAMACIÓN WEB CON SERVLETS

Introducción a los servlets

Introducción a las aplicaciones WEB

Aplicacions web bàsiques Introducció a servlets i JSP

Práctica Servlets & JDBC. Qué son? Qué necesitamos?

Tema 3: Tecnologías Java distribuidas

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

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

Java y CDI sobre JEE 6 (JSR 330)

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

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

Vamos a mostrar el código fuente de la clase Persona y el del Servlet que imprime una lista de personas :

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

Práctica 2: Extensión de un servidor con servlets

Sistemas Informáticos del Valle

Sistemas de Información

Arquitectura Web Multicapa. Tema 6.a: Arquitectura sistema en capas. Ventajas de los sistemas. distribuidos. Arquitectura software en capas

INSTALACIÓN JAVA DE SUN ORACLE

Elementos de Scripting Scriptlets Expresiones Declaraciones Inhabilitar los Elementos de Scripting Acciones...

Requisitos. Universidad ORT Arquitectura de Software

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

11. Sesión en Servlets

Fecha: 13 de Agosto de 2001 Relacionada con J2EE1.3 y Tomcat 4 Desde entonces ya ha aparecido la versión 2.4, emparejada con J2EE 1.

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

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

Aplicaciones Web con Servlets y JSP (II)

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

Aplicaciones Web. Aplicaciones Distribuidas

Servlet 3.0 (II) Servlets Asincronos

qwertyuiopasdfghjklzxcvbnmqwertyui opasdfghjklzxcvbnmqwertyuiopasdfgh jklzxcvbnmqwertyuiopasdfghjklzxcvb nmqwertyuiopasdfghjklzxcvbnmqwer

Aplicaciones Web con Servlets y JSP (II)

4. DESARROLLO WEB CON JAVA JSP & SERVLETS

2015 CÁTEDRA DE LENGUAJE DE PROGRAMACIÓN JAVA

Aplicaciones Web (Curso 2014/2015)

Tema 6: Arquitectura Web Multicapa

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

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"

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

Transcripción:

SERVLETS Aplicaciones Distribuidas

Contenido Definición. Framework Servlet. Ciclo de vida. Ejemplo. Procesamiento Petición. Generación de la Respuesta. Sesiones. Cookies. Colaboración entre servlets. Otros aspectos de interés. 2

Definición Un Servlet es un componente Java que puede ser instalado en un servidor para ampliar su funcionalidad : Peticiones: HTTP Respuesta: HTML, XML o WML. Se ejecutan dentro de un contenedor de servlets. Tecnología Java que sustituye a la programación CGI. Situada en el nivel módulos ejecutables. Hasta JSP, único modo de generar páginas web dinámicas. Ahora: Controlador en la arquitectura Modelo/Vista/Control Preprocesamiento de peticiones.... 3

Framwork Servlets <<Interface>> javax.servlet.servlet init(config : ServletConfig) destroy() service(peticion : ServletRequest, respuesta : ServletResponse) Especificación Servlet define un framework de programación Petición/Respuesta. javax.servlet.genericservlet init() destroy() getinitparameter()...() service() Especialización protocolo HTTP. Paquetes: javax.servlet. javax.servlet.http. javax.servlet.http.httpservlet service(peticion : ServletRequest, respuesta : ServletResponse) service(peticion : HttpServletRequest, respuesta : HttpServletResponse) doget(peticion : HttpServletResquest, respuesta : HttpServletResponse) dopost(peticion : HttpServletRequest, respuesta : HttpServletResponse)...() 4

Ciclo de Vida Se instancia el objeto Primera petición init Ejecución en un Thread Siguientes peticiones service service doget dopost El contenedor libera recursos destroy 5

Modelo de Ejecución Un solo objeto instanciado por Servlet. Cada petición se ejecuta en un thread diferente. Programación thread-safe: Uso de variables locales y parámetros. Acceso a atributos en modo consulta. Bloques de sincronización para las actualizaciones. Interface marca SingleThreadModel private int codigo;... public void dopost (...) {... synchronize (this) { codigo ++;... } 6

Ejemplo Hola Mundo import java.io.*;! import javax.servlet.*;! import javax.servlet.http.*;!! public class HolaMundoServlet extends HttpServlet {! public void doget (HttpSevletRequest request,!!!! HttpServletResponse response)! throws ServletException, IOException {! PrintWriter out = reponse.getwriter();! out.println("hola Mundo");! }! public void dopost (HttpSevletRequest request, HttpServletResponse response)!!!throws ServletException, IOException {! doget(request, response);! }! } 7

Procesamiento de una Petición Información petición: HttpServletRequest. Recoger parámetros de la petición: Organizados en un diccionario multivaluado de cadenas. Ejemplos: String nombre = request.getparameter( nombre ). Enumeration preferencias = request.getparametervalues( preferencias ); Parámetros petición: getparameternames(): Enumeration Recoger cabeceras HTTP: String referer = request.getheader( referer ); A tener en cuenta: Los parámetros siempre son String. Cuando un parámetro no ha sido definido, devuelve null. Ejemplo: checkbox no marcado. 8

Generación de la Respuesta Información Respuesta: HttpServletResponse. La salida siempre se genera siguiendo la estructura de una respuesta HTTP: Código de estado: setstatus(valor) Por defecto, OK (SC_OK). Cabeceras: Tipo MIME: setcontenttype(), text/html, image/gif Otras: refresco, caché. response.setheader( refresh, 10; index.html ); Respuesta: Se genera a un stream de salida. Ejemplo: Respuestas directas: senderror(int sc, String msg) sendredirect(string url) PrintWriter out = response.getwriter() out.println( Hola Mundo ); 9

Sesiones El contenedor de servlets implementa un mecanismo de seguimiento de sesiones. Información sesión: HttpSession. El contenedor ofrece al servlet la sesión asociada a la petición: HttpSession sesion = request.getsession(); Manejar información de la sesión: Tabla (String-Object) Cliente c = (Cliente) sesion.getattribute( cliente ); sesion.setattribute( fallos, new Integer(0)); Tiempo de vida limitado. Configurable en web.xml de la aplicación web. <session-config> <session-timeout>20</session-timeout> </session-config> 10

Sesiones Reescritura URL Problema: El seguimiento de la sesión basado en cookies puede ser deshabilitado. Solución: reescritura de URLs Añadir a todas las URLs a módulos ejecutables de la aplicación (servlets, JSP) un parámetro que identifique a la sesión. Consecuencia: Generación dinámica de URLs. Reescritura: String nuevaurl = response.encondeurl(url); El método realiza la reescritura si es necesario. 11

Cookies Problema: El mecanismo de seguimiento está limitado a la sesión del navegador. Solución: Enviar una cookie y mantener la información de sesión persistente. Útil para personalizar sitios web. Las cookies se añaden a la respuesta. Cookie c = new Cookie( id, identificador); response.addcookie(c); Las cookies se recuperan de la petición: Cookie[] cookies = request.getcookies(); if (cookies[0].getname().equals( id )) { out.println(cookies[0].getvalue(); 12

Colaboración entre Servlets Tipos: Un servlet invoca a otro servlet. Un servlet guarda información para otros servlets. Invocación de un servlet: RequestDispatcher ResquestDispatcher rd = request.getresquestdispatcher ( servlet/hola ); Tipos de invocación: forward: reenvío de la llamada rd.forward(request, response); include: para incluir el contenido de una página (SSI) rd.include(request, response); A tener en cuenta: Los dos servlets comparten la petición (ServletRequest). La invocación no está restringida a servlets: HTML, JSP,... 13

Colaboración entre Servlets RequestDispatcher (continuación): Intercambio de información a través de la petición: request.setattribute( usuarios, lista); List usuarios = (List) request.getattribute( usuarios ); Comunicación a través del Contexto. Los servlets comparten un objeto ServletContext. Compartir información: contexto.setattribute( factoriadao, factoriadao); FactoriaDAO f = (FactoriaDAO) contexto.getattribute ( factoriadao ); Contexto accesible a través de ServletConfig: ServletContext contexto = getservletconfig ().getservletcontext(); 14

Otros aspectos de interés Tipos de URL: Absoluta: http://localhost/isi/servlet/hola Relativa:../index.jsp, servlet/hola Relativa al contexto: Añade el nombre de la aplicación. /ad/servlet/hola En la práctica: Utilizar URL relativas. Parámetros inicio de un servlet: Declarados en web.xml. Accesibles a través de ServletConfig String urlbd = getservletconfig().getinitialparameter ( urlbd ); 15