Hướng dẫn Struts 2 - Giải pháp một cửa cho người mới bắt đầu



Bài viết này về Struts 2 Tutorial sẽ giúp bạn bắt đầu với Struts 2 framework để phát triển các ứng dụng web J2EE cùng với trình diễn mã.

Nếu bạn đang tìm kiếm một có thể giúp bạn phát triển các ứng dụng web JEE một cách nhanh chóng và hiệu quả, thì Struts 2 là giải pháp hoàn hảo cho bạn. Struts 2 là một framework mã nguồn mở được sử dụng nhiều trên thị trường. Thông qua Hướng dẫn Struts 2 này, tôi sẽ giúp bạn bắt đầu với nó cùng với các triển khai thực tế.

Dưới đây là các chủ đề tôi sẽ thảo luận trong hướng dẫn Struts này:





Struts là gì?

Theo thuật ngữ của giáo dân, Struts là một dựa trên khuôn khổ nguồn mở giúp phát triển ứng dụng web trong J2EE. Nómở rộng và quảng bá Mô hình, Chế độ xem, Bộ điều khiển ( MVC ) ngành kiến ​​trúc.Điều này làm cho các ứng dụng web được phát triển theo các công nghệ tiêu chuẩn nhưJSP, JavaBeans và XML, có thể bảo trì, mở rộng và linh hoạt hơn.

Khung Struts ban đầu được phát triển bởi Craig McClanahan và được bàn giao cho Apache Foundation vào tháng 5 năm 2000. Dần dần, nó chiếm được vị trí của một dự án Apache cấp cao nhất vào năm 2005 và sau đó vào tháng 2 năm 2007, nó được thay thế bởi Thanh chống 2 .



Khung Struts được dựa trên MVC (Bộ điều khiển xem mô hình) mô hình thiết kế. Mục đích chính của nó là tách Mô hình khỏi Chế độ xem và Bộ điều khiển trong ứng dụng để giảm sự phụ thuộc và thúc đẩy Tách mối quan tâm (SoC). Nói cách khác, nó đã giúp tách logic ứng dụng chủ yếu giao tiếp với cơ sở dữ liệutừ qua đó người dùng tương tác với ứng dụng và phiên bản giúp chuyển thông tin giữa Model và View.

Đặc điểm của Struts 2

  1. Các biểu mẫu và hành động dựa trên POJO :Các lớp hành động trong Struts được coi như bộ điều khiển trong ứng dụng. Họ chịu trách nhiệm phản hồi hành động của người dùng, thực thi logic nghiệp vụ và trả về kết quả với chế độ xem phải được hiển thị. Nó cũng hoạt động như lớp Model.
  2. Thẻ được cải thiện và tùy chỉnh: Nhiều loại thẻ khác nhau đã được giới thiệu trong Struts 2 như thẻ giao diện người dùng, thẻ điều khiển, thẻ dữ liệu, v.v. hỗ trợ phát triển ứng dụng.
  3. Chức năng AJAX: Struts 2 hỗ trợ công nghệ ajax thường được sử dụng để tạo yêu cầu không đồng bộ. Nó giúp nâng cao hiệu suất của ứng dụng bằng cách chỉ gửi dữ liệu trường bắt buộc đến máy chủ.
  4. Tích hợp dễ dàng: Nó cung cấp tích hợp dễ dàng với các khung công tác Web khác như , DWR, SiteMesh và Tiles.
  5. Cấu hình tối thiểu: Trong khi sử dụng ứng dụng Struts 2, không yêu cầu cấu hình chi phí. Nó hoạt động với các cấu hình tối thiểu trong đó hầu hết các cài đặt lấy giá trị mặc định trừ khi có bất kỳ sự sai lệch nào.
  6. Tích hợp Công nghệ Chế độ xem: Với Struts2, bạn có thể dễ dàng tích hợp với nhiều công nghệ xem khác nhau như XSLT, JSP, Freemarker, vận tốc, v.v.
  7. Chủ đề và Mẫu: Struts 2 cung cấp hỗ trợ cho 3 loại chủ đề:
    1. Xhtml
    2. Đơn giản
    3. Css_xhtml

Ở đây XHTML là chủ đề mặc định cho Struts 2 và chủ yếu được sử dụng cho giao diện thông thường.

Bây giờ bạn đã biết Struts là gì và các tính năng khác nhau của nó, bây giờ chúng ta hãy tiếp tục với bài viết Hướng dẫn về Struts này và tìm hiểu về kiến ​​trúc của nó.



Ngành kiến ​​trúc

Kiến trúc Struts - Hướng dẫn Struts 2 - EdurekaNhư bạn có thể thấy trong sơ đồ trên, Struts sử dụng cấp cao Kiến trúc MVC . Ở đây, bộ lọc servlet điều phối Struts2 được sử dụng để triển khai Bộ điều khiển trong khi các hành động được sử dụng để triển khai Mô hình và Chế độ xem được thực hiện bằng cách kết hợp các loại kết quả và kết quả. Trong kiến ​​trúc này, luồng chung, liên kết và tích hợp với các thành phần khác được kích hoạt bởi ngăn xếp giá trị và OGNL. Trên hết, các cấu hình cho các ứng dụng web cùng với các hành động, bộ chặn, kết quả, v.v. cũng giúp truyền tải rất nhiều thông tin.

Bây giờ, hãy để tôi giải thích toàn bộ quy trình làm việc trong vòng đời của một yêu cầu do người dùng tạo. Dưới đây tôi đã liệt kê quy trình làm việc từng bước để bạn hiểu rõ hơn về cách hoạt động của Struts:

  • Nó bắt đầu với yêu cầu Người dùng được gửi đến máy chủ để yêu cầu một số tài nguyên.
  • Yêu cầu này sau đó được xử lý bởi Bộ điều phối bộ lọc để xác định Hành động thích hợp.
  • Hơn nữa, các chức năng đánh chặn được định cấu hình đúng sau đó sẽ được áp dụng cho yêu cầu như xác thực, tải tệp lên, v.v.
  • Khi Hành động đã chọn được quyết định và nó được thực thi dựa trên hoạt động được yêu cầu.
  • Trong trường hợp, bất kỳ yêu cầu xử lý hậu kỳ nào, các bộ đánh chặn đã cấu hình đều được gọi.
  • Cuối cùng, kết quả được cung cấp bởi khung nhìn và được trả lại cho người dùng.

Tôi hy vọng điều này sẽ xóa quy trình làm việc trong ứng dụng Struts. Bây giờ, hãy xem tất cả những gì bạn cần trong hệ thống của mình để bắt đầu với Struts trong phần tiếp theo của Hướng dẫn Struts 2 này

Thiết lập môi trường

Dưới đây tôi đã liệt kê những điều cần thiết cơ bản để bắt đầu với Struts 2:

  • Java
    Trong trường hợp bạn chưa cài đặt Java trên hệ thống của mình, bạn có thể tham khảo Cài đặt Java bài báo.
  • Tomcat
    Nếu bạn không có Tomcat trong hệ thống của mình, bạn có thể truy cập đây để tải xuống miễn phí.
  • IDE (tốt nhất là Eclipse)
    Cuối cùng, bạn cần IDE Eclipse để phát triển ứng dụng.

Sau khi thực hiện xong, bạn đã sẵn sàng chân ướt chân ráo với Struts. Trong phần tiếp theo của Hướng dẫn Struts 2 này, tôi sẽ cung cấp cho bạn một số khái niệm cơ bản về Struts 2.

Các khái niệm cơ bản

1. Cấu hình

Trong bất kỳ ứng dụng struts nào, có hai tệp cấu hình chính:

  1. Tệp struts.xml: Tệp này chứa thông tin vềcấu hình được sửa đổi dưới dạng hành động. Nó chủ yếu được sử dụng để ghi đè các cài đặt mặc định trong một ứng dụng. Tệp này thường được tạo trong thư mục WEB-INF / class trong bất kỳ dự án Struts nào.
  2. Tệp struts.properties: Tệp này cung cấp một cơ chế có thể thay đổi hoạt động của khung. Từ mộtframework sử dụng một số thuộc tính mà bạn có thể thay đổi bất kỳ thuộc tính nào theo yêu cầu của bạn.

2. Hành động

Hành động hoặc Lớp hành động là khái niệm cốt lõi trong bất kỳ ứng dụng Struts 2 nào, vì chúng hoạt động như bộ điều khiển trong mẫu MVC. Nói cách khác, các lớp Hành động chứa logic nghiệp vụ giúp xử lý dữ liệu. Ngoài điều này ra, lớp hành động cũng chịu trách nhiệm vềphản hồi yêu cầu của người dùng, thực thi logic nghiệp vụ. Nó cũng giúp khuôn khổ xác định và trả về một kết quả trên cơ sở tệp cấu hình (struts.xml), trở lại người dùng để hiển thị trang Xem.

Các lớp hành động của Stuts2 không phải là lớp đơn về bản chất, tức là một phiên bản của lớp này sẽ được tạo với mỗi yêu cầu. Vì vậy, chúng không cần phải an toàn theo luồng và đơn giản và độc lập. Điều này làm cho việc kiểm tra các lớp này dễ dàng hơn nhiều.

Một tệp hành động có thể được tạo theo ba cách, như sau:

  • Lớp hành động đơn giản
    Bất kỳ lớp java cụ thể nào cũng có thể được sử dụng làm lớp hành động Struts 2 nhưng yêu cầu duy nhất là lớp đó phải chứa một phương thức thực thi () với kiểu trả về String. Dưới đây là mã để tạo một Lớp hành động đơn giản:
package com.edureka.struts2.action public class DemoAction {public String execute () {return 'Chào mừng!' }}
  • Giao diện triển khai hành động
    Một lớp Hành động Struts 2 cũng có thể được tạo bằng cách triển khai giao diện com.opensymphony.xwork2.Action. Nó chứa một phương thức duy nhất, tức là execute () phải được thực thi bởi lớp thực thi. Bằng cách triển khai giao diện này, bạn có thể sử dụng một số hằng số như SUCCESS, ERROR, NONE, INPUT và LOGIN có thể được sử dụng cho các trang kết quả.
    Đoạn mã dưới đây hiển thị một ví dụ cho điều tương tự:
package com.edureka.struts2.action import com.opensymphony.xwork2.Action public class DemoAction thực hiện Action {public String execute () {return SUCCESS}}
  • Mở rộng Hành động Lớp Hỗ trợ

Các lớp hành động trong Struts 2 thường mở rộng lớp Hỗ trợ hành động là lớp triển khai mặc định của giao diện Hành động. Nó cung cấp các chức năng bắt buộc khác nhau để phát triển ứng dụng web như xác thực dữ liệu, thông báo cấp hành động, thông báo lỗi cấp hành động, thông báo lỗi cấp trường và đọc gói tài nguyên, v.v.

Dưới đây là cách thực hiện tương tự:

package com.edureka.struts2.action import com.opensymphony.xwork2.ActionSupport public class DemoAction mở rộng ActionSupport {@Override public String execute () ném Exception {return SUCCESS}}

3. Đánh chặn

Đánh chặn hoạt động như một trong những trụ cột chính của khung Struts 2. Nó không là gì ngoài một vật thểđược gọi trong quá trình xử lý trước và xử lý sau một yêu cầu.Nó giúp kiểm soát và duy trì quá trình chuyển đổi nhịp nhàng của yêu cầu và chu kỳ phản hồi.

Ưu điểm chính của việc sử dụng máy đánh chặn là nó có thể cắm được. Ý tôi là, trong trường hợp bạn không còn sử dụng bất kỳ mối quan tâm cụ thể nào nhưxác thực, xử lý ngoại lệ, ghi nhật ký, v.v., bạn có thể dễ dàng xóa nó khỏi ứng dụng mà không cần phải triển khai lại. Đối với điều này, tất cả những gì bạn cần làm là xóa mục nhập khỏi tệp struts.xml.

Khung Struts2 cung cấp một tập hợp toàn diện các bộ đánh chặn được xác định trước và các ngăn xếp bộ đánh chặn phổ biến mà tôi đã liệt kê trong bảng dưới đây:

Máy đánh chặn Sự miêu tả
bí danh Điều này cho phép các tham số có các bí danh tên khác nhau theo yêu cầu của người dùng
hộp kiểm Điều này giúp quản lý các hộp kiểm bằng cách thêm giá trị tham số là false cho các hộp kiểm chưa được chọn
convertError Điều này đặt thông tin lỗi từ việc chuyển đổi Chuỗi thành các loại tham số trong trường lỗi của hành động
createSession Điều này hoàn toàn tạo ra một phiên HTTP trong trường hợp một phiên không tồn tại
gỡ lỗi Điều này cung cấp các màn hình gỡ lỗi khác nhau cho nhà phát triển
executeAndWait Điều này chuyển người dùng sang trang chờ trung gian khi hành động đang được thực hiện trong nền
ngoại lệ Điều này ánh xạ các ngoại lệ được đưa ra từ hành động đối với một kết quả
fileUpload Điều này tạo điều kiện dễ dàng tải lên tệp trong Struts 2
i18n Điều này giúp theo dõi ngôn ngữ được chỉ định trong phiên của người dùng
nhật ký Điều này cung cấp việc ghi nhật ký đơn giản cho người dùng bằng cách tạo đầu ra là tên của hành động đang được thực thi
params Điều này giúp thiết lập các tham số yêu cầu trên hành động
chuẩn bị Điều này được sử dụng để thực hiện công việc tiền xử lý
Hồ sơ Điều này cho phép thông tin hồ sơ đơn giản cho các hành động ghi nhật ký.
phạm vi Điều này lưu trữ và truy xuất trạng thái của hành động trong phiên người dùng hoặc phạm vi ứng dụng
ServletConfig Điều này cung cấp cho phép hành động truy cập vào các thông tin dựa trên servlet khác nhau
hẹn giờ Điều này cung cấp thông tin hồ sơ đơn giản
mã thông báo Điều này giúp kiểm tra hành động tìm mã thông báo hợp lệ để ngăn việc gửi biểu mẫu trùng lặp
Thẩm định Điều này cung cấp hỗ trợ xác thực cho các hành động khác nhau

4. Giá trị Stack

ValueStacktrong Struts2 là vùng lưu trữ nơi toàn bộ dữ liệu của ứng dụng được lưu trữ để xử lý yêu cầu. Dữ liệu này được giữ trongActionContextcác đối tượng sử dụngThreadLocalđể truy xuất các giá trị cụ thể cho bất kỳ chuỗi yêu cầu khách hàng cụ thể nào.

5. OGNL

OGNL là viết tắt của Object-Graph Navigation Language. Nó là một ngôn ngữ biểu đạt mạnh mẽ giống như JSP và chủ yếu được sử dụng chotham chiếu và thao tác dữ liệu có trong ValueStack. Hơn nữa, nó cũng hỗ trợ chuyển và chuyển đổi loại dữ liệu.

Tương tự như JSP, OGNL chứa một đối tượng gốc trong ngữ cảnh ứng dụng. Do đó, bạn có thể cung cấp tham chiếu của đối tượng mặc định bằng cách sử dụng ký hiệu đánh dấu mà trong trường hợp này được biểu thị bằng ký hiệu pound. Struts 2 framework triển khai OGNL bằng cách xây dựng một bản đồ ActionContext. Dưới đây tôi đã liệt kê các thành phần của bản đồ ActionContext:

  • Ứng dụng
  • Phiên họp
  • Ngăn xếp giá trị
  • Yêu cầu
  • Thông số
  • Thuộc tính

Với điều này, bạn đã thông qua những kiến ​​thức cơ bản về Struts 2. Trong phần tiếp theo của bài viết Struts 2 này, hãy trực tiếp vào mã và thực hiện tất cả những gì bạn đã học cho đến bây giờ.

công ty sử dụng ngôn ngữ lập trình r

Bản trình diễn hướng dẫn Struts 2

