Strutsアプリケーションを構成するコンポーネント (Struts)
アクションサーブレット
- StrutsのMVCモデル2のコントローラ
- 通常は、Strutsによって提供されるクラスである。ActionServletをそのまま利用する
- アプリケーションに対するHTTPリクエストがすべてのアクションサーブレットに集約されるようにWebコンテナに設定を行い、MVCモデル2のコントローラとして動作されるようにする。
- アクションサーブレットが行う処理は、Webブラウザから送信されたHTTpリクエストを受け取り、そのリクエストパスから処理すべきモジュールを判断し、該当モジュールのコントローラであるリクエストプロセッサを呼び出すだけである。
リクエストプロセッサ
- リクエストプロセッサは、モジュール内におけるコントローラの働きをする。
- 実際のHTTPリクエストの処理は、主にこのリクエストプロセッサが制御する。
- アクションサーブレットから呼び出され、HTTPリクエストのオブジェクトが渡されると、このオブジェクトと設定情報(struts-config.xml)を基にHTTPリクエスト処理をする。
- 処理の手順
- HTTPリクエストパラメータの内容をアクションフォームBeanと呼ばれるBeanにセットし、HTTPリクエストパスに対応したアクションを呼び出す。
- アクションでは、HTTPリクエストに対数実際の処理が行われる。
- アクションでの処理が終了すると、HTTPレスポンスを生成するための処理を行う。
- アクションフォワードオブジェクトによってアクションから指定されたJSPを呼び出して、HTTPレスポンスを生成する。
- Strutsアプリケーションのデフォルトでは、HTTPレスポンスを生成するコンポーネントは、JSPである。
アクションフォームBean
- アクションフォームは、HTTPリクエストパラメータの値を保持する。
- 各リクエストパラメータはBeanの属性の形で保持
- HTTPリクエストパスごとに利用するアクションフォームBeanが設定ファイル(struts-config.xml)に設定されているので、リクエストプロセッサは適切なアクションフォームBeanのインスタンスを生成し、リクエストパラメータをBeanの属性にセットする。
- 属性がセットされたアクションフォームBeanは、Strutsが提供するActionFormクラスを継承して作成する。
- アクションフォームBeanにはユーザの入力値を検証する機能や初期の機能などを実装することもできる。
アクション
- アクションは、構築するアプリケーションの本来の目的であるビジネスロジックを呼び出すためのコンポーネントである。
- HTTPリクエストパスに対応したアクションを設定ファイル(struts-config.xml)に定義することで、適切なアクションをリクエストプロセッサが呼び出す。
- 呼び出されたアクション内では、モデルに実装されているビジネスロジックを実行する。
- アクション終了時には、次にHTTPリクエストを処理するリソースを指定する。
- HTTPレスポンスの生成を行う場合はJSPを指定し、さらにビジネスロジックを呼び出す必要がある場合は、アクションを指定する。
- 指定は、次のリソースを表現したアクションフォワードを返却することで行う
- 基本的なアクションは、Strutsが提供するActionクラスを継承して作成する。
モデル
- モデルは、ビジネスロジックやアプリケーションの状態を表したコンポーネントである。
- Strutsは、モデルの実装方法に関与しないのでEJBで作成してもJavaの通常クラス(POJO:plain Old Object)として作成してもよい。
- 処理の内容で、結果をHTTPレスポンスとして返却する必要が場合は、モデルでの処理結果情報を一旦、呼び出し元のアクションに返却する。
- アクションでは、この情報をコンテキストに保存しておく
- コンテキストは、Webコンテナが提供するデータの保存場所のようなもので、コンテキストに保存されているデータは、JSPを含む様々なコンポーネントからアクセスすることが可能
アクションフォワード
- アクションフォワードは、アクションの次に処理を行うべきリソースを表現
- 通常は、アクション内で生成されてリクエストプロセッサへ返却される。
- アクションフォワードを受け取ったリクエストプロセッサは、指定のリソース(JSPなど)を呼び出す
JSP
- Strutsアプリケーションでは、HTTPレスポンスの生成(ブラウザに返却するためのビューの生成)は標準設定では、JSPによって行われる。
- この処理は、レンダリングとも呼ばれる
- JSPでは、Strutsが提供するカスタムタグを用いて、さまざまな動的情報を持ったページを生成する。
- StrutsアプリケーションのJSPには、スクリプトレットによるロジックは極力記述せず、カスタムタグ化」する方法が推奨されている。
設定ファイル
- Strutsを動作させるには、最低2つの設定ファイルが必要で、xmlフォーマットで記述する。
- Webデプロイメントディスクリプタ(web.xml)
- Webコンテナにアクションサブレットを認識させ、Strutsアプリケーションを配置する。
- モジュール設定ファイル(struts-config.xml)
- Struts自身の設定ファイル
- Webデプロイメントディスクリプタ(web.xml)