Struts Là Gì

Đối cùng với các bạn thiết kế viên java website. Chắc hẳn đã có lần nghe không ít về Apache Struts. vậy Apađậy Struts là gì, sự khác biệt thân Struts 1 và Struts 2 là như thế nào? Ứng dụng Struts 2 vào dự án thực tiễn. Các bạn hãy thuộc mình khám phá ngay lập tức vào bài viết này.

Bạn đang xem: Struts là gì

Apabít Struts là gì?

Apabịt Struts là 1 trong framwork mã nguồn msinh sống cho bài toán cách tân và phát triển những áp dụng website bằng J2EE. Nó áp dụng cùng không ngừng mở rộng Java Servlet API sẽ giúp đỡ cho những lập trình sẵn viên áp dụng kiến trúc MVC (Model-view-controller).

Các yếu tố của Struts Framework

Basic: cung ứng các nguyên tố cơ phiên bản để kiến thiết vận dụng website bên trên căn cơ MVC2Tag Libraries: cung ứng một số tag library nhằm xây đắp vận dụng dẫu vậy Struts có công dụng ko nên cần sử dụng tag library này nhưng mà sử dụng thẳng luôn luôn HTML controlTiles Plugins: cung cấp việc sản xuất áp dụng theo mô hình Master Page nhằm áp dụng trên toàn trang webValidator Plugins: cung ứng validation trên phía VPS thông qua Việc cấu hình công bố các form cùng control nhập liệu bên trên xml.

Cơ chế hoạt động của Struts Framework.

*

Khi user gửi trải nghiệm truy hỏi xuất vận dụng web, request được đưa mang lại ActionServlet, đó là Servlet được chế tạo sẵn trong Framework để làm công dụng như Controllerkích hoạt Server trích xuất yếu tố request cảm nhận nhằm so sánh với ngôn từ được mapping trong tập tin thông số kỹ thuật struts-config.xml để tìm thấy những yếu tắc tương ứng cấn xử lýNếu không kiếm thấy đã báo lỗi 404 tuyệt lỗi khớp ứng. trái lại, trường hợp tìm thấy đang khẳng định action với View khớp ứng của phần cách xử lý. View tại chỗ này bao gồm form đón quý hiếm nhập và kết xuất nhằm trả về tín đồ dùngGiá trị tương xứng của form nhập được lưu trữ vào Form Bean, thực tiễn là một trong những Java Object (kích hoạt Form) tất cả đựng các ở trong tính – state và những phương thức truy cập get, mix. Tại đây, trường hợp tất cả áp dụng validation thì dữ liệu được checking, checking thành công thì mới có thể được lưu trữ vào khung bean cùng kích hoạt gửi dữ liệu của FormBean mang đến kích hoạt tương ứng nhằm xử lýkích hoạt khi tiếp nhận FormBean đang điện thoại tư vấn nhân tố cách xử trí khớp ứng tứ Java Bean tuyệt Java Object tương ứng tốt kết nối lấy tài liệu trường đoản cú DB về nếu như tất cả để xử lýSau Khi xử lý hoàn toàn, kích hoạt đang nên trả hiệu quả trnghỉ ngơi về kích hoạt Servlet mặt khác mapping trong struts-config.xml nhằm khẳng định view kết xuất cho những người cần sử dụng dựa trên tác dụng xử trí trên struts-config.Lúc xác minh kết thúc, tài liệu từ bỏ tác dụng cách xử trí kích hoạt cùng Form Bean sẽ tiến hành đổ vào trang JSPhường kêt xuất tương ứng và công dụng thành công xuất sắc chuyển về kích hoạt Servletkích hoạt Servlet response công dụng về client – hoàn toàn quá trình giải pháp xử lý.Tổng quan liêu về Struts 2 Framework.

Struts2 là framework được áp dụng để tạo nên áp dụng website dựa vào mẫu mã kiến thiết MVC. Struts2 không chỉ là phiên phiên bản tiếp theo của Struts1, cơ mà nó là bản nâng cấp hoàn chỉnh của kiến trúc Struts, đơn giản dễ dàng hóa rộng mô hình Struts 1 Framework như là rút ít gọn gàng tập tin cấu hình hay được dùng annotation thay thế sửa chữa mang đến tập tin thông số kỹ thuật.

Xem thêm: " Log In Là Gì Và Cấu Trúc Cụm Từ Log On Trong Câu Tiếng Anh

Một số tính năng đổi mới của Strut2 FrameworkJavaBeans được áp dụng thay thế Action size cùng tất cả cách tiến hành hướng đẫn để kích hoạt thực thi (mặc định là phương thức exedễ thương không có tmê mệt số truyền cùng kiểu trả về là kiểu dáng String) nhằm mục tiêu tăng kỹ năng tái thực hiện của những object trong các áp dụng với các framework khác. điều đặc biệt, chúng thuận lợi thuật luôn thể đến testing từng yếu tắc chức năng với thành phầnSử dụng cả annotation với tập tin thông số kỹ thuật XML rút ít gọnSử dụng ngôn ngữ mới Object Graphic Notation Language (OGNL) thay thế đến EL của JSPSử dụng bộ taglib độc nhất cố mang đến 4-5 cỗ taglib vào Struts 1 Framework và JSTL 1.1 trong những JSP..Các POJO size với POJO action: Struts2 sẽ đào thải những Form Action mà là một phần bắt buộc tách bóc tránh của Struts framework. Với Struts2, chúng ta có thể thực hiện ngẫu nhiên POJO nào để dấn dữ liệu trường đoản cú khung. Tương từ điều đó, với Struts2 bạn cũng có thể xem ngẫu nhiên POJO như thế nào làm cho lớp Action.Hỗ trợ thẻ: Struts2 đã cách tân những thẻ khung cùng các thẻ new nhằm mục tiêu giúp những công ty cải tiến và phát triển viết mã thấp hơn.Hỗ trợ AJAX: Struts2 sẽ công nhận sự tiếp quản của những technology Web2.0 cùng đã tích hợp cung cấp AJAX vào thành phầm bằng phương pháp chế tạo những thẻ AJAX tất cả tính năng khôn cùng tương tự với những thẻ Struts2 tiêu chuẩn.Tích hòa hợp dễ dàng dàng: Việc tích vừa lòng Struts2 với những framework khác ví như Spring, Tiles cùng SiteMesh bây giờ sẽ trở nên dễ ợt rộng.Hỗ trợ Template: Hỗ trợ tạo nên các view bằng việc áp dụng các tamplate.Hỗ trợ Plugin: Các hành vi của core Struts2 hoàn toàn có thể được đổi mới bằng phương pháp thực hiện những plugin. Lúc này có rất nhiều plugin tất cả sẵn mang đến Struts2.Profiling: Struts2 cung cấp tích hòa hợp profiling nhằm gỡ lỗi vận dụng. Bên cạnh đó, Struts cũng hỗ trợ gỡ lỗi được tích hợp với sự giúp sức của cơ chế gỡ lỗi được xây dừng bên phía trong.Dễ dàng sửa thay đổi các thẻ Tag markups vào Struts2 hoàn toàn có thể được tinh chỉnh bằng cách thực hiện những mẫu Freemarker. Điều này sẽ không thử khám phá con kiến ​​thức JSP. hoặc java. Quý Khách bao gồm kỹ năng cơ bạn dạng về HTML, XML và CSS đủ nhằm sửa thay đổi những thẻ.Cấu hình ít hơn: Struts2 giúp đỡ bạn thông số kỹ thuật ít hơn với sự giúp đỡ của câu hỏi sử dụng những quý hiếm mặc định cho những thiết đặt không giống nhau. Quý khách hàng không cần phải cấu hình một chiếc nào đấy trừ lúc bạn muốn thiết lập cấu hình khác những tùy chỉnh cấu hình khoác định được thiết lập bởi vì Struts2.Các công nghệ View: Struts2 bao gồm một sự hỗ trợ hoàn hảo đến nhiều chắt lọc view (JSPhường., Freemarker, Velođô thị cùng XSLT)

Các bạn hãy xem hình sau đây để hiểu rõ hơn về việc khác hoàn toàn thân Struts 1 va Struts 2.

*

Cơ chế hoạt động vui chơi của Struts 2 Framework.

Cơ chế vận động tựa như nlỗi quy mô MVC của Struts1 Framework mà lại điểm khác biệt nó là pull-framework nghĩa là dữ liệu được đem thẳng trường đoản cú action để đưa đến view.

Controller: FilterDispatcher là servlet Filter gồm nhiệm vụ mừng đón request cùng dựa vào cấu hình (có thể là xml hay annotation) nhằm xác định action ví dụ nhằm chào đón request cho xử lýModel: Action là một java class đảm bảo an toàn đặc tính của một object trong quy mô hướng đối tượng người tiêu dùng cùng thỏa đặc điểm của JavaBeanView: Result là 1 kết xuất hay một dạng khẳng định action hay trang đưa về cùng trình diễn bên trên Web Browser.
*

Dựa trên digram sinh sống bên trên, có thể lý giải vòng đời của một request của người dùng trong Struts2 nhỏng sau:

Người sử dụng gửi request tới sever nhằm từng trải một số tài nguyên ổn (ví dụ các trang).FilterDispatcher chú ý yêu cầu cùng tiếp nối khẳng định action thích hợp.Chức năng interceptor sẽ thông số kỹ thuật được vận dụng nlỗi chứng thực đúng theo lệ, upload file, vvkích hoạt đã lựa chọn được xúc tiến để thực hiện thao tác làm việc được thưởng thức.Một lần nữa, interceptor đã cấu hình được vận dụng nhằm tiến hành ngẫu nhiên post-processing trường hợp cần thiết.Cuối cùng công dụng được chuẩn bị bởi vì view và trả công dụng cho tất cả những người dùng.Ứng dụng hello world với Struts 2.

Sau trên đây bản thân đã giải đáp các bạn chế tạo ra ứng dụng hello world với Struts 2 bên trên IDE Intellij.

Tạo project maven với cấu tạo nlỗi sau:
*
ngôn từ tệp tin pom.xml 4.0.0 com.sun.struts.example struts-example war 0.0.1-SNAPSHOT Simple Struts CRUD Simple in-memory CRUD Struts 2 example application UTF-8 2.3.16.1 org.apabít.struts struts2-core $struts2.version log4j log4j 1.2.17 javax.servlet servlet-api 2.4 provided javax.servlet jsp-api 2.0 provided struts-crud maven-compiler-plugin 3.1 1.6 1.6 org.mortcất cánh.jetty jetty-maven-plugin 8.1.7.v20120910 CTRL+C 8999 10 src/main/webapp/WEB-INF/website.xml Nội dung tệp tin web.xml Struts Simple CRUD struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter struts2 /* Tạo tệp tin Employee.javapackage com.sun.struts.example.model;import java.io.Serializable;public class Employee implements Serializable private Integer employeeId;private Integer age;private String firstName;private String lastName;public Employee() public Employee(Integer employeeId, String firstName, String lastName, Integer age) this.employeeId = employeeId;this.firstName = firstName;this.lastName = lastName;this.age = age;public Integer getEmployeeId() return employeeId;public void setEmployeeId(Integer employeeId) this.employeeId = employeeId;public Integer getAge() return age;public void setAge(Integer age) this.age = age;public String getFirstName() return firstName;public void setFirstName(String firstName) this.firstName = firstName;public String getLastName() return lastName;public void setLastName(String lastName) this.lastName = lastName;Tạo tệp tin EmployeeDao.javapackage com.sun.struts.example.dao;import com.sun.struts.example.model.Employee;import java.util.List;public interface EmployeeDao public List getAllEmployees(); public Employee getEmployee(Integer id); public void update(Employee emp); public void insert(Employee emp); public void delete(Integer id);Tạo file InMemoryEmployeeDao.javapackage com.sun.struts.example.dao;import com.sun.struts.example.model.Employee;import java.util.ArrayList;import java.util.List;public class InMemoryEmployeeDao implements EmployeeDao { private static ArrayList employees; static employees = new ArrayList(); employees.add(new Employee(1, "Quang", "Hòa", 26)); employees.add(new Employee(2, "Quang", "Thuận", 18));