Que es el MVC - eliizquierdo/material_programacion_avanzada2026 GitHub Wiki
¿Qué es el Patrón Modelo-Vista-Controlador?
MVC es un patrón de arquitectura de software que organiza una aplicación dividiéndola en tres capas con responsabilidades bien definidas:
- Modelo: representa los datos y la lógica de negocio. En nuestra implementación incluye las clases VO (datos) y DAO (acceso a la base de datos).
- Vista: es lo que el usuario ve. Presenta los datos del modelo en formato visual. En Java Web, son los archivos JSP.
- Controlador: recibe las acciones del usuario, coordina la comunicación entre la Vista y el Modelo, y decide qué respuesta enviar. En Java Web, son los Servlets.
📌 Nota: En la teoría MVC pura, la lógica de negocio vive en el Modelo. En nuestra implementación sin capa de servicios separada, la ponemos en el Controlador por simplicidad — es una decisión didáctica, no la definición canónica del patrón.
Ejemplo: el usuario completa un login (Vista). El Servlet (Controlador) recibe los datos y le pide al DAO (Modelo) que verifique si el usuario existe. Si es correcto, el Controlador manda la respuesta de vuelta a la Vista: "bienvenido".
Para profundizar: video introductorio sobre MVC
Estructura general de un proyecto MVC
En este tutorial, las clases y páginas se organizan siguiendo el patrón MVC (Modelo-Vista-Controlador), separando:
- Modelo: clases que representan los datos y la lógica de acceso a base de datos.
- Vista: las páginas JSP que muestran la información al usuario.
- Controlador: los servlets que coordinan la lógica entre vista y modelo.
Por lo que la estructura general será la siguiente:
proyecto/
├── pom.xml
└── src/
└── main/
├── java/
│ ├── modelo/
│ │ ├── vo/
│ │ └── dao/
│ └── controlador/
└── webapp/
└── WEB-INF/
├── web.xml
└── vista/
🛑 CUIDADO al armar la estructura
- Esto es una 📁 Folder (Carpeta)
- Esto es un 📦 Package (paquete)
📊 Cuadro comparativo: Folder vs Package en Java
| 🔍 Característica | 📁 Folder (Carpeta) | 📦 Package (Paquete) |
|---|---|---|
| Naturaleza | Física (estructura del sistema de archivos) | Lógica (estructura interna del lenguaje Java) |
| Ubicación | En el disco o proyecto (ej. src/main/java/modelo/) |
Declarada dentro del archivo Java (ej. package modelo;) |
| Requerido por Java | No necesariamente | Sí, para mantener organización lógica y modularidad |
| Impacta en la compilación | No | Sí, el compilador usa el nombre del paquete para ubicar clases |
💡ATENCIÓN: Cómo crear un package de Java en VS Code
1. Abrir el proyecto en VS Code
Abre tu proyecto Java (por ejemplo, un proyecto Maven con la carpeta src/main/java).
2. Ir a la carpeta src/main/java
En el Explorador de Archivos de VS Code (barra lateral izquierda), busca: src/ main/ java/
Aquí es donde deben estar tus packages.
3. Crear un package
- Haz clic derecho sobre la carpeta
java→ New Folder. - Nombra la carpeta con el nombre del package en formato de puntos convertido a carpetas:
- Si quieres
package modelo.dao; - Debes crear:
java/modelo/dao/
- Si quieres
- Dentro de esa carpeta crea tu clase Java (por ejemplo,
PersonaDAO.java). - En la primera línea del archivo coloca:
package modelo.dao;
📋 Palabras clave
MVC · Modelo-Vista-Controlador · Servlet · JSP · DAO · VO · package · folder · separación de responsabilidades · arquitectura · controlador · vista · modelo