Servlets (Básico)

El m�todo init proporcionado por la clase HttpServlet inicializa el servlet y graba la inicializaci�n. Para hacer una inicializaci�n espec�fica de nuestro servlet, debemos sobreescribir el m�todo init siguiendo estas reglas.

  • Si ocurre un error que haga que el servlet no pueda manejar peticiones de cliente, lanzar una UnavailableException.

    Un jemplo de este tipo de error es la imposibilidad de establecer una conexi�n requerida.

  • No llamar al m�todo System.exit.
  • Guardar el par�metro ServletConfig para que el m�todo getServletConfig pueda devolver su valor.

    La forma m�s sencilla de hacer esto es hacer que el nuevo m�todo init llame a super.init. Si grabamos el objeto nosotros mismos, debemos sobreescribir el m�todo getServletConfig para devolver el objeto desde su nueva posici�n.

Aqu� hay un ejemplo del m�todo init.

    public class BookDBServlet ... {

        private BookstoreDB books;

        public void init(ServletConfig config) throws ServletException {

            // Store the ServletConfig object and log the initialization
            super.init(config);

            // Load the database to prepare for requests
            books = new BookstoreDB();
        }
        ...
    }

El m�todo init es bastante sencillo: llama al m�todo super.init para manejar el objeto ServletConfig y grabar la inicializaci�n, y seleccionar un campo privado.

Si el BookDBServlet utilizar� una base de datos real, en vez de similarla con un objeto, el m�todo init ser�a m�s complejo. Aqu� puedes ver el pseudo-c�digo de como podr�a ser ese m�todo init.

    public class BookDBServlet ... {

        public void init(ServletConfig config) throws ServletException {

            // Store the ServletConfig object and log the initialization
            super.init(config);

            // Open a database connection to prepare for requests
            try {
                databaseUrl = getInitParameter("databaseUrl");
                ... // get user and password parameters the same way
                connection = DriverManager.getConnection(databaseUrl,
                                                         user, password);
            } catch(Exception e) {
                throw new UnavailableException (this,
		    "Could not open a connection to the database");
            }
        }
        ...
    }

.�Par�metros de Inicializaci�n

Le segunda versi�n del m�todo init llama al m�todo getInitParameter. Este m�todo toma el nombre del par�metro como argumento y devuelve un String que representa su valor.

(La especificaci�n de par�metros de inicializaci�n es espec�fica del servidor. Por ejemplo, los par�metros son espec�ficados como una propiedad cuando un servlet se ejecuta con el ServletRunner. La p�gina La Utilidad servletrunner contiene una explicaci�n general de las propiedades y c�mo crearlas).

Si por alguna raz�n, necesitamos obtener los nombres de los par�metros, podemos utilizar el m�todo getParameterNames.

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP