Struts là một framework mã nguồn mở từ Apache Jakarta cho các ứng dụng xây dựng bằng cách sử dụng Model View Controller (MVC) thiết kế mô hình. Struts cung cấp cơ sở hạ tầng cơ bản để triển khai MVC cho phép các nhà phát triển tập trung vào logic business. framework này cũng linh hoạt và có thể được mở rộng để đáp ứng các yêu cầu cụ thể cho dự án.
Mục tiêu của bài viết này là để giúp người dùng nhanh chóng có được bắt đầu với việc sử dụng Struts trong các ứng dụng của mình. Nó cũng cho thấy sử dụng Struts cho thực hiện (MVC) kiến trúc trong các ứng dụng web của mình.
Kiến trúc MVC
Mục đích của kiến trúc MVC là để tách logic business và dữ liệu của các ứng dụng từ các presentation của dữ liệu cho người dùng. Sau đây là mô tả nhỏ của mỗi thành phần trong kiến trúc MVC:
Model: Mô hình đại diện cho dữ liệu của ứng dụng. Bất cứ điều gì mà một ứng dụng sẽ vẫn tồn tại trở thành một phần của mô hình. Mô hình này cũng xác định các cách truy cập vào dữ liệu (các logic nghiệp vụ của ứng dụng) cho các thao tác. Nó không biết gì về cách thức các dữ liệu sẽ được hiển thị bằng ứng dụng. Nó chỉ cung cấp dịch vụ truy cập dữ liệu và sửa đổi nó.
View: view đại diện trình bày của ứng dụng. View Các truy vấn các mô hình cho nội dung của nó và làm cho nó. Cách mô hình sẽ được đưa ra được định nghĩa bằng cách xem. View không phụ thuộc vào dữ liệu hoặc thay đổi các ứng dụng logic và cùng vẫn còn ngay cả khi trải qua logic kinh doanh sửa đổi.
Controller: Tất cả các yêu cầu người sử dụng các ứng dụng thông qua bộ điều khiển. Bộ điều khiển chặn các yêu cầu từ xem và chuyển nó để các mô hình cho các hành động thích hợp. Căn cứ vào kết quả của hành động trên dữ liệu, điều khiển hướng người dùng đến xem tiếp theo.
Các đối tượng Controller
Bộ điều khiển được thực hiện bởi class ActionServlet. Nó cung cấp một địa điểm cho trung tâm xử lý tất cả các yêu cầu khách hàng
Tất cả các URIs yêu cầu với các kiểu *. được thực hiện ánh xạ tới servlet này trong mô tả triển khai như sau.
Một yêu cầu URI phù hợp với mô hình này sẽ có các hình thức sau đây.
http://www.my_site_name.com/mycontext/actionName.do
Các mapping trước đó được gọi là mapping mở rộng, tuy nhiên, bạn cũng có thể chỉ định đường dẫn mapping nơi mô hình một kết thúc với /* như hình dưới đây.
Một yêu cầu URI phù hợp với mô hình này sẽ có các hình thức sau đây.
http://www.my_site_name.com/mycontext/do/action_Name
Các mapping hợp lý các nguồn tài nguyên mô tả ở trên cho phép sửa đổi các mappings tài nguyên trong file cấu hình mà không cần phải thay đổi mã ứng dụng, đây là chương trình mapping cũng được gọi là Mapping Resource Mulitplexed. Controller cung cấp một điểm truy cập tập trung cho tất cả các yêu cầu presentationtier. Controller yêu cầu mỗi đại biểu đến với các RequestProcessor.
Các đối tượng dispatcher
Các RequestProcessor chức năng như điều phối và xử lý các yêu cầu của khách hàng bởi instantiating (hoặc tái sử dụng) một bộ xử lý yêu cầu, và tạo thành một bean tương ứng. Các lỗi được tạo ra, hoặc thrown trường hợp ngoại lệ do các bean form và handlers yêu cầu được xử lý bởi các RequestProcessor,trong đó ảnh hưởng đến chức năng quản lý view của các RequestProcessor.Form bean hỗ trợ RequestProcessor để lưu trữ các dữ liệu mẫu/hoặc dàn dựng mô hình dữ liệu trung gian yêu cầu của view. RequestProcessor sử dụng khai báo trong file struts-config.xml, như hình dưới đây, cho instantiating yêu cầu xử lý cụ thể.
Tất cả yêu cầu đến sẽ được phân cấp của controller cho dispatcher, đó là đối tượng RequestProcessor. RequestProcessor xem xét các yêu cầu URI cho một hành động định danh, tạo ra một trường hợp xử lý yêu cầu sử dụng thông tin trong các đối tượng cấu hình ActionMapping(giải thích trong phần kế tiếp), và gọi requesthandler.execute(…).Các method execute(...) của trình xử lý yêu cầu có trách nhiệm tương tác với các mô hình ứng dụng. Tùy thuộc vào kết quả, trình xử lý yêu cầu sẽ trả về một đối tượng cấu hình ActionForward(ActionForward là đại diện thời gian chạy các phần tử và được giải thích trong phần Danh mục chính sử dụng ActionForward) cho RequestProcessor. Các RequestProcessor sẽ sử dụng các đối tượng ActionForward cho gọi view tiếp bằng cách gọi hoặc là RequestDispatcher.forward(...) hoặc response.sendRedirect (...).
Command Pattern using ActionMapping
Struts cung cấp một cách khai báo các chỉ định ánh xạ giữa các đường dẫn servlet trong URI therequest và yêu cầu xử lý thích hợp bằng cách sử dụng cú pháp XML. Thực hiện này tương tự như lệnh mẫu [GOF]. Đoạn sau đây là từ file struts-config.xml, các khai báo được sử dụng để tạo ra một đối tượng cấu hình ActionMapping, là đại diện thời gian chạy các các phần tử .
Vắn tắt sau đây giải thích các thuộc tính được sử dụng trong việc kê khai trước đó.
Path : path tương đối trong context các yêu cầu HTTP được sử dụng để xác định mapping này action.
Type : tên Class sẽ được sử dụng cho việc tạo một thể hiện của trình xử lý yêu cầu này.
Name : Tên hợp lý các một JavaBean, còn được gọi là bean form, mà sẽ được sử dụng để giữ dữ liệu form. Các form bean sẽ được lưu trong phạm vi quy định cách sử dụng tên này.
Scope : yêu cầu, phạm vi phiên cho việc lưu form bean.
Ngoài ra còn rất nhiều xử lý, kỷ thuật mà Struts MVC đã dùng, nói chung có thể tóm tắt lại như sau :
Những sự kiện sau đây xảy ra khi các browser Client một yêu cầu HTTP.
- ActionServlet nhận được các yêu cầu.
- Các file struts-config.xml có các nội dung liên quan đến các hành động, ActionForms, ActionMappings và ActionForwards.
- Trong thời gian khởi động ActionServelet việc đọc file struts-config.xml và tạo ra một cơ sở dữ liệu các đối tượng cấu hình. Sau khi xử lý các yêu cầu ActionServlet các quyết định theo đề cập với đối tượng này.
Khi ActionServlet nhận được yêu cầu nó những nhiệm vụ sau đây.
- Bundles tất cả các giá trị yêu cầu vào một class JavaBean trong đó mở rộng Struts class ActionForm.
- Quyết định trong đó action xử lý yêu cầu.
- Xác thực dữ liệu nhập vào do người sử dụng.
- Các class action xử lý yêu cầu với sự giúp đỡ các các thành phần mô hình. Mô hình Các tương tác với các cơ sở dữ liệu và xử lý các yêu cầu.
- Sau khi hoàn tất các yêu cầu chế biến các class hành động trả về một ActionForward với điều khiển.
- Căn cứ vào ActionForward bộ điều khiển sẽ gọi view thích hợp.
- Các phản ứng HTTP được kết xuất trở lại cho người sử dụng do các thành phần view.
Không có nhận xét nào:
Đăng nhận xét