The Java TM Tutorial

| Start of Tutorial > Start of Trail > Start of Lesson | Search

Trail: Servlets
Lesson: The Life Cycle of a Servlet

## Destroying a Servlet

> The `destroy` method provided by the `HttpServlet` class destroys the servlet and logs the destruction. To destroy any resources specific to your servlet, override the `destroy` method. The `destroy` method should undo any initialization work and synchronize persistent state with the current in-memory state.

> The following example shows the `destroy` method that accompanies the pseudo-code `init` method in the previous lesson:

>         public class DBServlet ... {
>             Connection connection = null;

>             ... // the init method

>             public void destroy() {
>                 // Close the connection and allow it to be garbage collected
>                 connection.close();
>                 connection = null;
>             }
>         }

> A server calls the `destroy` method after all service calls have been completed, or a server-specific number of seconds have passed, whichever comes first. If your servlet handles any long-running operations, `service` methods might still be running when the server calls the `destroy` method. You are responsible for making sure those threads complete. The next lesson shows you how.

> The `destroy` method shown above expects all client interactions to be completed when the `destroy` method is called, because the servlet has no long-running operations.

| Start of Tutorial > Start of Trail > Start of Lesson | Search