package docen_servlet01; import javax.servlet.*; import javax.servlet.http.*; import java.io.*; /******************************************************************************** * Ejemplo de mantenimiento de datos de sesión * Este servlet genera un formulario que invoca a otro servlet (AtributosSesion2) * AtributosSesion recibe del formulario HTML el login y lo almacena como * atributo de sesión. El segundo servlet muestra la información almacenada en los * atributos de la sesión. * En un archivo properties almacenamos la ruta del siguiente servlet ********************************************************************************/ public class AtributosSesion extends HttpServlet { private Propiedades acceso; // Clase de propiedades: host, etc. public void init(ServletConfig config) throws ServletException { super.init(config); ServletContext sc = null; try { sc = config.getServletContext(); // Obtengo contexto del servlet //// El path donde está el archivo de propiedades es 'contexto/propiedades/paquete/' //// sc.RealPath("/") me da el path del contexto de aplicación acceso = new Propiedades( sc.getRealPath("/")+"propiedades/" + getClass().getPackage().getName() + "/"); } catch (Exception e) { sc.log( "----> " + this.getClass().getName() + ": ERROR EN INIT."); } } 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. Con el argumento true crea una sesión si no existiese HttpSession sesion = request.getSession( true ); //// LO ESENCIAL: poner nombre (recibido del form) como un atributo de la sesion sesion.setAttribute("login", request.getParameter("login")); //// Escribe el inicio de la página out.println(""); out.println("Ejemplo de Servlet"); out.println(""); out.println("

Atributos de sesión (1)


"); //// Informo de la carga de propiedades if ( acceso.mensajeError != null ) out.println("

En la clase " + getClass().getName() + ": no se han cargado propiedades.

"); else { //// Obtenemos el atributo de sesión que acabamos de almacenar out.println("

Este es el primer servlet. Hemos almacenado su login (" + sesion.getAttribute( "login" ) + ") como atributo de la sesión. Ponga su apellido y también lo almacenaremos como " + "atributo de la sesión. Invocaremos al segundo servlet: " +request.getContextPath()+ acceso.getParametro("AtributosSesion.siguiente.servlet")+"

"); //// Escribe el formulario out.println("

"); out.println("

Su primer apellido:

"); out.println("

"); out.println("
"); } //// Fin de página out.println("
"); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } }