Cấu trúc Struts 2




Struts 2 là một MVC 2 Framework, được tổ hợp bởi rất nhiều thành phần. Mẫu MVC trong Struts 2 bao gồm 5 thành phần cốt lõi, đó là:

  • Action

  • Interceptor

  • Value Stack / OGNL

  • Result type

  • Các công nghệ View

Từ các thành phần cốt lõi trên, phần dưới sẽ trình bày cho các bạn về Struts Flow theo hai cách, đó là Basic Flow và Standard Flow. Qua đó giúp bạn có cái nhìn khái quát về vòng đời của Struts.

Struts 2 Basic Flow

Bạn theo dõi sơ đồ dưới đây:

Struts 2 Basic Flow

Các bước trên có thể diễn giải như sau:

1. Người dùng gửi một yêu cầu (request) cho Action.

2. Controller triệu hồi ActionInvocation

3. ActionInvocation triệu hồi mỗi Interceptor và Action

4. Một kết quả được tạo ra

5. Kết quả được gửi lại ActionInvocation

6. Một HttpServletResponse được tạo ra

7. Phản hồi (response) được gửi tới người dùng

Struts 2 Standard Flow (Cấu trúc Struts 2)

Bạn theo dõi sơ đồ sau:

Struts 2 Flow

1. Người dùng gửi một yêu cầu (request) cho Action

2. Container ánh xạ request này trong web.xml file và lấy tên lớp của Controller

3. Container triệu hồi Controller (StrutsPrepareAndExecuteFilter hoặc FilterDispatcher). Bắt đầu từ Struts 2.1, đó là lớp StrutsPrepareAndExecuteFilter

4. Controller lấy thông tin cho Action từ ActionMapper

5. Controller triệu hồi ActionProxy

6. ActionProxy lấy thông tin của Action và Interceptor Stack từ Configuration Manager mà lấy thông tin từ struts.xml file

7. ActionProxy chuyển tiếp request tới ActionInvocation

8. ActionInvocation triệu hồi mỗi Interceptor và Action

9. Một kết quả được tạo ra

10. Một kết quả được tạo ra

11. Một HttpServletResponse được tạo ra

12. Phản hồi (response) được gửi tới người dùng