Servlets

Páginas: 5 (1182 palabras) Publicado: 17 de junio de 2014








Práctica 5
Sesión en Servlets




Este ejercicio está orientado a ver cómo se utiliza el objeto HttpSession asociado a la sesión del usuario para almacenar información relativa al estado de la misma. Para comprobarlo, vamos a partir del servlet HolaMundo que acabamos de implementar del proyecto MiSegundoServlet y lo vamos a modificar para que vaya almacenando los nombresde las personas que solicitan el saludo desde una misma instancia del navegador.
1. Editamos el servlet y modificamos su código de tal forma que al final de la página muestre la lista de personas ya saludadas durante la sesión del usuario actual. Para ello:
Buscaremos en la sesión un atributo del tipo java.util.Vector que se llame listado. En caso de que no exista, lo instanciamos.
Vectorlistado = (Vector)req.getSession().getAttribute("listado");
if ( listado == null )
{
listado = new Vector();
}
Al recuperar el nombre de la persona a saludar desde la request, añadimos dicho nombre al vector.
if ( nombre != null )
{
out.println("Hola "+nombre+"");
listado.addElement(nombre);
}
Establecemos el Vector como atributo en la sesión bajo el nombre de listado. En caso de que yaexistiera, machacaría la referencia con la nueva.
req.getSession().setAttribute("listado",listado);

Al final de la página, listamos los nombres que contenga el Vector. Además, añadimos un enlace a la página del formulario para evitar tener que andar pulsando el botón de atrás del navegador.
out.println("");
out.println("Contigo, hoy me han visitado:");
for ( int i = 0 ; i < listado.size() ;i++ )
{
out.println(""+(String)listado.elementAt(i));
}
out.println("volver");

2. Desplegamos y probamos la aplicación. Nótese que, al almacenar la lista de personas en la sesión, habrá una lista por cada usuario activo en la aplicación. Para comprobarlo, acceder a la aplicación del compañero mediante http://:8080/contexto_de_la_aplicación. La ip en Windows la podéis averiguar abriendo unaventana de comandos y ejecutando ipconfig.
3. El método doGet finalmente quedará de la siguiente manera:
public void doGet( HttpServletRequest req, HttpServletResponse res )
throws IOException, ServletException
{
String nombre = (String)
req.getParameter("NombreUsuario");
Vector listado = (Vector)req.getSession().getAttribute("listado");
if ( listado == null )
{
listado = newVector();
}
res.setContentType("text/html");
PrintWriter out = res.getWriter();
out.println("");
out.println("Hola Mundo!");
out.println("");
if ( nombre != null )
{
out.println("Hola "+nombre+"");
listado.addElement(nombre);
}
req.getSession().setAttribute("listado",listado);
out.println("Bienvenido a mi primera página Web!");
out.println("");
out.println("Contigo,hoy me han visitado:");
for ( int i = 0 ; i < listado.size() ; i++ )
{
out.println(""+(String)listado.elementAt(i));
}
out.println("Volver");
out.println("");
}




El objetivo de este ejercicio es implementar un contador de visitas del servlet. Como lo que queremos contar son las visitas totales, independientemente de la sesión a la que pertenezcan, no lo podemos implementarapoyándonos en la sesión del usuario, sino que lo haremos en el contexto de la aplicación. El objeto que representa el contexto del servlet lo obtenemos mediante el método getServletContext(), al que tenemos acceso por heredarlo de la superclase del HttpServlet. El objeto de contexto que nos devuelve tiene los métodos getAttribute(...) y setAttribute(…) análogos a los del objeto de sesión.
1. Editamosel servlet y modificamos su código de tal forma que al final de la página muestre el número de visitas que ha recibido el servlet desde que se levantó el servidor.
Buscaremos en la sesión un atributo del tipo Integer que se llame contador. En caso de que no exista, lo instanciamos con valor 0. Tiene que ser Integer y no int porque sólo podemos almacenar sublases de Object.
Integer contador =...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Servlets
  • Servlets
  • Servlets
  • Servlets
  • Servlets
  • Jsp y Servlets
  • Applets y servlets
  • Servlets java

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS