Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Aplicaciones Distribuidas
Contenido
Definicin.
Framework Servlet.
Ciclo de vida.
Ejemplo.
Procesamiento Peticin.
Generacin de la Respuesta.
Sesiones.
Cookies.
Definicin
Un Servlet es un componente Java que puede ser instalado en un servidor para ampliar su
funcionalidad:
Peticiones: HTTP
Respuesta: HTML, XML o WML.
Ahora:
Framwork Servlets
<<Interface>>
javax.servlet.Servlet
init(config : ServletConfig)
destroy()
service(peticion : ServletRequest, respuesta : ServletResponse)
javax.servlet.GenericServlet
init()
destroy()
getInitParameter()
...()
service()
Paquetes:
javax.servlet.
javax.servlet.http.
Ciclo de Vida
Se instancia el objeto
Primera peticin
Ejecucin en un Thread
init
doGet
Siguientes peticiones
service
service
doPost
El contenedor
destroy
libera recursos
Modelo de Ejecucin
Programacin thread-safe:
Uso de variables locales y parmetros.
Acceso a atributos en modo consulta.
private int codigo;
Bloques de sincronizacin
...
para las actualizaciones.
Interface marca
SingleThreadModel
A tener en cuenta:
Generacin de la Respuesta
setStatus(valor)
Por defecto, OK (SC_OK).
Cabeceras:
Respuesta:
Respuestas directas:
out.println(Hola Mundo);
Sesiones
El contenedor de servlets implementa un mecanismo de
seguimiento de sesiones.
Informacin sesin: HttpSession.
El contenedor ofrece al servlet la sesin asociada a la peticin:
HttpSession sesion = request.getSession();
Tabla (String-Object)
Cliente c = (Cliente) sesion.getAttribute(cliente);
sesion.setAttribute(fallos, new Integer(0));
Consecuencia:
Generacin dinmica de URLs.
Reescritura:
String nuevaUrl = response.encondeURL(url);
El mtodo realiza la reescritura si es necesario.
11
Cookies
Problema:
El mecanismo de seguimiento est limitado a la sesin del
navegador.
Solucin:
Enviar una cookie y mantener la informacin de sesin
persistente.
til para personalizar sitios web.
A tener en cuenta:
Los dos servlets comparten la peticin (ServletRequest).
La invocacin no est restringida a servlets: HTML, JSP, ...
13
Absoluta: http://localhost/isi/servlet/Hola
Relativa: ../index.jsp, servlet/Hola
Relativa al contexto:
Aade el nombre de la aplicacin.
/ad/servlet/Hola
En la prctica:
Declarados en web.xml.
Accesibles a travs de ServletConfig