Mô hình MVC trong Spring. Tạo Project HelloWorld

Trong phần này tôi sẽ hướng dẫn tạo 1 ứng dụng đơn giản bằng Spring MVC Framework , đồng thời giải thích các luồng dữ liệu được xử lý khi chạy ứng dụng. Ứng dụng này hiển thị một thông điệp ra trình duyệt web. Tôi đảm bảo khi nghiên cứu chi tiết bài viết này sẽ hiểu khá rõ về Spring MVC Framwork 


Spring Web model-view-controller (MVC) framework được thiết kế xung quanh một DispatcherServlet xử lý hết tất cả các HTTP yêu cầu và HTTP phản hồi lại. Các luồng xử lý của Spring MVC được mô tả trong sơ đồ sau:


[1] Sau khi nhận được 1 yêu cầu HTTP, DispatcherServlet sẽ tư vấn HandlerMapping Controller thích hợp.
[2] Controller nhận các yêu cầu và gọi phương thức thích hợp bằng cách sử dụng phương thức GET hoặc POST. Tại đây phương thích hợp được gọi sẽ thiết lập model dữ liệu và trả về tên View cho DispatcherServlet.
[3] DispatcherServlet sẽ nhận được sự trợ giúp từ ViewResolver để xác định View cho các yêu cầu.
[4] Quá trình chọn View hoàn thành, DispatcherServlet chuyển model dữ liệu tới View  đó và cuối cùng chuyển tới trình duyệt.

Chúng ta bắt đầu tạo 1 ứng dụng Spring MVC:

Tạo Project

Trong bài này ta sẽ setup 1 project maven. Lợi ích là ta không phải nhọc công quản lý 1 đống lib nữa, việc này ta giao cho maven xử lý.
B1: Trong cửa sổ làm việc của Eclipse, bạn chọn File -> New -> Maven Project. Nếu không tìm thấy Maven Project, bạn chọn dòng Others. Trong cửa sổ hiện ra, bạn tìm maven project ở khung search, sau đó nhấn Next

Làm quen với Spring MVC - Hello World
B2: Ở cửa sổ tiếp theo, tiếp tục nhấn Next
Làm quen với Spring MVC - Hello World
B3: Ở cửa số kế, bạn chọn dòng có Artifact Id là maven-archetype-webapp (vì chúng ta cần 1 project web mà  :-) )
Làm quen với Spring MVC - Hello World
B4: Tới lúc đặt tên cho project của bạn rồi. Bạn nhập vào 2 dòng là Group ID và Artifact ID. Tên hiển thị trong Eclipse sẽ là Artifact ID. Group ID sẽ dùng cho việc đóng gói sau này. Sau khi nhập xong xuôi, bạn bấm Finish để hoàn tất nhé.
Làm quen với Spring MVC - Hello World
B5: 1 bước nhỏ đó là điều chỉnh lại Project Facets cho project này. Các bạn nhấp phải vào project -> Properties. Trong cửa sổ hiện ra, chọn Project Facets ở menu bên trái. Ta chọn 3 mục như trong hình bên dưới
Làm quen với Spring MVC - Hello World
Ghi chú: nếu bị thông báo không thể thay đổi Dynamic Web Module, các bạn check bỏ mục này rồi apply, sau đó chọn lại bình thường. Bạn cũng check vào Apache Tomcat v7.0 trong thẻ Runtimes
B6: Tiếp tục vào Properties của Project, chọn Java Build Path. Trong tab source, bỏ check mục Allow output folder for source folders. Sau khi nhấn Apply, project của chúng ta sẽ xuất hiện thêm src/main/java. Đây là folder chứa tất cả các code java của chúng ta sau này.
Làm quen với Spring MVC - Hello World

Project dependency

Đây là dependency của maven dùng cho bài này. Các bạn mở file pom.xml lên và copy đoạn code phía dưới vào nhé.

Cấu hình các file xml

Các file cấu hình xml ta để chung vào thư mục WebContent/WEB-INF
Ta cần tạo 2 file, web.xml và spring-mvc-servlet.xml
Web.xml

Giải thích:
Ta cấu hình dispatcherServlet trỏ về dispatcher của spring. Mọi request sẽ đi qua dispatcher này trước khi được xử lý. Trong file này ta cũng cấu hình file context cho spring, và tên file này ta có thể thay đổi tùy theo ý thích (ở đây là spring-mvc-servlet.xml)
spring-mvc-servlet.xml

Giải thích:
Ta cần chú ý 2 điểm:
- Khai báo base-package: khai báo package chứa các controller
- Bean view: khai báo kiểu “view” mà ta sử dụng. Trên đây ta sử dụng view là .jsp và các file view được chứa trong folder /WEB- INF/pages/. Vậy ta sẽ có các file view với dạng là /WEB-INF/pages/[tên-file-view].jsp

Controller

Ta bắt tay vào viết Controller đầu tiên
Trong src/main/java ta tạo package như khai báo trong spring-mvc-servlet.xml. Package mình xài trong ví dụ là com.fastcodevn.springmvc.hello_world. Tiếp tục ta tạo 1 class trong package này, đặt tên là HelloWorldController.java
Sau đây là nội dung của HelloWorldController.java

Nội dung rất đơn giản phải không các bạn, mình xin lưu ý 1 số điểm.
- Annotation @Controller: thông báo đây là 1 controller.
- Annotation @RequestMapping: value cho biết url của controller này, method chỉ ra phương thức request mà Controller xử lý (ở đây là phương thức GET).
- model.addAttribute: thêm 1 thuộc tính để trả về cho trang jsp.
- Return hello: trả về trang hello.jsp.

JSP

Tạo 1 file hello.jsp trong folder /WEB-INF/pages có nội dung như sau:

Chạy ứng dụng

Trước hết ta cần tạo 1 server để chạy project. Bạn có thể tải Tomcat ở đây và cài đặt vào máy.
Tiếp tục, vào File->New->Other…->Server. Ở cửa sổ hiện ra, chọn Tomcat v7.0, nhấn Next.
Làm quen với Spring MVC - Hello World
Trỏ tới folder nơi bạn cài đặt Tomcat. Next.
Làm quen với Spring MVC - Hello World
Chọn project và add vào server. Finish.
Làm quen với Spring MVC - Hello World
Thê là xong, bây giờ chỉ cần chuột phải vào server và chọn Start.
Làm quen với Spring MVC - Hello World
Tất cả thế là xong. Để kiểm tra thành quả, bạn gõ vào trình duyệt đường dẫn sau
Kết quả thu được là hình bên dưới.
Làm quen với Spring MVC - Hello World
Trên đây là bài viết hướng dẫn các bước cơ bản để làm quen với Spring MVC. Chúc các bạn làm quen nhanh chóng và thực hiện bài ví dụ này thành công. Mình có đính kèm theo source code của ví dụ này để các bạn tham khảo. Mọi ý kiến đóng góp các bạn có thể để lại comment ở bên dưới.

SHARE THIS

1 comment:

  1. Link hình die hết trơn rồi thớt ơi, up lại đi , để mình ngâm cứu với :p

    ReplyDelete