¿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

Configurando Servlets y JSP en Jetty

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

RESOLUCION SET BASICO DE FACTURA ELECTRÓNICA SII