La arquitectura Modelo-Vista-Controlador
La arquitectura Modelo-Vista-Controlador (MVC), es un patrón que organiza la aplicación en tres partes independientes:
Modelo (model)
Es una representación del esquema de la base de datos visto desde el lenguaje de programación; este se encarga del transporte de los datos y de dar formato a los mismos generalmente antes de que sean enviados a la base de datos siendo además el que notifica o carga en el controlador los nuevos datos o cambios en los registros guardados en la BD.
Vistas (view)
Son los elementos gráficos que representan la parte visual de los datos, aquì se le da formato entendible para el usuario, se preocupa por mostrar de forma adecuada los datos.
Controlador (controller)
Se encarga recibir las acciones del usuario y de solicitar los últimos cambios de datos al modelo para comunicárselos a la vista.

En las aplicaciones Web más sencillas de este curso, solo separamos la vista ( con páginas JSP) y el procesamiento de los datos (con Servlets). Sin embargo, para aplicaciones Web un poco más avanzadas utilizamos el patrón MVC. La vista la implementaremos con páginas JSP, el controlador con servlets y el modelo con clases Java
Al diseñar y codificar los módulos MVC, es importante que se haga una buena división de las tareas. Por ejemplo, las páginas JSP no deben incluir tareas de procesamiento de datos y los servlets no deben contener código para la presentación de las páginas. La división de tareas entre el controlador y el modelo es la más difícil. Mantener una total independencia entre los módulos es a veces imposible, sin embargo es el objetivo ideal.