Ciclo de una peticion web - eliizquierdo/material_programacion_avanzada2026 GitHub Wiki
Antes de ver JSP y Servlets en detalle, es importante entender qué pasa exactamente desde que el usuario escribe una URL hasta que ve la página en pantalla.
El ciclo completo
Paso a paso
1. El usuario hace una acción
Puede ser:
- Escribir una URL en el navegador → genera un GET
- Hacer clic en un enlace → genera un GET
- Enviar un formulario → genera un POST
2. El navegador envía un HTTP Request
Contiene:
- El método (GET o POST)
- La URL (
/personas,/formulario, etc.) - Los datos del formulario (si es POST)
3. Tomcat recibe el request y busca quién lo maneja
Lee la URL y busca un Servlet registrado para esa ruta.
// El Servlet se registra con esta anotación:
@WebServlet("/personas")
public class PersonaServlet extends HttpServlet { ... }
4. El Servlet ejecuta la lógica Java
- Obtiene los parámetros (
req.getParameter("nombre")) - Consulta la base de datos si es necesario
- Prepara los datos para mostrar
5. El Servlet delega la presentación al JSP
// El Servlet pone datos disponibles:
req.setAttribute("personas", lista);
// Y le pasa el control al JSP:
req.getRequestDispatcher("/WEB-INF/vistas/lista.jsp")
.forward(req, resp);
6. El JSP genera el HTML y Tomcat lo envía al navegador
El JSP combina HTML estático con datos dinámicos de Java.
¿Quién hace qué?
| Componente | Rol | Analogía |
|---|---|---|
| Servlet | Recibe el request, ejecuta lógica, consulta BD | El mozo que toma el pedido y va a la cocina |
| JSP | Genera el HTML con los datos | La cocina que prepara el plato |
| DAO | Accede a la base de datos | La despensa con los ingredientes |
| Tomcat | Servidor que coordina todo | El restaurante |
GET vs POST
| GET | POST | |
|---|---|---|
| ¿Para qué? | Pedir datos (listar, buscar) | Enviar datos (crear, editar) |
| ¿Los datos van en? | La URL (?nombre=Ana) |
El cuerpo del request (no se ve) |
| ¿Se puede repetir? | Sí, sin problema | Con cuidado (ver Patrón PRG) |
| Método en el Servlet | doGet() |
doPost() |
📌 Nota: En la teoría MVC pura, la lógica de negocio vive en el Modelo. En nuestra implementación sin capa de servicios, la ponemos en el Controlador por simplicidad.
💡 Para recordar: El Servlet maneja la lógica, el JSP genera la vista y el DAO accede a los datos. Esa separación de las tres capas es el corazón del patrón MVC.
📋 Palabras clave
ciclo de petición · HTTP request · HTTP response · GET · POST · Tomcat · Servlet · JSP · forward · redirect · doGet · doPost · @WebServlet · cliente · servidor
🧠 Autoevaluación — Ciclo de una petición web