Los Servlets y las páginas JSP son la base sobre la que se construyó el desarrollo web con Java. Introducidos en 1997, llevan casi tres décadas siendo el núcleo de aplicaciones web empresariales que mueven bancos, administraciones públicas y grandes plataformas de comercio electrónico.
En 2019, Java EE pasó a la Fundación Eclipse bajo el nombre Jakarta EE. Jakarta EE 10 (2022) es la versión de referencia actual, compatible con Java 11+ y optimizada para Java 17 y 21. El nombre del paquete cambió de javax.servlet a jakarta.servlet — este es el cambio más importante a tener en cuenta si migras código legado.
¿Siguen siendo relevantes en 2026?
Sí, con matices. Los frameworks modernos como Spring MVC, Quarkus y Micronaut usan Servlets por debajo. Entender cómo funcionan te permite:
- Depurar problemas de bajo nivel en cualquier aplicación web Java.
- Construir aplicaciones ligeras sin la sobrecarga de un framework completo.
- Comprender cómo funcionan los filtros, la sesión HTTP y el ciclo de vida de las peticiones.
- Trabajar con código empresarial legado que todavía representa gran parte del software en producción.
Tecnologías del ecosistema
- Servlet API: la interfaz Java para procesar peticiones HTTP.
- JSP (Jakarta Server Pages): plantillas HTML con código Java incrustado, compiladas a Servlets.
- JSTL (Jakarta Standard Tag Library): etiquetas para bucles, condiciones y formateo en JSP sin scriptlets.
- Tomcat 10+: el servidor de aplicaciones ligero y más usado para Servlets/JSP; implementa Jakarta EE Web Profile.
Entorno de trabajo
Necesitas:
- Java 21 LTS (adoptium.net o SDKMAN:
sdk install java 21-tem) - Apache Tomcat 10.1+ (tomcat.apache.org) — usa Jakarta EE 10
- Maven 3.9+ para gestionar dependencias
- IDE: IntelliJ IDEA, Eclipse IDE for Enterprise Java, o VS Code con extensión Java
Estructura de un proyecto web Maven
mi-app/
├── pom.xml
└── src/
└── main/
├── java/
│ └── com/ejemplo/
│ └── HolaMundoServlet.java
└── webapp/
├── WEB-INF/
│ └── web.xml
└── index.jsp
<!-- pom.xml --> <dependency> <groupId>jakarta.servlet</groupId> <artifactId>jakarta.servlet-api</artifactId> <version>6.0.0</version> <scope>provided</scope> <!-- Tomcat ya la incluye --> </dependency> <dependency> <groupId>jakarta.servlet.jsp.jstl</groupId> <artifactId>jakarta.servlet.jsp.jstl-api</artifactId> <version>3.0.0</version> </dependency>
