package docen_servlet01;

import javax.servlet.*;
import javax.servlet.http.*;

import java.io.*;
import java.util.*;

/*****************************************************************************
 * Este servlet recibe de un servlet anterior información de la sesión.
 * Concretamente el atributo 'login' y  muestra por pantalla
 ****************************************************************************/
public class AtributosSesion2 extends HttpServlet {

   public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      response.setContentType("text/html; charset=iso-8859-1");  // Definir tipo de salida
      PrintWriter out = response.getWriter();

      //// Obtiene la sesión. Si no existiese, no la crea
      HttpSession sesion = request.getSession(false);

      //// Poner apellido como atributo en la sesion
      if ( sesion != null)
    	  sesion.setAttribute("apellido", request.getParameter("apellido"));

      //// Escribe el inicio de la página
      out.println("<html>");
      out.println("<head><title>Ejemplo de Servlet (2)</title></head>");
      out.println("<body bgcolor=\"#FFFF9D\"><FONT color=\"#000080\" FACE=\"Arial,Helvetica,Times\" SIZE=2>");
      out.println("<CENTER><H3>Atributos de sesión (2)</H3></CENTER><HR>");
      out.println("<P>Recuperamos datos de la sesión:</P>");

      if ( sesion != null ) {
      
	      //// Recupera y muestra datos de sesión
	      for (Enumeration e = sesion.getAttributeNames(); e.hasMoreElements(); ) {
			  String atrib = (String) e.nextElement();
			  out.print("<P>" + atrib + ": " + sesion.getAttribute(atrib) + "</P>" );
	      }

	      //// No es necesario, pero así aprendemos como se borran atributos de la sesión
	      sesion.removeAttribute( "login");
	      sesion.removeAttribute( "apellido");
	      
	      //// Invalidamos sesión. Idem: tampoco es necesario aqui.
	      sesion.invalidate();
	      
      }
      else
          out.println("<P>No se puede recuperar la sesión</P>");
    	  

      //// Fin de página
      out.println("</body></font></html>");
      out.close();
   }

   public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	   doPost(request, response);
   }
   
}
