¿Qué es un Servlet?


Aprende qué es un Servlet, sus características y en donde aplicarlos con Java

oscar Escrito por oscar 11 June 2025 1 0

Aprender Servlets te ayudará a entender cómo funciona internamente un servidor web Java y por qué frameworks como Micronaut, Spring Boot o Jakarta EE funcionan como lo hacen.

Temas relacionados

Cómo crear una API REST con Java Servlets

Crear un archetype web con maven y java

Antes de hablar de Servlets...

Imagina que un usuario escribe en su navegador: 

http://localhost:8080/hola

Lo primero que ocurre NO es que Java ejecute código.

Sucede esto:

Cliente (Navegador)
        │
        │ HTTP Request
        ▼
Servidor Web (Tomcat)
        │
        ▼
Contenedor de Servlets
        │
        ▼
Servlet Java
        │
        ▼
Respuesta HTTP
        │
        ▼
Cliente

El Servlet es solamente una pieza del proceso.

¿Qué es un Servlet?

Un Servlet es una clase Java que se ejecuta en el servidor y permite manejar solicitudes HTTP dentro de un contenedor web como Apache Tomcat.

En términos prácticos:

Forma parte de la especificación Jakarta Servlet (antes Javax Servlet)

Puedes revisar documentación en:

Arquitectura básica

Flujo típico:

Cliente (Browser / Postman)
        ↓ HTTP Request
Servidor (Tomcat)
        ↓
Servlet
        ↓
Respuesta HTTP (HTML / JSON)

Servlet Container (Tomcat)

Es el entorno de ejecución encargado de gestionar el ciclo de vida de los Servlets y manejar la comunicación entre el servidor web y las clases Java.

Responsabilidades principales:

En resumen: Es el motor que ejecuta Servlets y traduce HTTP ↔ Java

HttpServlet

HttpServlet es una clase abstracta que extiende GenericServlet y está diseñada específicamente para trabajar con el protocolo HTTP.

HttpServletRequest

HttpServletRequest es un objeto que representa la solicitud HTTP que envía el cliente.

Contiene:

HttpServletResponse

HttpServletResponse es un objeto que representa la respuesta HTTP que el servidor enviará al cliente.

Ciclo de vida de un Servlet

Revisando ña documentacion: https://jakarta.ee/specifications/servlet/6.0/jakarta-servlet-spec-6.0#servlet-life-cycle 

Fases del ciclo de vida, Un servlet tiene 3 fases:

init()

Se ejecuta una sola vez al cargar

service()

https://jakarta.ee/specifications/servlet/6.0/jakarta-servlet-spec-6.0#http-specific-request-handling-methods

Se ejecuta por cada request

Internamente delega en:

destroy()

Cuando el servidor lo elimina

Familias de Servlets

Existen dos familias de Servlets:

Tomcat API Servlet Paquete Java
Tomcat 9 Servlet 4 javax.servlet.*
Tomcat 10.0 / 10.1 / 11 Jakarta Servlet 5/6 jakarta.servlet.*

¿Por qué antes era Java EE?

Hasta 2017, la plataforma pertenecía a Oracle y se llamaba Java EE.

Posteriormente fue transferida a la Eclipse Foundation y cambió de nombre a Jakarta EE.

Lo más importante es que también cambió el paquete de las clases.

Antes:

import javax.servlet.http.HttpServlet;

Ahora:

import jakarta.servlet.http.HttpServlet;

Ese cambio es la causa de muchos errores de compatibilidad.

Diferencia entre javax y jakarta

Java EE (antiguo)

import javax.servlet.*;

Servidor compatible:

Jakarta EE (nuevo)

import jakarta.servlet.*;

Servidor compatible:

En resumen


Comentario

Debe aceptar antes de enviar