
Apache Struts (trước đây là thuộc dự án Apache Jakarta, Struts bây giờ là một dự án độc lập) là một bộ khungmã nguồn mở cho việc phát triển cácứng dụng web bằngJ2EE. Nó sử dụng và mở rộng JavaServlet API để giúp cho các nhà phát triển áp dụng kiến trúcMVC (Model-view-controller). Struts ra đời bởiCraig McClanahan và cống hiến choTổ chức Apache vào tháng 5,2000.
Bộ khung (framework) cho phép thiết kế và hiện thực các ứng dụng web ở quy mô lớn có thể được đảm nhiệm bởi nhiều nhóm khác nhau. Cụ thể hơn, các nhà thiết kế trang, các nhà phát triểnthành phần và các nhà phát triển khác có thể xử lý phần việc của họ một cách trình tự và độc lập. Nó hỗ trợI18N (hỗ trợ quốc tế), một thư viện thẻ tùy biến phong phú, hiển thị theo dạng lát gạch và kiểm chứng nội dụng (form validation). Nó cũng hỗ trợ nhiều lớp hiển thị khác nhau (presentation layers), bao gồmJSP,XML/XSLT,JavaServer Faces (JSF), vàVelocity, cũng như nhiều lớp mô hình khác nhau, bao gồmJavaBeans vàEJB.
Mặc dù Struts được lập tài liệu hướng dẫn rất tốt, trở thành một bộ khung phổ biến và vững chắc cho việc phát triển các ứng dụng Java, nó vẫn đang gặp những thử thách mới từ các bộ khung MVC "nhẹ và đơn giản hơn" mới ra đời nhưSpring vàTapestry. Chuẩn và bộ khung mớiXForms có thể là một lựa chọn khác cho việc kiểm chứng nội dung các trang web phức tạp (web form validations) kèm theo Struts trong tương lai.
Các bộ khung MVC khác mà không phụ thuộc vào Java gồm cóRuby on Rails vàWebObjects.