MVC là một mô hình thiết kế mang tính tổng thể để giải quyết vấn đề trên, nó được tạo ra bởi Krasner và Pope nǎm 1988 cho Smalltalk, hiện tại được IBM và Apache ứng dụng trong các dự án của họ rất thành công. Đây là một giải pháp cho phép xây dựng nên các ứng dụng phân tầng một cách rất hiệu quả bằng cách tạo ra những phương thức quản lý từng tầng một cách riêng rẽ. Trong J2EE, thì MVC cũng được xây dựng dựa trên những tính nǎng mạnh của công nghệ JSP và Servlet.
MVC có 3 thành phần chính là Model, View và Controller.
Hình 4-18 Các thành phần chính trong mô hình MVC
Mục đích, tác dụng của các thành phần, các lớp trong mô hình MVC được chi tiết trong bảng 4.1 dưới đây.
Ưu điểm của mô hình MVC
• Độ tin cậy cao
do trong mô hình MVC các lớp presentation và transaction được phân chia rõ ràng, điều đó cho phép ta thay đổi cách nhìn và các cảm nhận về một ứng dụng phần mềm khi không phải biên dịch lại code của Model hoặc Controller.
• Khả năng tái sử dụng và tính đáp ứng cao
Mô hình MVC cho phép chúng ta sử dụng đa kiểu trong tầng View, tất cả các cách truy nhập mã code bên server. Điều đó bao gồm bất cứ thứ gì từ trình duyệt Web (HTTP) tới trình duyệt không dây (WAP).
• Giá chi phí cho phát triển và vòng đời thấp
Mô hình MVC tạo nhiều thuận lợi cho các lập trình viên mức thấp phát triển thêm ứng dụng của mình cũng như dễ dàng trong việc bảo trì giao diện người dùng.
• Khả năng bảo dưỡng dễ dàng (Maintainability):
Do sự tách biệt trong lập trình các phần trong mô hình MVC nên tạo nhiều thuận lợi cho việc bảo trì và sửa đổi các ứng dụng Web.
Chính từ những ưu điểm nổi bật trên, nên trong thực tế hầu hết các ứng dụng web hiện nay đều được xây dựng dựa trên mô hình MVC, đặc biệt đối với các ứng dụng có tính thương mại và độ phức tạp cao. Phần tiếp theo sau đây sẽ giới thiệu Struts Framework, một framework được thiết kế theo mô hình này.