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

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

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

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

Implementando nuestro primer servlet

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

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

HTTP, CGI, Applets y Servlets

J2EE Java 2 Enterprise Edition

PROGRAMACIÓN JEE CON SERVLETS

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

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

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

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

3 PROGRAMACIÓN WEB CON SERVLETS

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

Introducción a los servlets

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

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

Ficha Técnica. Categoría. Contenido del Pack. Sinopsis. Programación. - 2 Manual Teórico - 1 Cuaderno de Ejercicios - 1 CDROM

CAPÍTULO 14. DESARROLLO

Servidores Web (II) Contenidos

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

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

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

Capítulo III. Análisis y diseño.

APLICACIONES DE INTERNET: SOAP

Oracle 10g: Creación de Aplicaciones J2EE

DISEÑO E IMPLEMENTACIÓN DE UNA INTERFAZ JAVA EE PARA UNA APLICACIÓN MULTIHITOS

Servlets. Seminario de Programacion Rafael Vázquez Pérez

DISEÑO DE UN ENTORNO DE GENERACIÓN DE INTERFACES WEB PARA PROYECTOS DE TELE-EDUCACIÓN UNIVERSITARIA

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

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.

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

[CASI v.0109] Pág. 1

Ejemplos de Servlet y JSP Web Application Development

JAVA 7 Los fundamentos del lenguaje Java

Centro de Capacitación en Tecnologías de la Información. Desarrollo de. aplicaciones web con

PROGRAMACIÓN VISUAL ANALISTA PROGRAMADOR UNIVERSITARIO FAC DE INGENIERIA - PLAN 2008 AÑO 2010

2015 CÁTEDRA DE LENGUAJE DE PROGRAMACIÓN JAVA

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

ARQUITECTURAS CLIENTE/ SERVIDOR

UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS FÍSICAS Y MATEMÁTICAS DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIÓN

