¿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 extenderHttpServlet
. - 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
Publicar un comentario