Download Servlets parte 2 - Pagina del servidor yaqui

Document related concepts
no text concepts found
Transcript
Programación Orientada
a Objetos II
Layout by orngjce223, CC-BY
Java Servlets Parte II
Contexto de un servlet
Un servlet vive y muere dentro del
contexto del proceso del servidor.
Un servlet puede obtener información de
su entorno en distintos momentos.
1.Durante la inicialización del servlet
Layout by orngjce223, CC-BY
2.Información del servidor en cualquier
momento
3.Información contextual en cada petición.
Cecilia M. Curlango Rosas
2/29
2. Información del contexto del
servidor
Se obtiene con el método
getServerContext() que regresa un
objeto ServletContext.
Layout by orngjce223, CC-BY
Con este objeto podemos obtener
información del servidor, por ejemplo su
nombre (método getServerInfo()).
Cecilia M. Curlango Rosas
3/29
3. Contexto durante una
petición
Layout by orngjce223, CC-BY
La información del contexto de una
petición se obtiene del ServletRequest
que recibe el método service().
Cecilia M. Curlango Rosas
4/29
Layout by orngjce223, CC-BY
Métodos de ServletRequest
Método
Descripción
getAttribute(atr)
Regresa el valor del atributo atr
getContentLength()
Regresa la longitud de la petición
getContentType()
Regresa el tipo MIME del cuerpo del mensaje
getInputStream()
Regresa un flujo de entrada
getParameterNames()
Regresa un arreglo de cadenas con los nombres de
los parámetros.
getParameterValues()
Regresa un arreglo de cadenas con los valores de
un parámetro específico.
getProtocol()
Regresa el protocolo y la versión de la petición en
una cadena con la forma: <protocol>/<major
version>.<minor version>
Cecilia M. Curlango Rosas
5/29
Métodos de ServletRequest
Layout by orngjce223, CC-BY
Método
Descripción
getReader()
Regresa un BufferedReader para obtener el cuerpo
del mensaje
getRealPath()
Regresa la ruta real de una ruta virtual
getRemoteAddr()
Regresa la dirección IP del cliente que envió la
petición
getRemoteHost()
Regresa el nombre del cliente que envió la petición
getScheme()
Regresa el esquema utilizado en el URL (http,
https, ftp, etc.)
getServerName()
Regresa el nombre del servidor que recibió la
petición.
getServerPort()
Regresa el puerto que utilizado para recibir la
petición.
Cecilia M. Curlango Rosas
6/29
Ejercicio 1
Layout by orngjce223, CC-BY
Crear un servlet que al ejecutarse
muestre en una tabla con la información
del contexto de la petición.
Cecilia M. Curlango Rosas
7/29
Apoyo para http
Http significa HyperText Transfer Protocol
y es el protocolo que utilizan los
servidores Web y los navegadores para
comunicarse.
Layout by orngjce223, CC-BY
Es muy común que los servlets utilicen el
protocolo http.
Cecilia M. Curlango Rosas
8/29
Métodos de Http (mensajes)
GET
PUT
HEAD
DELETE
POST
TRACE
CONNECT
Layout by orngjce223, CC-BY
OPTIONS
Cecilia M. Curlango Rosas
9/29
Método GET
GET hace una petición de información al
servidor.
Layout by orngjce223, CC-BY
Esta información puede ser un archivo, la
salida de un dispositivo del servidor, o la
salida de un programa (como un servlet o
un CGI).
Algunos servidores limitan el tamaño de
las peticiones GET que pueden recibir
como parte del URL.
Cecilia M. Curlango Rosas
10/29
Método GET
Layout by orngjce223, CC-BY
GET / HTTP/1.1
Connection: Keep-Alive
User-Agent: Mozilla/4.0 (
compatible;
MSIE 4.01;
Windows NT)
Host: www.magelang.com
Accept: image/gif, image/x-xbitmap,
image/jpeg, image/pjpeg
HTTP/1.1 200 Document follows
Date: Tue, 14 Apr 1997 09:25:19 PST
Server: JWS/1.1
Last-modified: Mon, 17 Jun 1996 21:53:08 GMT
Content-type: text/html
Content-length: 4435
<4435 bytes worth of data -- the document body>
Cecilia M. Curlango Rosas
11/29
Método HEAD
Este método es similar al método GET,
solo que el servidor únicamente regresa
el encabezado.
Layout by orngjce223, CC-BY
Se utiliza para verificar la fecha de la
última modificación del documento, el
tamaño del documento, el tipo de
servidor, o el tipo de documento.
Cecilia M. Curlango Rosas
12/29
Método POST
Este método se utiliza para enviar
peticiones al servidor.
Layout by orngjce223, CC-BY
Los parámetros se envían en el flujo.
POST /servlet/MyServlet HTTP/1.1
User-Agent: Mozilla/4.0 (
compatible;
MSIE 4.01;
Windows NT)
Host: www.magelang.com
Accept: image/gif, image/x-xbitmap,
image/jpeg, image/pjpeg, */
Content-type: application/x-www-form-urlencoded
Content-length: 39
name=Scott&company=MageLang%20Institute
Cecilia M. Curlango Rosas
13/29
HttpServlet
Esta clase contiene métodos para facilitar
la creación de servlets que trabajan con
el protocolo HTTP.
Layout by orngjce223, CC-BY
Su implementación del método
service() interpreta cada método del
HTTP.
Determina si se trata de un método GET,
POST de HTTP, y llama a su método
correspondiente.
Cecilia M. Curlango Rosas
14/29
Layout by orngjce223, CC-BY
HttpServlet
Cecilia M. Curlango Rosas
15/29
Layout by orngjce223, CC-BY
Ejemplo un servlet mantiene su estado.
Cecilia M. Curlango Rosas
16/29
Layout by orngjce223, CC-BY
Ejemplo estado del servlet
Cecilia M. Curlango Rosas
17/29
Layout by orngjce223, CC-BY
Cecilia M. Curlango Rosas
18/29
Layout by orngjce223, CC-BY
Ejemplo de interacción con un servlet.
Cecilia M. Curlango Rosas
19/29
Layout by orngjce223, CC-BY
Página Web
Cecilia M. Curlango Rosas
20/29
Layout by orngjce223, CC-BY
fakeLogin.html
Cecilia M. Curlango Rosas
21/29
Layout by orngjce223, CC-BY
Ubicación de archivos
Cecilia M. Curlango Rosas
22/29
Layout by orngjce223, CC-BY
fakeLoginServlet.java
Cecilia M. Curlango Rosas
23/29
Layout by orngjce223, CC-BY
Cecilia M. Curlango Rosas
24/29
Layout by orngjce223, CC-BY
Cecilia M. Curlango Rosas
25/29
Layout by orngjce223, CC-BY
Cecilia M. Curlango Rosas
26/29
Layout by orngjce223, CC-BY
Errores
Cecilia M. Curlango Rosas
27/29
Ejercicio 2
Layout by orngjce223, CC-BY
Crear una aplicación (página web y
servlet) que a partir de la fecha de
nacimiento de un usuario, indique
cuantos días ha vivido.
Cecilia M. Curlango Rosas
28/29
Referencias
Esta presentación está basada en el tutorial de servlets de Oracle http://java.sun.com/developer/onlineTraining/Servlets/Fundamentals/servlets.html
ServletContext Java API http://download.oracle.com/javaee/1.4/api/javax/servlet/ServletContext.html
Layout by orngjce223, CC-BY
Inside Servlets, Server-Side Programming for the Java Platform, Dustin R. Callaway,
Editorial Pearson, ISBN 0-201-70906-6, 2001. Disponible en el Laboratorio de
Computación
Cecilia M. Curlango Rosas
29/29