Apache Struts

出典: フリー百科事典『ウィキペディア(Wikipedia)』
2014年6月15日 (日) 14:15時点におけるHoneplus (トーク)による版 (文章調整・移動など体裁)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
移動先: 案内検索

テンプレート:Infobox Apache Struts(アパッチ・ストラッツ)は、Apacheソフトウェア財団のApache Strutsプロジェクトにて開発されているオープンソースJava Webアプリケーションフレームワークである。

概要

元々はテンプレート:仮リンクの作成したソフトウェアであり、2000年5月にApacheソフトウェア財団に寄付された。当初はJakarta Projectに位置しており、Jakarta Struts(ジャカルタ・ストラッツ)と呼ばれていた。2005年にApacheのトップレベルプロジェクトに昇格した。

Apache Tomcatなどのサーブレットコンテナ上で動かすことができる。サーブレットJSPによる開発環境下に登場したStruts1は広く受け入れられ、2005年頃にはJava Webフレームワークのデファクトスタンダードと呼ばれるほどの普及を見せていた[1][2]。しかしソフトウェア技術の進歩とともに欠点も多く指摘されるようになり、2007年にリリースされたStruts2ではそれまでの仕組みを捨て、WebWork2として開発されていた別のフレームワークをベースとしたものへと置き換えられている[3]

フレームワークにはModel View Controllerアーキテクチャが適用されている。類似したフレークワークとしてJSF (Java Server Faces) や Spring MVCフレームワークがある。

特徴 (Struts1)

整備されたJSPカスタムタグによってJavaコードはJSPファイルと分離され、従来のJSPのようにHTMLタグの中に<%%>で囲まれたスクリプトレットであるJavaソースコードを混在させる必要なく読みやすく洗練されたコーディングができるようになっていた。

主なStrutsのタグライブラリ

  • HTML
    HTMLのフォーム部分で利用する
  • Logic
    条件分岐や繰り返しなどの制御ロジックを提供
  • Beans
    Modelで定義されたJavaBeansにアクセスする機能を提供
  • Nested
    属性名の記述を省略可能にする
  • Tiles
    複数のJSPで利用する記述を共通化するテンプレート機能を提供

またStrutsではActionServletが用意されており、画面の遷移をコントロールする設定ファイル(struts-config.xml)を変更するだけで容易に遷移先を変えることができる機能を提供していた。 アクションサーブレットでは画面で入力された内容を検査する Validator の機能が用意されており、設定ファイル(validator-rules.xml)を変更するだけで入力チェックの仕様を変更することが可能であった。入力チェックするデータは一旦アクションフォームと呼ばれるBeansに格納された。

最終リリースは2008年10月4日の1.3.10で、2013年4月5日にサポート終了を迎えた[4]2014年現在でも多くのサイトがStruts1を使用しているが[5]、同年4月には深刻な脆弱性も発見されている[6]

特徴 (Struts2)

テンプレート:See also Struts2では、Struts1と比べて下記のような改善がなされている[3]

また、OGNL (Object-Graph Navigation Language) と呼ばれる式言語が搭載されており、これにより動的なパラメータを扱うことを可能としている[7]。一方、この機能ではたびたび深刻なセキュリティホールが発見されており、利便性の反面セキュリティ面の脆弱さも指摘されている[8]

派生版

Super Agile Struts (SAStruts)
Seasarプロジェクトが公開している、Struts1と独自のDIコンテナであるSeasar2をベースに、より素早い開発を行うことを目指したフレームワーク。
TERASOLUNA Server Framwork for Java
NTTデータが公開している、Struts1とSpring, iBATISをベースに、独自の拡張を行ったサーバサイドフレームワーク。

競合するMVCフレームワーク

Strutsは、よくドキュメント化され、成熟し、普及したフロントエンドのフレームワークであるが、「軽量」フレームワークとして分類されるSpring MVCStripesWicketPlay FrameworkApache Tapestryといったものがある。

StrutsからスピンオフしたWebWorkフレームワークは、Strutsオリジナルと同じアーキテクチャでの保持したうえでの強化と洗練を目的としていたが、StrutsとWebWorkは再びマージされ、Struts2としてリリースされた。

その他のJavaベースのMVCフレームワークとして、WebObjectsGrailsもある。

脚注

テンプレート:Reflist

関連項目

外部リンク

テンプレート:Portal

テンプレート:Apache テンプレート:Webアプリケーションフレームワーク

テンプレート:FLOSS-stub
  1. テンプレート:Cite web
  2. テンプレート:Cite web
  3. 3.0 3.1 テンプレート:Cite web
  4. テンプレート:Cite web
  5. テンプレート:Cite web
  6. テンプレート:Cite web
  7. テンプレート:Cite web
  8. テンプレート:Cite web