Categorías
Basics

¿Qué es Servlet Container?

En esta publicación, escribo un poco sobre las ideas básicas de Servidor web, Contenedor de servlet y su relación con JVM. Quiero mostrar que el contenedor Servlet no es más que un programa Java.

1. ¿Qué es un servidor web?

Para saber qué es un contenedor de servlets, primero necesitamos saber qué es un servidor web.

A Servidor web utiliza el protocolo HTTP para transferir datos. En una situación simple, un usuario escribe una URL (por ejemplo, www.programcreek.com/static.html) en el navegador (un cliente) y obtiene una página web para leer. Entonces, lo que hace el servidor es enviar una página web al cliente. La transformación está en el protocolo HTTP que especifica el formato de la solicitud y el mensaje de respuesta.

2. ¿Qué es un contenedor de servlets?

Como vemos aquí, el usuario / cliente solo puede solicitar una página web estática del servidor. Esto no es suficientemente bueno si el usuario quiere leer la página web basándose en su entrada. La idea básica del contenedor Servlet es usar Java para generar dinámicamente la página web en el lado del servidor. Entonces, el contenedor de servlets es esencialmente una parte de un servidor web que interactúa con los servlets.

servidor web y contenedor de servlets

Contenedor de servlet es el contenedor de Servlets.

3. ¿Qué es un servlet?

Servlet es una interfaz definida en el paquete javax.servlet. Declara tres métodos esenciales para el ciclo de vida de un servlet: init (), service () y destroy (). Son implementados por cada servlet (definidos en SDK o autodefinidos) y son invocados en momentos específicos por el servidor.

  1. El método init () se invoca durante la etapa de inicialización del ciclo de vida del servlet. Se le pasa un objeto que implementa la interfaz javax.servlet.ServletConfig, que permite al servlet acceder a los parámetros de inicialización desde la aplicación web.
  2. El método service () se invoca en cada solicitud después de su inicialización. Cada solicitud se atiende en su propio hilo independiente. El contenedor web llama al método service () del servlet para cada solicitud. El método service () determina el tipo de solicitud que se realiza y la envía a un método apropiado para manejar la solicitud.
  3. El método destroy () se invoca cuando se debe destruir el objeto servlet. Libera los recursos retenidos.
  Ejemplos de Java Varargs

A partir del ciclo de vida de un objeto de servlet, podemos ver que las clases de servlet se cargan en el contenedor mediante el cargador de clases de forma dinámica. Cada solicitud está en su propio hilo, y un objeto de servlet puede servir varios hilos al mismo tiempo (hilo no seguro). Cuando ya no se utilice, la JVM debería recoger la basura.

Como cualquier programa Java, el servlet se ejecuta dentro de una JVM. Para manejar la complejidad de las solicitudes HTTP, entra el contenedor de servlets. El contenedor de servlets es responsable de la creación, ejecución y destrucción de los servlets.

4. ¿Cómo el contenedor de Servlet y el servidor web procesan una solicitud?

  1. El servidor web recibe una solicitud HTTP
  2. El servidor web reenvía la solicitud al contenedor de servlets
  3. El servlet se recupera y carga dinámicamente en el espacio de direcciones del contenedor, si no está en el contenedor.
  4. El contenedor invoca el método init () del servlet para la inicialización (se invoca una vez cuando el servlet se carga por primera vez)
  5. El contenedor invoca el método service () del servlet para procesar la solicitud HTTP, es decir, leer los datos de la solicitud y formular una respuesta. El servlet permanece en el espacio de direcciones del contenedor y puede procesar otras solicitudes HTTP.
  6. El servidor web devuelve los resultados generados dinámicamente a la ubicación correcta

Los seis pasos están marcados en el siguiente diagrama:

contenedor de servlet - ciclo de vida

5. El papel de JVM

El uso de servlets permite que la JVM maneje cada solicitud dentro de un hilo de Java separado, y esta es una de las ventajas clave del contenedor de Servlet. Cada servlet es una clase Java con elementos especiales que responden a solicitudes HTTP. La función principal de Servlet contiene es enviar solicitudes al servlet correcto para su procesamiento y devolver los resultados generados dinámicamente a la ubicación correcta después de que JVM los haya procesado. En la mayoría de los casos, el contenedor de servlets se ejecuta en una sola JVM, pero existen soluciones cuando el contenedor necesita varias JVM.

Por Programación.Click

Más de 20 años programando en diferentes lenguajes de programación. Apasionado del code clean y el terminar lo que se empieza. ¿Programamos de verdad?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *