Struts 2 – Kiến thức cơ bản
1. Giới thiệu về Framwork Struts 2
Struts 2 là một framwork mở dùng cho việc tạo các ứng dụng web bằng Java và được phát triển với Craig McClanahan và được hỗ trợ bởi The Apache Software Foundation.
Struts 2 được phát triển từ Webwork. Sau khi làm việc độc lập trong một vài năm, cộng đồng Webwork và Struts liên kết lại với nhau để tạo thành một framwork mới. Struts 2 được đánh giá là đơn giản hơn trong cách sử dụng so với Struts 1 phiên bản cũ.
Struts 2 là một framework theo mô hình MVC:
- Model: là các lớp java định nghĩa các đối tượng để chứa dữ liệu (hay còn gọi là các POJO). Trong các lớp này chỉ đơn thuần định nghĩa ra các thuộc tính của đối tượng và getter, setter tương ứng với chúng.
- View: là các trang *.jsp, dùng để hiển thị dữ liệu đến người dùng. Việc lấy dữ liệu từ model để hiển thị lên view được thực hiện nhờ thành phần của Struts2 có tên là OGNL (Object-Graph Navigation Language) với các thẻ hay còn gọi là custom tag của nó được sử dụng trên các trang *.jsp
- Controller : là phần xử lý logic, trong Struts2 thì Controller còn được gọi là Action. Mỗi Action sẽ là một lớp java có chứa tham chiếu đến model, và từ đó có thể truy cập trực tiếp dự liệu từ model. Dữ liệu lấy từ model sẽ được lấy ra và xử lý bên trong các phương thức của lớp đó. Mỗi phương thức sau khi xử lý dữ liệu xong sẽ cập nhật lại những thay đổi vào model và sau đó chuyển hướng đến một View tương ứng để hiển thị kết quả của sự xử lý đến người dùng.
Struts 2 hỗ trợ Annotation dựa trên cấu hình để dễ dàng tạo và trực quan hơn. Lớp Action trong Struts 2 hoạt động như một mô hình trong ứng dụng web. Không giống như Struts, lớp Action trong Struts 2 là một đối tượng POJO chuẩn vì thế đơn giản hóa việc kiểm tra mã.
Struts 2 cũng kèm theo các hàm APIs để cấu hình bộ Interceptors nhằm làm giảm đáng kể các Coupling trong ứng dụng. Phần View trong Struts 2 được đánh giá cao và nó hỗ trợ nhiều kiểu kết quả khác nhau như Velocity, FreeMarker, JSP…
2. Kiến trúc của Struts 2
Kiến trúc Struts 2 dựa trên Framwork Webwork2. Nó sử dụng các công nghệ JEE chuẩn như Java Filters, JavaBeans, ResourceBundles, Locales, XML trong kiến trúc của nó.
Vòng đời của Struts bắt đầu khi có một yêu cầu được gởi từ phía Client. Yêu cầu này sẽ gởi đến ActionMapper:
- ActionMapper quyết định xem khi nào thì một Action nên được gọi. Sau đó chuyển kết quả cho FilterDispatcher.
- FilterDispatcher tiếp nhận kết quả từ ActionMapper và chuyển giao quyền điều khiển cho ActionProxy.
- ActionProxy đọc file cấu hình chẳng hạn như struts.xml. ActionProxy tạo một thể hiện của lớp ActionInvocation và chuyển giao quyền điều khiển cho lớp này.
- ActionInvocation chịu trách nhiệm thực hiện các lệnh được cài đặt. Nó gọi Interceptors nếu cần thiết, sau đó sẽ gọi Action.
- Khi Action trả về, ActionInvocation có trách nhiệm tìm kết quả thích hợp liên quan với mã kết quả được ánh xạ trong struts.xml.
- Interceptors được thực thi một lần nữa theo thứ tự ngược lại và trả lời đáp ứng cho Filter (Trong hầu hết các trường hợp là FilterDispatcher). Và kết quả được chuyển đến cho Servlet container và gởi trả lại cho Client.
3. Các tính năng của Struts2 framework
Một số tính năng tuyệt vời của Struts2:
- Các POJO form và POJO action: Struts2 đã loại bỏ các Form Action mà là một phần không thể tách rời của Struts framework. Với Struts2, bạn có thể sử dụng bất kỳ POJO nào để nhận dữ liệu từ form. Tương tự như vậy, với Struts2 bạn có thể xem bất kỳ POJO nào làm lớp Action.
- Hỗ trợ thẻ: Struts2 đã cải tiến các thẻ form và các thẻ mới nhằm giúp các nhà phát triển viết mã ít hơn.
- Hỗ trợ AJAX: Struts2 đã công nhận sự tiếp quản của các công nghệ Web2.0 và đã tích hợp hỗ trợ AJAX vào sản phẩm bằng cách tạo các thẻ AJAX có chức năng rất giống với các thẻ Struts2 tiêu chuẩn.
- Tích hợp dễ dàng: Việc tích hợp Struts2 với các framework khác như Spring, Tiles và SiteMesh giờ đây đã trở nên dễ dàng hơn.
- Hỗ trợ Template: Hỗ trợ tạo ra các view bằng việc sử dụng các tamplate.
- Hỗ trợ Plugin: Các hành vi của core Struts2 có thể được cải tiến bằng cách sử dụng các plugin. Hiện nay có khá nhiều plugin có sẵn cho Struts2.
- Profiling: Struts2 cung cấp tích hợp profiling để gỡ lỗi ứng dụng. Ngoài ra, Struts cũng cung cấp gỡ lỗi được tích hợp với sự trợ giúp của công cụ gỡ lỗi được xây dựng bên trong.
- Dễ dàng sửa đổi các thẻ Tag markups trong Struts2 có thể được tinh chỉnh bằng cách sử dụng các mẫu Freemarker. Điều này không yêu cầu kiến thức JSP hoặc java. Bạn có kiến thức cơ bản về HTML, XML và CSS đủ để sửa đổi các thẻ.
- Cấu hình ít hơn: Struts2 giúp bạn cấu hình ít hơn với sự trợ giúp của việc sử dụng các giá trị mặc định cho các cài đặt khác nhau. Bạn không cần phải cấu hình một cái gì đó trừ khi bạn muốn thiết lập khác các thiết lập mặc định được thiết lập bởi Struts2.
- Các công nghệ View: Struts2 có một sự hỗ trợ tuyệt vời cho nhiều lựa chọn view (JSP, Freemarker, Velocity và XSLT).
Như vậy trong bài viết giới thiệu về Struts2 đã giới thiệu các thành phần cơ bản của nó trong việc sử dụng để tạo ra các ứng dụng web theo mô hình thiết kế MVC. Struts2 đã và đang là một trong số các framework được sử dụng phổ biến trong quá trình phát triển ứng dụng web.
P.A Việt Nam cung cấp đa dạng các Plan Hosting đáp ứng yêu cầu của khách hàng
Hosting Phổ Thông
Hosting Chất Lượng Cao
Tham khảo các ưu đãi: https://www.pavietnam.vn/vn/tin-khuyen-mai/