Ở đây tôi sẽ tạo một ứng dụng đơn giản mà bạn cần nhập tên của mình và ứng dụng sẽ chào đón bạn. Dưới đây là ảnh chụp màn hình của cấu trúc dự án hoàn chỉnh:

Như bạn có thể thấy, trong dự án này, chúng tôi sẽ tạo ra 5 tệp:

  1. HelloWorld.java
  2. index.jsp
  3. welcome.jsp
  4. web.xml
  5. struts.xml

Lưu ý: Trước khi bạn bắt đầu dự án này, hãy đảm bảo rằng bạn đã cài đặt Tomcat trên hệ thống của mình.

BƯỚC I: Trong Eclipse của bạn, đi tới Tệp> Mới> Dự án Web động. Nhập Tên dự án và nhấp vào Thời gian chạy mới.

BƯỚC II: Tại đây, bạn cần chọn phiên bản Apache Tomcat mà bạn đã tải xuống trên hệ thống của mình và nhấp vào Tiếp theo.

BƯỚC III: Tiếp theo, nhấp vào Duyệt qua và điều hướng đến thư mục nơi các phụ thuộc Tomcat đã được lưu. Sau khi hoàn tất, hãy nhấp vào Kết thúc và tiến hành Tạo dự án.

BƯỚC IV: Bây giờ chúng ta hãy thêm các tệp jar Struts sẽ được yêu cầu để thực hiện thành công dự án này. Bạn có thể tải xuống JAR từ đây . Khi bạn đã sẵn sàng với các tệp JAR, hãy sao chép các tệp JAR và dán chúng vào WebContent> WEB-INF> lib.

BƯỚC V: Bây giờ chúng ta đã sẵn sàng với tất cả các cấu hình, hãy thiết lập các tệp mã, bắt đầu với HelloWorld.java. Đối với điều này, nhấp chuột phải vào dự án> Mới> Lớp. Điền vào gói và tên lớp và nhấp vào kết thúc.

BƯỚC VI: Nhập mã dưới đây vào HelloWorld.java tập tin.

package com.edureka public class HelloWorld {private String name public String getName () {return name} public void setName (String name) {this.name = name} public String execute () {return 'success'}}

BƯỚC VII: Tiếp theo tạo mới index.jsp tệp trong WebContent và nhập mã bên dưới:

 

BƯỚC VIII: Bây giờ, hãy tạo lại một welcome.jsp tệp trong WebContent và nhập mã bên dưới:

Chào mừng:

BƯỚC IX: Bây giờ đi tới WebContent> WEB-INF và nhập mã bên dưới vào web.xml tập tin.

Struts2Demo index.html struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareandExecuteFilter struts2 / *

BƯỚC X: Cuối cùng, trong Tài nguyên Java> src, tạo struts.xml tập tin

welcome.jsp

BƯỚC XI: Bây giờ đi đến index.jsp và nhấp chuột phải vào nó. Chọn Run on Server để thực thi ứng dụng.

Phần này sẽ đưa chúng ta đến phần cuối của bài viết này về Hướng dẫn Struts 2. Nếu bạn muốn biết thêm về Java, bạn có thể tham khảo .

Bây giờ bạn đã hiểu Hướng dẫn Struts 2 là gì, hãy xem của Edureka, một công ty học trực tuyến đáng tin cậy với mạng lưới hơn 250.000 người học hài lòng trải dài trên toàn cầu. Khóa đào tạo và cấp chứng chỉ về Java J2EE và SOA của Edureka được thiết kế cho sinh viên và các chuyên gia muốn trở thành Nhà phát triển Java. Khóa học được thiết kế để cung cấp cho bạn khởi đầu về lập trình Java và đào tạo bạn về cả khái niệm Java cốt lõi và nâng cao cùng với các khung Java khác nhau như Hibernate & Spring.

Có một câu hỏi cho chúng tôi? Vui lòng đề cập đến nó trong phần nhận xét của bài viết “Hướng dẫn Struts 2” này và chúng tôi sẽ liên hệ lại với bạn trong thời gian sớm nhất.