Saltar al contenido

¿Para qué se utiliza el método init () del servlet?

Solución:

Sí, no hace nada. Podría haber sido abstracto, pero luego cada servlet se vería obligado a implementarlo. De esta forma, de forma predeterminada, no ocurre nada en init()y cada servlet puede anular este comportamiento. Por ejemplo, tiene dos servlets:

public PropertiesServlet extends HttpServlet {

   private Properties properties;

   @Override
   public void init() {
       // load properties from disk, do be used by subsequent doGet() calls
   }
}

y

public AnotherServlet extends HttpServlet {

   // you don't need any initialization here, 
   // so you don't override the init method.
}

Desde el javadoc:

/**
 *
 * A convenience method which can be overridden so that there's no need
 * to call <code>super.init(config)</code>.
 *
 * <p>Instead of overriding {@link #init(ServletConfig)}, simply override
 * this method and it will be called by
 * <code>GenericServlet.init(ServletConfig config)</code>.
 * The <code>ServletConfig</code> object can still be retrieved via {@link
 * #getServletConfig}. 
 *
 * @exception ServletException  if an exception occurs that
 *                  interrupts the servlet's
 *                  normal operation
 *
 */

Entonces no hace nada y es solo una conveniencia.

Es posible que el constructor no tenga acceso a ServletConfig ya que el contenedor no ha llamado init(ServletConfig config) método.

init() el método se hereda de GenericServlet que tiene un ServletConfig como su propiedad. así es como HttpServlety cualquier servlet personalizado que escriba extendiendo HttpServlet obtiene ServletConfig.

y GenericServlet implementos ServletConfig que tiene getServletContext método. entonces tus servlets personalizados init tendrá acceso a ambos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *