Struts1

Tomcat で使えるWebアプリを作成するためのフレームワークの一つです。Jakarta apache プロジェクトの一つであり 大変よく作られています。
更新日 2016-02-13

特徴

セッション管理などサーバーサイド特有の面倒なインプリメントをしっかり肩代わりしてくれます。パターン化された 実装方法を学び取れればサイトの構築にかかるコストを大幅に削減できます。拡張性もあるので、カスタマイズやトリッキーな 実装も可能になっています。

利用の準備

ダウンロード

コチラから最新版をダウンロードします。解凍した中のwebapps ディレクトリにあるstruts-blank.war が基本の雛型になります。 Web アプリを作る際には、コレをコピーして使う事になります。試しにsample1 という名で準備してみましょう。
cd /tmp
wget "http://sunsite.tus.ac.jp/pub/apache/struts/binaries/struts-1.2.9-bin.tar.gz"
tar zxvf struts-1.2.9-bin.tar.gz

cd struts-1.2.9-bin/webapps
cp struts-blank.war $CATALINA_HOME/webapps/sample1.war
http://localhost:8080/sample1 で表示できれば成功です。

処理の流れ

外部からのリクエストを受け付け、レスポンスデータを返送する。この一連の流れの中で、どの部分がフレームワークが 自動処理し、どの部分をユーザー定義の実装とするか。順に確認します。

リクエストの受け付け

リクエストはまず、コンテナであるTomcat が受け付けます。一般的なJSP に対するリクエストはTomcat に実装されている「Jasper 2 JSP Engine」 が処理してしまいます。リクエストがアクション(デフォルトでは*.do) の時だけStruts が呼び出されます。まずStruts フレームワークの基幹部を構成する RequestProcessor が呼び出されます。

リクエストデータの自動格納

リクエストデータを、アクションフォームと呼ばれるインスタンスのプロパティに割り当てます。通常のサーブレットでは HttpServletRequest.getParameter() で取得できましたが、単一の文字列として扱われており、場合によっては変換等が 必要でした。アクションフォームのプロパティは、型が決まっており、より扱い易くなっています。

リクエストデータの検証

さらにリクエストデータの整合性チェックをも自動化する事を試みました。

Action::excute() メソッドの呼び出し

リクエストデータの自動格納(場合によっては自動検証も)が終わると、URL(アクション名)に応じたアクションクラスのexcute メソッドが 呼び出されます。このアクションクラスをユーザーは実装します。