ここでは、HelloApcoordinatorに基づいて、Apcoordinatorアプリケーションに必要な各種ファイルと動作の概要を説明します。
HelloApcoordinatorアプリケーションの各種ファイル
ここでは、HelloApcoordinatorアプリケーションの作成ウィザードによって作成されたファイルについて説明します。
HelloApcoordinatorアプリケーションでは、大きく分けて7種類のファイルが生成されます。これら7種類16ファイルの概要は次の表のとおりです。
ファイル種別 | ファイル名 | 内容 |
---|---|---|
制御ページ | main.jsp | Apcoordinatorアプリケーションでは、クライアントからのリクエストを制御ページが受け取ります。そのため、アプリケーション内には必ず1つ以上の制御ページが必要です。 |
ファクトリクラスの拡張 | HelloFactory.java | ファクトリクラスを拡張することで、セション管理機能やDB連携機能を使用することができます。詳しくは“Apcoordinator ユーザーズガイド”を参照してください。 |
データBean | HelloHeadBean.java | 入出力ページとビジネスクラスの間のデータ受渡しを行うJavaBean形式のクラスです。 |
ビジネスクラス | HelloHandler.java | ビジネスロジックを記述するJavaのクラスです。 |
入出力ページ | helloHeadPage.jsp | 入出力項目を持つJSPページを入出力ページと呼びます。1つの画面を複数の入出力ページで構成することができます。 |
関係定義ファイル | commands.map | Apcoordinatorでは、アプリケーション内でビジネスクラス名やJSPファイル名を直接指定しないで、関係定義ファイルを用いて間接的に指定します。関係定義ファイルにはコマンドマップとページマップがあります。 |
その他 | web.xml | ウィザードは上記のファイルのほかに3つのファイルをプロジェクト内に作成します。 |
上記のファイルの中で重要なのは、入出力ページ、データBean、ビジネスクラスの3つです。これら3つのファイルによってWebアプリケーションの主な構成要素である 画面、データ、ロジックを分離して作成することが可能です。次節では、これら3つのファイルがアプリケーションとしてどのように動くのかを見ていきます。
HelloApcoordinatorの動作概要
ここでは、HelloApcoordinatorの動作概要を説明します。
まずは、初期起動時の動作です。
初期起動時の動作の概念図を下図に示します。下図のように初期起動は9つのフェーズに分かれています。
次に上記の図より、具体的な動きを追っていきます。図中の番号と、その動作を下記の表に示します。
動作の名称 | 内容 |
---|---|
1. リクエストの送信 | まず、ブラウザから制御ページにリクエストが送信されます。 |
2. uji:dispatchタグの起動 | 制御ページに記述されてあるuji:dispatchタグから、Apcoordinatorが起動します。 |
3. コマンドマップから初期起動用のメソッドを検索 | コマンドマップ内から初期起動用のメソッドを検索します。 |
4. データBeanを領域にセット | HelloHandlerクラスのstartup()メソッド内でDispatchContextクラスのsetResponseBean()メソッドが呼ばれ、データBeanに領域名がセットされます。 |
5. uji:includeタグの起動 | 次に、制御ページに記述されているuji:includeタグが呼ばれ、Apcoordinatorが起動します。 |
6. 領域名からデータBean名を検索 | uji:includeタグのpaneアトリビュートに記述されている領域名からデータBeanを検索します。 |
7. ページマップから入出力ページを検索 | 検索されたデータBeanをもとに、ページマップから対応する入出力ページを検索します。 |
8. 入出力ページをuji:includeタグにセット | 入出力ページがuji:includeタグのある場所にセットされます。 |
9. レスポンスの送信 | 最後に生成された表示用データをブラウザに送信します。 |
以上の9つのフェーズを経て、レスポンスが送信されます。ただし、5~8はuji:includeタグの数だけ繰り返されます。
次に、ブラウザからデータが送られて来る場合を考えます。この場合は、下図のように10のフェーズに分かれます。
先ほどと同様に、上記の図より、具体的な動きを追っていきます。図中の番号と、その動作を下記の表に示します。
初期起動時と異なるのは、リクエスト受信時にデータBeanにデータがセットされ、ビジネスクラスに渡されるところです。
動作の名称 | 内容 |
---|---|
1. リクエストの送信 | まず、ブラウザから制御ページにリクエストが送信されます。 |
2. uji:dispatchタグの起動 | 制御ページに記述されてあるuji:dispatchタグから、Apcoordinatorが起動します。 |
3. データBeanにデータをセット | ブラウザから送信されたデータをデータBeanにセットします。 |
4. コマンドマップからメソッドを検索 | コマンドマップ内からメソッドを検索します。 |
5. データBeanを領域にセット | HelloHandlerクラスのok()メソッド内でDispatchContextクラスのsetResponseBean()メソッドが呼ばれ、データBeanに領域名がセットされます。 |
6. uji:includeタグの起動 | 次に、制御ページに記述されているuji:includeタグが呼ばれ、Apcoordinatorが起動します。 |
7. 領域名からデータBean名を検索 | uji:includeタグのpaneアトリビュートに記述されている領域名からデータBeanを検索します。 |
8. ページマップから入出力ページを検索 | 検索されたデータBeanをもとに、ページマップから対応する入出力ページを検索します。 |
9. 入出力ページをuji:includeタグにセット | 入出力ページがuji:includeタグのある場所にセットされます。 |
10. レスポンスの送信 | 最後に生成された表示用データをブラウザに送信します。 |