## Destruir un Servlet

El método destroy proporcionado por la clase HttpServlet destruye el servlet y graba su destrucción. Para destruir cualquier recurso específico de nuestro servlet, debemos sobreescribir el método destroy. Este método debería deshacer cualquier trabajo de inicialización y cualquier estado de persistencia sincronizado con el estado de memoria actual.

El siguiente ejemplo muestra el método destroy que acompaña el método init de la página anterior:

        public class BookDBServlet extends GenericServlet {

            private BookstoreDB books;

            ... // the init method

            public void destroy() {
                // Allow the database to be garbage collected
                books = null;
            }
        }

Un servidor llama al método destroy después de que se hayan completado todas las llamadas de servidor, o en un servidor específico hayan pasado un número de segundos, lo que ocurra primero. Si nuestro servlet manejar operaciones de larga ejecución, los métodos service se podrían estar ejecutando cuando el servidor llame al método destroy. Somos responsables de asegurarnos de que todos los threads han terminado. La página sigueinte muestra cómo.

El método destroy mostrado arriba espera a que todas las interacciones de cliente se hayan completado cuando se llama al método destroy, porque el servlet no tiene operaciones de larga ejecución.

Ozito