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

  1. Haz clic derecho sobre la carpeta java → New Folder.
  2. 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/
      
  3. Dentro de esa carpeta crea tu clase Java (por ejemplo, PersonaDAO.java).
  4. 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


🧠 Autoevaluación — Patrón MVC


← HTTP Sessions · 🏠 Inicio · MINI-CRUD: Ejemplo completo →