Метод destroy позволяет классу the HttpServlet уничтожить сервлет и индифицировать уничтожение. Чтобы уничтожить любые связанные с севлетом ресурсы, переопределите метод destroy. Метод destroy должен отменить любой инициализирующий процесс и синхронизировать установившийся статус с текущим статусом в памяти.

Следующий пример показывает метод destroy, который сопровождает псевдокод метода init из предыдущего урока:

public class DBServlet ... {
    Connection connection = null;
    ... 
    // Метод init
    ...
    public void destroy() {
        // Закрываем соединение и подготавливаем объект для сборщика мусора
        connection.close();
        connection = null;
    }
}

Сервер вызывает метод destroy после того, как завершатся все вызовы сервиса, или пройдет определенный промежуток времени устанавливаемый сервером, что быстрее произойдет. Если Ваш сервлет производит какую-либо "долгоиграющую" операцию, метод service может продолжать выполняться в тот момент, когда сервер вызовет метод destroy. Вы ответственны за то, чтоб быть уверенным что, эти процессы должны быть завершены. Следующий урок покажет Вам как.

Метод destroy описанный выше в примере предполагает, что все клиентские транзакции были завешены на тот момент, когда был вызван метод destroy, потому как сервлет не использовал "долгоиграющих" операций.