Professional Documents
Culture Documents
Resumen
Introduccin Interfaz Ciclo de vida
HelloWorld
HttpRequest
Parmetros de usuario
Servlets: Introduccin
Mdulos que amplan los servidores orientados a peticin/respuesta. La respuesta en el lenguaje Java a los CGIs (Common Gateway Interface) para construir pginas en el momento.
Poder basarse en datos del usuario. La informacin vara en el tiempo. Usar informacin de una base de datos.
Servlet vs CGI
Servlet API
Servlets: Jerarqua
La jerarqua de clases java es...
doGet() doPost()
HttpServletResponse
service() service()
Al ser un proceso tan comn existe un mtodo que nos lo soluciona directamente: setContentType de HttpServletResponse. Crear y enviar cdigo HTML vlido. Ej: HolaMundoServlet
HolaMundo Servlet
http://<server>/HolaMundoCordial HelloWorld.class
<form> y request.getParameter()
Se pueden recoger unos parametros concretos con getInitParameter de ServletConfig. Estos parmetros se especifican en el descriptor de despliegue de la aplicacin: web.xml DESTRUCCIN: Cuando todas las llamadas desde el cliente cesen o un temporizador del servidor as lo indique. Se deben liberar recursos retenidos desde init()
public void destroy()
Gestin de la Sesin.
Mantenimiento del estado de la sesin.
El protocolo HTTP no posee la capacidad de almacenar estados. Se complican mucho las tareas de guardar las acciones (Ej, las Compras) de un usuario. Posibles soluciones:
Cookies. Aadir informacin en la URL Usar campos ocultos de formularios (HIDDEN) Empleo del objeto HttpSession del servlet.
Interfaz HttpSession
Deprecated methods
setAttribute(nombre_variable, referencia )
Coloca el objeto referenciado por referencia en la sesin del usuario bajo el nombre nombre_variable. A partir de este momento, el objeto puede ser recuperado por este mismo usuario en sucesivas peticiones. Si el objeto ya existiera, lo sobrescribe.
getAttributesNames()
Retorna una Enumeration con los nombres de todos los atributos establecidos en la sesin del usuario.
OJO!
SOBRECARGAR LA SESIN ES PELIGROSO! Los elementos almacenados no se liberan hasta que no salta el timeout o session.invalidate()
Interfaz ServletContext()
//Buscamos el listado en la sesin, y en caso de que no // exista, lo instanciamos Vector listado = (Vector)req.getSession() .getAttribute("listado"); if ( listado == null ){ listado = new Vector(); }
} out.println("<center><a href=\"index.html\">volver</a></center>");
Servlet 1
Servlet 2
Servlet 3