Aplicaciones Web M.C. Jorge Eduardo Ibarra Esquer [email protected].

22
Aplicaciones Web M.C. Jorge Eduardo Ibarra Esquer [email protected]

Transcript of Aplicaciones Web M.C. Jorge Eduardo Ibarra Esquer [email protected].

Page 1: Aplicaciones Web M.C. Jorge Eduardo Ibarra Esquer jorgeeie@uabc.mx.

Aplicaciones WebM.C. Jorge Eduardo Ibarra Esquer

[email protected]

Page 2: Aplicaciones Web M.C. Jorge Eduardo Ibarra Esquer jorgeeie@uabc.mx.

El Protocolo de Transferencia de Hipertexto HTTP HTTP es un protocolo de nivel de aplicación para

sistemas de información distribuidos, colaborativos y de hipermedios.

Es un protocolo genérico, sin estado, que puede utilizarse para muchas otras tareas distintas de la de transferencia de hipertexto, por medio de la extensión de sus métodos, códigos de error y encabezados.

La versión 1.1 de HTTP se define en un documento denominado RFC 2616, disponible en http://www.w3c.org/Protocols/

Page 3: Aplicaciones Web M.C. Jorge Eduardo Ibarra Esquer jorgeeie@uabc.mx.

El Protocolo de Transferencia de Hipertexto HTTP HTTP permite el intercambio de datos en el

Web, entre navegadores y servidores Cuando se utiliza HTTP, el servidor siempre

responderá a una solicitud enviada por un cliente (navegador)

Page 4: Aplicaciones Web M.C. Jorge Eduardo Ibarra Esquer jorgeeie@uabc.mx.

Los métodos de HTTP

HTTP/1.1 proporciona los siguientes 7 métodos GET POST PUT DELETE TRACE OPTIONS HEAD

Page 5: Aplicaciones Web M.C. Jorge Eduardo Ibarra Esquer jorgeeie@uabc.mx.

Solicitudes HTTP

GET /appweb/index.jsp HTTP/1.1 Accept: text/plain; text/html Accept-Language: en-gb Connection: Keep-Alive Host: localhost Referer: http://localhost/appweb/prueba.jsp User-Agent: Mozilla/4.0 (compatible; MSIE 4.01; Windows 98) Content-Length: 44 Content-Type: application/x-www-form-urlencodedAccept-Encoding: gzip, deflate

Nombre=Jorge+Ibarra&email=jorgeeie%40uabc.mx

Page 6: Aplicaciones Web M.C. Jorge Eduardo Ibarra Esquer jorgeeie@uabc.mx.

Respuestas HTTPHTTP/1.1 200 OK Server: Microsoft-IIS/4.0 Date: Mon, 3 May 2006 13:13:33 GMT Content-Type: text/html Last-Modified: Mon, 11 Jan 1998 13:23:42 GMT Content-Length: 112

<HTML> <HEAD> <TITLE>HTTP Response Example</TITLE></HEAD>

<BODY> Welcome to Brainy Software </BODY></HTML>

Page 7: Aplicaciones Web M.C. Jorge Eduardo Ibarra Esquer jorgeeie@uabc.mx.

Arquitectura de sistemas de software

Una aplicación de software bien diseñada, se particiona en partes lógicas denominadas capas

Cada una de estas capas tiene una responsabilidad diferente en la arquitectura global de la aplicación

Dichas capas son abstracciones puras, y no necesariamente corresponden a una distribución física

Page 8: Aplicaciones Web M.C. Jorge Eduardo Ibarra Esquer jorgeeie@uabc.mx.

Arquitectura de sistemas de software

Algunas capas típicas son: Presentación: Se encarga de la interfaz de usuario

y de la interacción con el usuario Lógica de negocio: Contiene los componentes

encargados de la lógica de la aplicación Datos: Normalmente consiste de una o más bases

de datos donde se almacena la información

Page 9: Aplicaciones Web M.C. Jorge Eduardo Ibarra Esquer jorgeeie@uabc.mx.

Distintas arquitecturas

Dos capas Tres capas

Aplicación Web

Aplicación J2EE

Page 10: Aplicaciones Web M.C. Jorge Eduardo Ibarra Esquer jorgeeie@uabc.mx.

Contenedores Web

