06 - Servlets

Un Servlet es una clase Java que se ejecuta dentro de un contenedor de servlets (por ejemplo, Tomcat o Jetty) y que procesa peticiones HTTP.

No puede ejecutarse de forma independiente. El contenedor se encarga de:

  • Abrir el socket TCP.

  • Interpretar el protocolo HTTP.

  • Crear los objetos HttpServletRequest y HttpServletResponse.

  • Llamar al método apropiado de nuestro servlet (doGet, doPost, etc.).

Forma parte de la especificación Jakarta Servlet API (antes Java Servlet API).

  • Carga y creación: El contenedor carga la clase y crea una instancia cuando es necesario.

  • Inicialización: Llama a init(ServletConfig config).

  • Atender peticiones: Cada solicitud HTTP invoca service(HttpServletRequest, HttpServletResponse), que delega en doGet, doPost, etc.

  • Destrucción: Llama a destroy() antes de descargar la clase para liberar recursos.

  • init() → Inicialización (se ejecuta una vez).

  • doGet() → Responde a peticiones HTTP GET.

  • doPost() → Responde a peticiones HTTP POST.

  • doPut(), doDelete() → Para otros métodos HTTP.

  • destroy() → Liberar recursos antes de descargar el servlet.

Para que funcione, debe desplegarse en un contenedor de servlets.

package es.cesguiro.servlet;

import java.io.IOException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

@WebServlet("/hola")
public class HolaServlet extends HttpServlet {

   @Override
   protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
      response.setContentType("text/html");
      response.getWriter().println("<h1>Hola desde un Servlet</h1>");
   }
}

Ejemplos de contenedores:

Funciones clave:

  • Manejar la red y el protocolo HTTP.

  • Crear y gestionar instancias de servlets.

  • Pasar los objetos HttpServletRequest y HttpServletResponse.

  • Aplicar filtros y listeners.

  • clase/daw/si/1eval/servlets.txt
  • Última modificación: 2025/08/14 08:43
  • por cesguiro