package com.atrium.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Servlet_Finalizar extends HttpServlet {

	/**
	 * Paso de las peticiones get al metodo post para su tratameinto
	 */
	@Override
	protected void doGet(HttpServletRequest peticion,
			HttpServletResponse respuesta) throws ServletException, IOException {
		doPost(peticion, respuesta);
	}

	/**
	 * The doPost method of the servlet. <br>
	 * 
	 * This method is called when a form has its tag value method equals to
	 * post.
	 * 
	 * @param request
	 *            the request send by the client to the server
	 * @param response
	 *            the response send by the server to the client
	 * @throws ServletException
	 *             if an error occurred
	 * @throws IOException
	 *             if an error occurred
	 */
	public void doPost(HttpServletRequest peticion,
			HttpServletResponse respuesta) throws ServletException, IOException {

		System.out.println(" valor content-type peticion: "
				+ peticion.getContentType());
		System.out.println(" valor length peticion: "
				+ peticion.getContentLength());
		System.out.println(" valor context path peticion: "
				+ peticion.getContextPath());
		System.out.println(" valor local addr peticion: "
				+ peticion.getLocalAddr());
		System.out.println(" valor local name peticion: "
				+ peticion.getLocalName());
		System.out.println(" valor local port peticion: "
				+ peticion.getLocalPort());
		System.out.println(" valor path info peticion: "
				+ peticion.getPathInfo());
		System.out.println(" valor path translate peticion: "
				+ peticion.getPathTranslated());
		System.out.println(" valor protocol peticion: "
				+ peticion.getProtocol());
		System.out.println(" valor query string peticion: "
				+ peticion.getQueryString());
		System.out.println(" valor remote addr peticion: "
				+ peticion.getRemoteAddr());
		System.out.println(" valor remote host peticion: "
				+ peticion.getRemoteHost());
		System.out.println(" valor remote port peticion: "
				+ peticion.getRemotePort());
		System.out.println(" valor remote user peticion: "
				+ peticion.getRemoteUser());
		System.out.println(" valor request uri peticion: "
				+ peticion.getRequestURI());
		System.out.println(" valor server name peticion: "
				+ peticion.getServerName());
		System.out.println(" valor server port peticion: "
				+ peticion.getServerPort());
		System.out.println(" valor server path peticion: "
				+ peticion.getServletPath());
		System.out.println(" valor request url peticion: "
				+ peticion.getRequestURL());

		// RESERVADO PARA CUALQUIER PROCESO DE FINALIZACION O CIERRE

		// ELIMINACION MANUAL DE LOS ATRIBUTOS DE SESION PARA SU REGISTRO POR EL
		// RASTREO
		Enumeration<String> nombre_atributos = peticion.getSession()
				.getAttributeNames();
		while (nombre_atributos.hasMoreElements()) {
			String nombre = nombre_atributos.nextElement();
			// NO ELIMINAMOS LOS ATRIBUTOS NECESARIOS EN LA TRAZA DE FIN DE
			// SESION.
			if (!nombre.equals("numero_sesion")
					&& !nombre.equals("numero_peticiones")
					&& !nombre.equals("numero_atributos_sesion")) {
				peticion.getSession().removeAttribute(nombre);
			}
		}

		// FINALIZAMOS LA SESION DEL USUARIO
		peticion.getSession().setMaxInactiveInterval(15);

		// NAVEGACION A LA PAGINA DE SALIDA
		RequestDispatcher salida = peticion
				.getRequestDispatcher("jsp/salida.jsp");
		salida.forward(peticion, respuesta);
	}

}
