2011-05-25 20 views

Respuesta

11

Nada de todo es verdad.

El contenedor solo llama al método destroy() del servlet cuando se cierre. Durante el cierre del contenedor, todos los servlets serán destruidos. No debe llamar al método usted mismo. El método destroy() simplemente le ofrece la oportunidad de ejecutar algún código al momento del cierre. Por ejemplo, para cerrar algunos recursos externos que se abrieron durante init().

E.g.

private SomeExternalResource someExternalResource; 

@Override 
public void init() { 
    someExternalResource = new SomeExternalResource(); 
} 

@Override 
public void destroy() { 
    someExternalResource.close(); 
} 

No es necesario que implemente el método cuando no tenga nada que limpiar.

+0

Ese es el escenario ideal con respecto al ciclo de vida del servlet. Si por error llamaré al método de destrucción del servicio, entonces ¿qué ocurre? – gaurav

+1

Bueno, entonces el código en ese método se ejecutará de la forma habitual de Java como cualquier otro método. El servlet no será destruido o algo así. El contenedor es el único que hace eso ** después ** ha llamado al método 'destroy()' durante el cierre. – BalusC

+0

Muchas gracias por la confirmación – gaurav

Cuestiones relacionadas