Giới thiệu Struts Framework (Struts Framework-Phần 1)

Apache Struts 2 là một bộ thư viện , một bộ khung để phát triển các ứng dụng web Java. Framework này được thiết kế để sắp xếp các chu trình phát triển đầy đủ, từ việc xây dựng tới việc triển khai, bảo trì ứng dụng. Chuỗi bài viết sau sẽ giúp cho bạn dễ dàng nghiên cứu và nắm rõ Struts framework thông qua các ví dụ trực quan.


Apache Struts2 ban đầu được biết đến giống như WebWork 2. Sau khi làm việc độc lập vài năm công đồngWebWork và Struts gộp lại để tạo nên Struts2. Phiên bản mới này của Struts đơn giản và thân thiện hơn cho việc sử dụng.
 Struts 2 là một framework pull-MVC tức là các dữ liệu được hiển thị tới User đều phải được lấy ra từ các Action.
 Struts2 hỗ trợ chú thích cấu hình cơ bản mà dựa vào đó bạn có thể dễ dàng thực hiện một cách trực quan hơn. Lớp Action hoạt động như model trong ứng dụng web. Khác với Struts, lớp Action của Struts 2 là những đối tượng POJO đơn giản, do đó đơn giản hóa việc kiểm ra của các đoạn mã. Struts2 cũng đi kèm với các API mạnh mẽ để cấu hình "đánh chặn" làm giảm đáng kể các "khớp nối" trong ứng dụng.

 Cấu trúc của Struts

 Cấu trúc của Struts 2 dựa trên framework WebWork 2. Nó thúc đẩy các công nghệ JEE chuẩn như: Java Filters, JavaBeans, ResourceBundles, Locales, XML... trong kiến trúc của nó. Sau đây là sơ đồ cấu trúc của Struts:

1. Vòng đời bình thường của struts bắt đầu khi yêu cầu được gửi từ client. Kết quả này được gọi từ servlet container do đó được truyern thông qua bộ lọc tiêu chuẩn.
2. Bộ lọc FilterDispatcher được gọi từ việc tham khảo ActionMapper để xác định thêm một Action nên được gọi.
3. Nếu ActionMapper tìm thấy một Action có thể được gọi thì FilterDispatcher sẽ kiểm soát tới ActionProxy.
4. ActionProxy đọc file cấu hình (ví dụ : struts.xml ). ActionProxy tạo ra các thể hiện của lớp ActionInvocation và các control.
5. ActionInvocation chịu trách nhiệm triển khai các dòng lệnh mẫu. Nó lần lượt gọi các Interceptors ( Nếu được yêu cầu ) và sau đó gọi Action.
6. Sau khi Action trả về, các ActionInvocation chịu trách nhiệm tìm kiếm các kết quả phù hợp với các mã Action được ánh xạ trong file cấu hình struts.xml.
7. Các Interceptor được thực hiện một lần nữa với thứ tự đảo ngược và sự đáp lại được trả lại cho bộ lọc (trong nhiều trường hợp tới FilterDispatcher). Và kết quả sau đó được gửi tới servlet container rồi lần lượt được gửi trở lại cho client.

Vòng đời xử lý yêu cầu



1. Yêu cầu được tạo ra bởi người dùng và được gửi tới Servlet container.
2. Servlet container gọi bộ lọc FilterDispatcher và được xác định Action thích hợp.
3. Từng Interceptor được áp dụng trước khi gọi Action. Các Interceptors thực hiện các nhiệm vụ như: Logging, Validation, File Upload, Double-submit guard ...
4. Action được thực hiện và kết quả (Result) được tạo ra bởi Action.
5. Đầu ra của Action là ra trong view (JSP, Velocity, etc) và kết quả được trả về cho người dùng.

Hỗ trợ AJAX trong Struts 2


Ajax là một thuật ngữ nổi tiếng trong phát triển ứng dụng web. Từ Struts 1.x, các nhà phát triển đã phải viết và duy trì các đoạn mã trong Javascript để thêm sự hỗ trợ AJAX. Nhưng bây giờ với Struts 2 mang đến cho bạn Ajax ‘out of the box’. Không có các đoạn mã javascript, không cần sửa lỗi có các trình duyệt khác nhau , chỉ cần cấu hình và thực hiện.
 Struts 2 đi kèm với các tab Ajax mà có thể sử dụng trực tiếp không cần viết mã JavaScript. Struts 2 cũng hỗ trợ thư viện Dojo.

 Và bây giờ chúng ta đã nắm được kiếm trúc của framework struts và vòng đời hoạt động của nó, trong phần tiếp theo chúng ta sẽ cùng làm thử một ứng dụng "Hello World" để nắm rõ hơn về Struts.


2 nhận xét:

  1. Em mới học struts2. Anh có thể cho em thông tin liên hệ như gmail hay facebook được không ạ ? nhiều vấn đề em làm y như hướng dẫn mà vẫn không được. Rất mong tham khảo từ anh. Em cảm ơn

    Trả lờiXóa
    Trả lời
    1. Email của mình : ncm2312@gmail.com có vấn đề gì bạn cũng có thể post lên đây. Thân chào bạn !

      Xóa

Rất mong các ý kiến của các bạn khi đọc bài viết này !