Strutsとは、Apache Software Foundationによって開発されているオープンソースのWebアプリケーションフレームワークの名称である。
StrutsはMVC(Model-View-Controller)と呼ばれるアーキテクチャによって、Java Servlet APIやJSP(JavaServer Pages)などを用いたサーバーサイドのWebアプリケーションを構築することができる。あらかじめ整備されたJSPのライブラリが多数用意されており、比較的簡便でミスも紛れ込みにくくなっている。ちなみにサーブレットコンテナにはApache Tomcatなどが用いられることが多い。
なお、Strutsはオープンソースソフトウェア(OSS)として無償で提供されており、誰でも自由に利用し、再開発・再配布を行うことができる。
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/03/18 07:25 UTC 版)
| |
|
| 開発元 | Apacheソフトウェア財団 |
|---|---|
| 初版 | 2001年 |
| 最新版 |
7.0.3 / 2025年3月7日 [1]
|
| リポジトリ | |
| プログラミング 言語 |
Java |
| プラットフォーム | クロスプラットフォーム |
| 種別 | Webアプリケーションフレームワーク |
| ライセンス | Apache License 2.0 |
| 公式サイト | struts |
Apache Struts(アパッチ・ストラッツ)は、Apacheソフトウェア財団のApache Strutsプロジェクトにて開発されているオープンソースのJava Webアプリケーションフレームワークである。
元々はクレイグ・マクラナハンの作成したソフトウェアであり、2000年5月にApacheソフトウェア財団に寄付された。当初はJakarta Projectに位置しており、Jakarta Struts(ジャカルタ・ストラッツ)と呼ばれていた。2005年にApacheのトップレベルプロジェクトに昇格した。
Apache Tomcatなどのサーブレットコンテナ上で動かすことができる。サーブレットとJSPによる開発環境下に登場したStruts1は広く受け入れられ、2005年頃にはJava Webフレームワークのデファクトスタンダードと呼ばれるほどの普及を見せていた[2][3]。しかしソフトウェア技術の進歩とともに欠点も多く指摘されるようになり、2007年にリリースされたStruts2ではそれまでの仕組みを捨て、WebWork2として開発されていた別のフレームワークをベースとしたものへと置き換えられている[4]。
フレームワークにはModel View Controllerアーキテクチャが適用されている。類似したフレークワークとしてJSF (Java Server Faces) や Spring MVCフレームワークがある。
整備されたJSPカスタムタグによってJavaコードはJSPファイルと分離され、従来のJSPのようにHTMLタグの中に<%と%>で囲まれたスクリプトレットであるJavaソースコードを混在させる必要なく読みやすく洗練されたコーディングができるようになっていた。
主なStrutsのタグライブラリ
またStrutsでは ActionServlet が用意されており、画面の遷移をコントロールする設定ファイル (struts-config.xml) を変更するだけで容易に遷移先を変えることができる機能を提供していた。 アクションサーブレットでは画面で入力された内容を検査する Validator の機能が用意されており、設定ファイル (validator-rules.xml) を変更するだけで入力チェックの仕様を変更することが可能であった。入力チェックするデータは一旦アクションフォームと呼ばれるBeansに格納された。
最終リリースは2008年10月4日の1.3.10で、2013年4月5日にサポート終了を迎えた[5]。2014年現在でも多くのサイトがStruts1を使用しているが[6]、同年4月には深刻な脆弱性も発見されている[7]。
Struts2では、Struts1と比べて下記のような改善がなされている[4]。
また、OGNL (Object-Graph Navigation Language) と呼ばれる式言語が搭載されており、これにより動的なパラメータを扱うことを可能としている[8]。一方、この機能ではたびたび深刻なセキュリティホールが発見されており、利便性の反面セキュリティ面の脆弱さも指摘されている[9]。
Struts2の多数のセキュリティーホールが攻撃対象になり、多数の被害を出している。
Strutsは、よくドキュメント化され成熟し普及した、フロントエンドのフレームワークであるが、「軽量」フレームワークとして分類される、Spring MVC, Stripes, Apache Wicket, Play Framework, Apache Tapestry といったものがある。
StrutsからスピンオフしたWebWorkフレームワークは、Strutsオリジナルと同じアーキテクチャを保持したうえでの強化と洗練を目的としていたが、StrutsとWebWorkは再びマージされ、Struts2としてリリースされた。
その他のJavaベースのMVCフレームワークとして、WebObjectsやGrailsもある。
固有名詞の分類
| ウェブアプリケーション |
CPanel Pylons Apache Struts JavaFX Serend |
| Webサーバ |
Apache HTTP Server CPanel Apache Struts JavaServer Pages Nginx |