¿Qué es un Servlet en Java y por qué muchos desarrolladores de Spring Boot no lo conocen?

¿Qué es un Servlet en Java y por qué muchos desarrolladores de Spring Boot no lo conocen?

🚪 Introducción

Si estás usando Spring Boot y defines un endpoint con @GetMapping("/hola"), ¿sabías que eso está siendo procesado por un servlet?
Muchos desarrolladores nuevos nunca han escrito uno, y sin embargo, ¡lo usan todos los días sin saberlo!

En esta entrada te explico qué es un servlet, cómo se define, y por qué entenderlo te convierte en un mejor desarrollador Java.

🔍 ¿Qué es un Servlet?

Un Servlet es una clase Java que se ejecuta en un servidor web (como Tomcat o Jetty) y responde a solicitudes HTTP. Es el componente base de la arquitectura web en Java desde los años 90.

Ejemplo simple de Servlet


@WebServlet("/hola")
public class HolaServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws IOException {
        resp.setContentType("text/html;charset=UTF-8");
        resp.getWriter().println("<h1>Hola desde un Servlet</h1>");
    }
}
    

🧱 ¿Cómo funciona internamente Spring Boot?

Cuando usas esto en Spring Boot:


@RestController
public class SaludoController {
    @GetMapping("/hola")
    public String saludar() {
        return "Hola desde Spring Boot";
    }
}
    

Spring crea internamente un servlet llamado DispatcherServlet, que recibe todas las peticiones HTTP y las enruta al método correspondiente.

Sí, Spring Boot sigue usando Servlets. Pero los abstrae para que no los veas.

🤔 ¿Por qué muchos desarrolladores no conocen los servlets?

  • Spring Boot automatiza todo: ya no necesitas declarar web.xml ni extender HttpServlet.
  • Muchos tutoriales modernos omiten los fundamentos.
  • Se confía en las anotaciones y el “auto-magic” del framework.

🎯 ¿Por qué deberías aprenderlos igual?

  • Te ayuda a entender lo que ocurre debajo del framework.
  • Puedes debuguear mejor y entender problemas en producción.
  • Algunos casos requieren Servlets puros (como archivos, filtros personalizados, etc).
  • Si trabajas con aplicaciones antiguas o heredadas, probablemente los verás.

📦 El Servlet sigue vivo

Con la evolución hacia Jakarta EE, los Servlets siguen vivos y activos. De hecho, puedes usarlos embebidos con Jetty y levantar una app con unas pocas líneas de código.

🧘‍♂️ Conclusión

El servlet es la raíz de la web en Java. Aunque Spring Boot te oculte esa complejidad, saber que está ahí y cómo funciona te convierte en un desarrollador más completo y preparado.

Si usas @RestController, estás usando un servlet. Solo que no lo ves.


¿Te gustó esta entrada? Próximamente: “Cómo levantar tu primer Servlet con Jetty embebido”.

Comentarios

Entradas populares de este blog

RESOLUCION SET BASICO DE FACTURA ELECTRÓNICA SII

Firma de un Documento XML con Certificado Digital en Java para Uso Tributario en Chile

Configurando Servlets y JSP en Jetty