Servidores Web: Son programas que utilizan el protocolo HTTP, en forma de una aplicación cliente-servidor, para proporcionar las páginas, scripts, programas y archivos multimedia que forman una página Web

Dos de los servidores Web más populares son Apache y Microsoft Internet Information Services

Page 11: Aplicaciones Web M.C. Jorge Eduardo Ibarra Esquer jorgeeie@uabc.mx.

Contenedores Web

Tomcat – Es un contenedor de Servlets. Contiene las implementaciones de referencia para las tecnologías de Servlets y JSP

JBoss – Contiene la implementación de los Enterprise Java Beans (EJB). Es un contenedor de aplicaciones J2EE

Page 12: Aplicaciones Web M.C. Jorge Eduardo Ibarra Esquer jorgeeie@uabc.mx.

Temas Servlets JSP JBoss

Page 13: Aplicaciones Web M.C. Jorge Eduardo Ibarra Esquer jorgeeie@uabc.mx.

Servlets

Los Servlets son aplicaciones escritas en Java que funcionan como una capa intermedia entre una solicitud HTTP y una base de datos o algún otro tipo de aplicación que se ejecuta en un servidor

Los Servlets se ejecutan dentro de un contenedor de Servlets

Page 14: Aplicaciones Web M.C. Jorge Eduardo Ibarra Esquer jorgeeie@uabc.mx.

Funcionamiento de los Servlets

Leer los datos enviados por el usuarioObtener cualquier otra información que esté incluída en la solicitud HTTPGenerar los resultadosCodificar los resultadosEstablecer los parámetros de la respuestaEnviar el documento de regreso al cliente

Page 15: Aplicaciones Web M.C. Jorge Eduardo Ibarra Esquer jorgeeie@uabc.mx.

¿Cuándo utilizar Servlets?

En ocasiones, una respuesta estática de parte de un servidor, no será suficiente para cumplir con el propósito de la aplicación

En estos casos, se debe construir una respuesta diferente para cada solicitud que se realice

Page 16: Aplicaciones Web M.C. Jorge Eduardo Ibarra Esquer jorgeeie@uabc.mx.

¿Cuándo utilizar Servlets?

Algunos casos en los que puede ser necesario construir páginas “al vuelo”, son los siguientes: La página se genera de acuerdo a información

proporcionada por el usuario La información con la que se genera la página está

cambiando frecuentemente La página utiliza información de bases de datos u

otros recursos disponibles del lado del servidor

Page 17: Aplicaciones Web M.C. Jorge Eduardo Ibarra Esquer jorgeeie@uabc.mx.

Construyendo un Servlet

Para crear servlets, se utilizan las clases contenidas en los paquetes javax.servlet y javax.servlet.http

Estos paquetes forman parte de la plataforma J2EE - Java 2 Enterprise Edition

La documentación del API de J2EE 1.4, se encuentra disponible en http://java.sun.com/j2ee/1.4/docs/api/index.html

Page 18: Aplicaciones Web M.C. Jorge Eduardo Ibarra Esquer jorgeeie@uabc.mx.

La clase javax.servlet.GenericServlet Permite construir un Servlet genérico,

independiente de protocolo public void init() throws ServletException

public abstract void service(ServletRequest req, ServletResponse res) throws ServletException, IOException

public void destroy()

Page 19: Aplicaciones Web M.C. Jorge Eduardo Ibarra Esquer jorgeeie@uabc.mx.

La clase javax.servlet.http.HttpServlet

public void init() throws ServletException

public abstract void service(ServletRequest req, ServletResponse res) throws ServletException, IOException

Page 20: Aplicaciones Web M.C. Jorge Eduardo Ibarra Esquer jorgeeie@uabc.mx.

HttpServlet

public void doGet(HttpServletRequest request, HttpServletResponse response)

public void doPost(HttpServletRequest request, HttpServletResponse response)

Page 21: Aplicaciones Web M.C. Jorge Eduardo Ibarra Esquer jorgeeie@uabc.mx.

HttpServletRequest

A través de las solicitudes podemos obtener los parámetros enviados en el URL del servlet, utilizando el método: String getParameter(String nombre)

Page 22: Aplicaciones Web M.C. Jorge Eduardo Ibarra Esquer jorgeeie@uabc.mx.

HttpServletResponse

Algunos métodos importantes de la respuesta, son: PrintWriter getWriter() void setContentType(String tipo)