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ộ khung mã nguồn mở cho việc phát triển các ứng dụng web bằng J2EE. Nó sử dụng và mở rộng Java Servlet API để giúp cho các nhà phát triển áp dụng kiến trúc MVC (Model-view-controller). Struts ra đời bởi Craig McClanahan và cống hiến cho Tổ 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ển thà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ồm JSP, XML/XSLT, JavaServer Faces (JSF), và Velocity, cũng như nhiều lớp mô hình khác nhau, bao gồm JavaBeans 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ới XForms 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.