Servlets y JSP: tutorial Jakarta EE 10 y Java 21

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>

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
ARTÍCULO ANTERIOR