Mô hình MVC trong JAVA web JSP/Servlet là gì?

Tạo-ứng-dụng-theo-mô-hình-MVC-với-JavaJspServlet

Mô hình MVC trong JAVA web JSP/Servlet là gì? Mô hình MVC là một dạng mẫu thiết kế Design Pattern được áp dụng rộng rãi với tất cả các ngôn ngữ lập trình như JAVA,PHP,ANDROID…Ở bài này chúng ta sẽ cùng nhau tìm hiểu và làm rõ mô hình này nói chung và trong java web jsp/servlet nói riêng nhé.

Đầu tiên chúng ta đi đến với một khái niệm rất quan trọng đó là : MVC là gì…?

Mô hình MVC trong JAVA là gì

1. MVC là gì?

MVC viết tắt của 3 từ đó là Model – View – Controller (MVC) là mẫu thiết kế nhằm mục tiêu chia tách phần Giao diện và Code để dễ quản lý, phát triển và bảo trì.

Mỗi phần lại có có một nhiệm vụ xử lý khác nhau, đối với trong mô hình mvc trong java nói riêng và mô hình mvc nói chung thì :

  • Model: Tương tác và truy xuất dữ liệu đến database (cơ sở dữ liệu)
  • View: Giao diện mà người dùng có thể nhìn thấy, tuy nhiên thường view chỉ có một nhiệm vụ duy nhất là hiển thị dữ liệu.Trong Java thì các bạn nên giảm thiểu code Java vào file jsp nhé.Lý do tại sao mời các bạn đọc bài viết này.Trong Java web view chính là file jsp.
  • Controller: Nó có nhiệm vụ điều khiển tương tác giữa Model và View cũng như xử lý logic nghiệp vụ (Business).Có thể giải thích kỹ hơn nữa đối với trong Java thì controller lấy dữ liệu từ model sau đó gữi đến view.Trong Java web  controller là file servlet.

Để các bạn hiểu rõ hơn, các bạn có thể xem mô hình MVC dưới đây:

mô hình mvc trong java

Nhìn vào mô hình trên thì có thể giải thích rằng.Khi có một user (người dùng) truy cập vào một địa chỉ trên url, tất nhiên sẽ có một request đến và lúc này controller nó sẽ lấy yêu cầu của người dùng.Sau đó sẽ gửi yêu cầu đó đến model.Model sẽ tương tác với database nếu có (đa số sẽ truy xuất dữ liệu từ database), sau đó lấy đúng dữ liệu yêu cầu và gữi trả lại cho controller.Controller xử lý nghiệp vụ, logic business và gữi trả lại cho view.View thực hiện nhiệm vụ hiển thị dữ liệu đúng kết quả cho người dùng yêu cầu.

Vậy tại sao cần mô hình MVC?

  • Ưu điểm của mô hình MVC:
    +Theo tôi việc sử dụng MVC mang tính chất chuyên nghiệp  trong lập trình web vì nó mang tính logic cao nhưng đơn giản, phân tách rõ ràng các chức năng cần làm của một ứng dụng, qua đó nhiều người có thể làm chung dự án, phát hiện và sửa lỗi, dễ nâng cấp tính năng đồng thời khi bảo trì cũng rất dễ dàng.
  • Nhược điểm của mô hình MVC:

+MVC khi dùng trong các project nhỏ sẽ gây phức tạp vấn đề cần giải quyết

+ Mặc dù, MVC tỏ ra lợi thế hơn nhiều so với cách lập trình thông thường. Nhưng MVC luôn phải nạp, load những thư viện đồ sộ để xử lý dữ liệu. Chính điều này làm cho mô hình trở nên chậm chạp hơn nhiều so với việc code tay thuần túy.

+ MVC đòi hỏi người tiếp cận phải biết qua OOP, có kinh nghiệm tương đối cho việc thiết lập và xây dựng một ứng dụng hoàn chỉnh. Sẽ rất khó khăn nếu OOP của người sử dụng còn yếu.

+ MVC tận dụng mảng là thành phần chính cho việc truy xuất dữ liệu. Nhất là với việc sử dụng active record để viết ứng dụng. Chúng luôn cần người viết phải nắm vứng mô hình mảng đa chiều.

Một ví dụ cụ thể về mô hình mvc trong Java web JSP/SERVLET

Chúng ta sẽ hiểu,cài đặt và làm phần này theo mô hình mvc trong java.Bằng cách tạo một ứng dụng đăng nhập mẫu sẽ hiển thị một thông báo tên người dùng chào mừng và nếu đăng nhập thất bại thì nó sẽ chuyển hướng đến trang báo lỗi. Đây là những gì chúng ta sẽ tạo ra.

  • Login.jsp: – sẽ nhập tên người dùng và mật khẩu
  • Success.jsp: – Nếu đăng nhập thành công, thì trang này sẽ được hiển thị
  • Error.jsp: – Nếu đăng nhập không thành công thì trang này sẽ được hiển thị.
  • LoginController.java: – Đây là phần điều khiển của ứng dụng liên lạc với mô hình
  • Authenticator.java: Có logic nghiệp vụ để xác thực
  • User.java: Lưu trữ tên người dùng và mật khẩu cho người dùng.

Yêu cầu:

  • IDE Eclipse
  • Máy chủ Apache tomcat
  • JSTL jar

Tạo một dự án Web bằng cách vào Dynamic web project click File -> New -> Dynamic Web Project.

Điền vào các chi tiết như tên dự án, máy chủ. Nhập tên dự án của bạn là “MVCDemo”. Bạn sẽ nhận được cấu trúc thư mục sau cho dự án.

 

Tạo success.jsp, error.jsp và login.jsp và LoginController servlet, Authenticator class, User class trong các packages. Đặt jstl.jar trong thư mục WEB-INF / lib.

 

Bây giờ chúng ta có cấu trúc của dự án, đặt mã này vào các file tương ứng.

LoginController 

Authenticator.java

User.java

error.jsp

success.jsp

và file web.xml

Start server tomcat của bạn và nhấn url : http://localhost:8080/MVCDemo/login.jsp.

Bạn sẽ có thể xem trang này :

 

Nhập tên người dùng là “itphutran” và mật khẩu là “password”. Bạn sẽ thấy thông báo “Welcome itphutran”.

Để bạn đọc dễ hiểu hơn, hãy nhìn vào sơ đồ thể hiện bên dưới  :

  1. Đầu tiên, người dùng truy cập vào trang login.jsp và điền vào dữ liệu và gửi biểu mẫu.
  2. LoginController  được gọi khi người dùng nhấn nút submit  và xử lý vì thuộc tính action của form =“LoginController”.
  3. Trong LoginController , kiểm tra valid từ người dùng và thiết lập thông tin của người dùng.
  4. rd.forward(request, response);  chuyển tiếp sang trang jsp.Tại trang success.jsp in thông tin username bằng cách sử dụng biểu thức Expression Language trong JSP Welcome ${requestScope[‘user’].username}.

Tổng kết :

Trong bài viết này, chúng ta đã tìm hiểu về mô hình MVC trong các ngôn ngữ lập trình nói chung và trong java web jsp/servlet nói riêng. Qua đó chúng ta đã phân tích những ưu và nhược điểm của mô hình mvc. Phân tích bài toán và trường hợp cụ thể của mô hình mvc trong java web jsp/servlet.Chúc các bạn học tốt!