Curso Java Web (JSP's/Servlets)

Java 2 Enterprise Edition

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

Laboratorio de Aplicaciones Telemáticas Ingeniería Técnica de Telecomunicación Especialidad en Telemática

Aplicaciones web con Tomcat y MySQL en Linux

USANDO SERVLETS EN UN SERVIDOR WEB RESIN

9. Servlets CAPÍTULO Clientes y Servidores

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

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

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

JAVA WEB SERVICES. Realizado por: Diana Alfaro Complementado por: Carlos Sánchez Página 1

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

CURSO DE PROGRAMACIÓN EN JAVA J2EE 7 ÍNDICE

JAVA: Servlets. Diseño de aplicaciones web.

CAPITULO IV 4. Utilización de Servlets en AVCIDE

Formato para prácticas de laboratorio

Objetivo de aprendizaje del tema

JAVA EE 5. Arquitectura, conceptos y ejemplos.

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

CAPÍTULO 2: DISEÑO GLOBAL DEL PROYECTO

Sistemas de Información

[CASI v.0109] Pág. 1

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

JAVA Y APLICACIONES AVANZADAS SOBRE INTERNET

Programación Orientada a Objetos en Java

4.1 Tutorial de Servlets y JSPs

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

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

Interacción entre Aplicaciones: objetos distribuidos e invocación remota

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

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"

Curso JAVA EE

Técnico Superior en Programación con Java SE Standard Edition

Curso: Programación con JAVA SE Estándar Edition.

Centro de Capacitación en Tecnologías de la Información. Desarrollo de. diplomado

COMPONENTES Y CONTENEDORES. Ingeniería de Software II

EL CAMINO A LA CERTIFICACION CON SERVLETS Y JSP EL CAMINO A LA CERTIFICACION CON SERVLETS Y JSP SCWCD RAFAEL ALCOCER CALDERA.

10. Servlets con acceso a bases de datos

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.

4. DESARROLLO WEB CON JAVA JSP & SERVLETS

PROGRAMADOR ESPECIALISTA EN VISUAL STUDIO 2010 Y JAVA

Taller de Sistemas de Información 2. Desarrollo Web

Introducción a las aplicaciones WEB

Tecnura ISSN: X Universidad Distrital Francisco José de Caldas Colombia

FSD Práctica Invocación Remota: JavaRMI. Estudio Previo. Información

Diplomado Java. Descripción. Objetivo. A quien está dirigido. Requisitos. Beneficios

Sumario... 5 Prólogo Unidad didáctica 1. Introducción a la computación distribuida Objetivos de la Unidad... 12

Programación dinámica con Java: Servlets Y JSP PROGRAMACIÓN DINÁMICA CON JAVA: SERVLETS Y JSP. moncho.mendez@uvigo.es

Curso Desarrollo Java Web con JSP, Servlets y el MVC

Desarrollador de Aplicaciones Web con Java

Requisitos. Universidad ORT Arquitectura de Software

JAVA ENTERPRISE EDITION (J2EE) ARQUITECTURA TECNOLOGÍAS (1/2) (L1)

INTRODUCCIÓN...9 CAPÍTULO 1. ELEMENTOS DE UN PROGRAMA INFORMÁTICO...11

Llamada a métodos remotos (RMI). Curso 04/05. Tema 9. Departament d Informàtica. Universitat de València. 1. Introducción 2

ARQUITECTURAS DE SOFTWARE

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

Sistemas de Información 12/13 Introducción

LENGUAJES DE PROGRAMACIÓN WEB (PHP1, HTML52)

Transcripción:

Servlets Índice 1. Introducción 2 1.1. Características fundamentales......................... 2 1.2. Ventajas fundamentales............................ 2 2. Programación de servlets 3 2.1. Ciclo de vida de un servlet........................... 3 2.1.1. Ciclo de vida.............................. 3 2.1.2. Consecuencias del ciclo de vida.................... 4 2.2. Servlet API................................... 4 2.3. Interfaz Servlet................................. 4 2.4. Servlet HTTP.................................. 5 2.5. Clases e interfaces útiles............................ 6 3. Acceso a información 6 3.1. Parámetros de inicio.............................. 6 3.2. Información acerca del servidor........................ 6 3.3. Información acerca del cliente......................... 7 3.4. Información de la petición........................... 7 4. Respuesta 7 4.1. Tipos de datos de respuesta.......................... 7 4.1.1. Código de estado............................ 8 4.1.2. Cabeceras................................ 8 4.1.3. Cuerpo.................................. 8 5. Gestión de sesiones 8 5.1. API de gestión de sesiones........................... 8 1

1. Introducción 1.1. Características fundamentales Extensiones de funcionalidad en el servidor. Se ejecutan en una máquina virtual dentro del proceso del servidor. Motor de servlets: software capaz de ejecutar servlets. Cada petición se ejecuta en un hilo, e invoca un método del servlet (service()). Además de servidores de HTTP, pueden extender cualquier tipo de servidor (por ejemplo, FTP). Servidor web de servlets Proceso servidor Solicitud Servlet 1 Solicitud Servlet 2 Solicitud Servlet 1 hilo hilo hilo JVM Servlet 1 Servlet 2 1.2. Ventajas fundamentales Portabilidad: Entre plataformas. Entre servidores. Potencia: APIs de Java: acceso a red, hilos, manipulación de imágenes, acceso a bases de datos, compresión de datos, internacionalización, RMI, CORBA, serialización de objetos, acceso a directorio, etc. Utilización de código externo, incluído EJBs. 2

Eficiencia: Instancia permanententemente cargada en memoria por cada servlet. Ejecución de peticiones mediante invocación de un método. Cada petición se ejecuta en un hilo. Mantiene automáticamente su estado y recursos externos: conexiones a bases de datos, conexiones de red, etc. Seguridad: Lenguaje java: máquina virtual, chequeo de tipos, gestión de memoria, excepciones, etc. Gestor de seguridad de Java. Elegancia: Código java: modular, orientado a objetos, limpio y simple. API servlets: potente y fácil de utilizar. Integración: Integración fuerte entre servlets y servidor: permite colaboración entre ambos. Extensibilidad y flexibilidad: API Servlet extensible. Filtros (cadenas de servlets). Integrable con JSP (Java Server Pages). 2. Programación de servlets 2.1. Ciclo de vida de un servlet 2.1.1. Ciclo de vida 1. Instanciación e inicialización del servlet. 2. Gestión de cero o más peticiones (normalmente, cada petición en un hilo). 3. Destrucción del servlet. 3

2.1.2. Consecuencias del ciclo de vida Una única máquina virtual: Compartición de datos entre servlets. Persistencia de instancias: Consumo reducido de memoria. Eliminación del tiempo de instanciación e inicialización. Persistencia de estado, datos y recursos: Atributos del servlet persistentes. Conexiones permanentes a bases de datos. Etc. Persistencia de hilos. Necesidad de sincronización: Problemas si se accede a los mismos datos concurrentemente desde distintos hilos (atributos de clase o instancia, base de datos, etc.) Necesidad de utilizar sincronización (por ejemplo, sinchronized). SingleThreadModel: evita la concurrencia (pool de instancias). 2.2. Servlet API javax.servlet javax.servlet.http 2.3. Interfaz Servlet Un servlet implementa la interfaz javax.servlet.servlet, o hereda de implementaciones de la API: javax.servlet.genericservlet javax.servlet.httpservlet Métodos importantes de la interfaz: void service(servletrequest req, ServletResponse res) void init(servletconfig config) void destroy() 4

Subclase de GenericServlet solicitud respuesta Service() Leyenda: Implementado por la subclase 2.4. Servlet HTTP Hereda de javax.servlet.httpservlet: Implementa service(), que invoca al método correspondiente al método HTTP de la petición: void doget(httpservletrequest req, HttpServletResponse resp) void dopost(httpservletrequest req, HttpServletResponse resp) void dohead(httpservletrequest req, HttpServletResponse resp) void do...(httpservletrequest req, HttpServletResponse resp) getlastmodified(httpservletrequest req) No suele redefinir service() Redefine los métodos do... () convenientes: Ejemplo: para procesar peticiones GET redefine doget 5

Subclase de GenericServlet solicitud GET doget() respuesta solicitud POST Service() respuesta dopost() Leyenda: Implementado por la subclase 2.5. Clases e interfaces útiles Interfaz ServletConfig Interfaz ServletContext Interfaz HttpServletRequest Interfaz HttpServletResponse Interfaz HttpSession Clase Cookie 3. Acceso a información 3.1. Parámetros de inicio Interfaz ServletConfig Método getinitparameter() 3.2. Información acerca del servidor Método ServletRequest.getServerName() Método ServletRequest.getServerPort() Método ServletContext.getServerInfo() Método ServletContext.getAttribute(String name) 6

3.3. Información acerca del cliente Método ServletRequest.getRemoteAddr() Método ServletRequest.getRemoteHost() Método HttpServletRequest.getRemoteUser() Método HttpServletRequest.getHeader(... ) 3.4. Información de la petición Información general: Método HttpServletRequest.getMethod() Método HttpServletRequest.getQueryString() Método HttpServletRequest.getHeader(... ) Parámetros de la petición: Método ServletRequest.getParameter(String name) Método ServletRequest.getParameterValues(String name) Método ServletRequest.getParameterNames() Actualmente no funciona con multipart/form-data! Cuerpo de la petición: Método ServletRequest.getContentType() Método ServletRequest.getContentLength() Método ServletRequest.getInputStream() Método ServletRequest.getReader() 4. Respuesta 4.1. Tipos de datos de respuesta Código de estado. Cabeceras. Cuerpo. 7

4.1.1. Código de estado HttpServletResponse.sendError(int sc) HttpServletResponse.setStatus(int sc) HttpServletResponse.sendRedirect(String location) 4.1.2. Cabeceras HttpServletResponse.setHeader(String name, String value) HttpServletResponse.addCookie(Cookie cookie) ServletResponse.setContentType(String type) ServletResponse.setContentLength(int length) 4.1.3. Cuerpo ServletResponse.getOutputStream() ServletResponse.getWriter() 5. Gestión de sesiones 5.1. API de gestión de sesiones Interfaz HttpSession Método HttpServletRequest.getSession(boolean create) Método HttpSession.putValue(String name, Object value) Método HttpSession.getValue(String name) Método HttpSession.getValueNames() Método HttpSession.isNew() Método HttpSession.invalidate() Método HttpSession.getCreationTime() Método HttpSession.getLastAccesedTime() 8