## El Ciclo de Vida de un Servlet

Cada servlet tiene el mismo ciclo de vida:

- Un servidor carga e inicializa el servlet.

- El servlet maneja cero o más peticiones de cliente.

- El servidor elimina el servlet. (Algunos servidores sólo cumplen este paso cuando se desconectan).

#### Inicializar un Servlet

Cuando un servidor carga un servlet, ejecuta el método init del servlet. La inicialización se completa antes de manejar peticiones de clientes y antes de que el servlet sea destruido.

Aunque muchos servlets se ejecutan en servidores multi-thread, los servlets no tienen problemas de concurrencia durante su inicialización. El servidor llama sólo una vez al método init, cuando carga el servlet, y no lo llamará de nuevo a menos que vuelva a recargar el servlet. El servidor no puede recargar un servlet sin primero haber destruido el servlet llamando al método destroy.

#### Interactuar con Clientes

Después de la inicialización, el servlet puede manejar peticiones de clientes. Esta parte del ciclo de vida de un servlet se pudo ver en la sección anterior.

#### Destruir un Servlet

Los servlets se ejecutan hasta que el servidor los destruye, por ejemplo, a petición del administrador del sistema. Cuando un servidor destruye un servlet, ejecuta el método destroy del propio servlet. Este método sólo se ejecuta una vez. El servidor no ejecutará de nuevo el servlet, hasta haberlo cargado e inicializado de nuevo.

Mientras se ejecuta el método destroy, otro thread podría estár ejecutando una petición de servicio. La página Manejar Threads de Servicio a la Terminación de un Thread muestra como proporcionar limpieza cuando threads de larga ejecución podrían estar ejecutando peticiones de servicio.

Ozito