Tổng quan quy trình xử lý request trong Spring MVC

Trong bài viết về Mô hình MVC, các bạn đã biết với môi trường web, chúng ta cần có một Front Controller để nhận request và trả về response. DispatcherServlet là một Front Controller như thế trong Spring MVC. Trong bài viết này, chúng ta sẽ cùng nhau tìm hiểu tổng quan về DispatcherServlet và quy trình xử lý request trong Spring MVC các bạn nhé!

Đầu tiên, mình sẽ tạo một Spring MVC project để làm ví dụ:

Tổng quan quy trình xử lý request trong Spring MVC

Để các bạn có cái nhìn bao quát trước về quy trình xử lý request trong Spring MVC, chúng ta hãy cùng làm một thử nghiệm nhé.

Trong project mà mình sử dụng, trong thư mục /src/main/resources, các bạn thấy có một tập tin cấu hình cho Log4J, log4j.xml. Nội dung của tập tin này như sau:

Các bạn hãy đổi hết level của các logger cho Spring framework từ info sang debug trong phần “3rdparty Loggers” và root logger phần priority từ warn sang debug. Sau khi đổi, nội dung của tập tin log4j.xml sẽ như sau:

Bây giờ, hãy thử chạy ứng dụng của chúng ta các bạn nhé! Các bạn có thể tham khảo cách chạy ứng dụng Spring MVC tại đây. Mình cấu hình cho Maven Jetty Plugin như sau:

Kết quả:

Tổng quan quy trình xử lý request trong Spring MVC

Giờ xem lại Console trong STS IDE của chúng ta, các bạn sẽ thấy những dòng log sau:

Rõ ràng, mổ xẻ các dòng log ở trên, các bạn có thể thấy, DispatcherServlet sẽ là lớp đầu tiên nhận request, sau đó nó sử dụng lớp RequestMappingHandlerMapping để tìm controller phù hợp cho xử lý request của chúng ta.

Sau khi HomeController xử lý xong request và trả về kết quả, DispatcherServlet sẽ tìm đối tượng view phù hợp do HomeController trả về, ở đây là JstlView.

Khi kết thúc việc xử lý một request, DispatcherServlet sẽ in ra một message là “Successfully completed request“.

Về tổng quan, quy trình xử lý một request trong Spring MVC có thể tóm gọn bằng sơ đồ sau:

Tổng quan quy trình xử lý request trong Spring MVC

  1. Request từ người dùng tới ứng dụng web của chúng ta, DispatcherServlet sẽ là đối tượng nhận request.
  2. Tìm và điều hướng request tới handler phù hợp, ở đây là các Controllers trong ứng dụng web của chúng ta.
  3. Xử lý request
  4. Chuẩn bị model và chọn view hiển thị.
  5. Trả về kết quả xử lý request cho DispatcherServlet.
  6. DispatcherServlet sẽ gọi View Template phù hợp để xử lý việc hiển thị trên giao diện bằng cách sử dụng model.
  7. View template trả kết quả về cho DispatcherServlet.
  8. Trả response về cho người dùng.

 

One thought on “Tổng quan quy trình xử lý request trong Spring MVC

Add Comment