Apcoordinatorで作成するWebアプリケーションが、どのようなプログラムやファイルで構成されるのかを説明します。次のようなユーザー登録を行うWebアプリケーションを例に説明します。
このアプリケーションでは、ユーザー情報を入力する画面で氏名と住所を入力して登録ボタンを押すと、入力された情報がWebサーバーに送られます。Webサーバー上のプログラムはユーザー登録の処理を実行し、新しいユーザーIDを作成します。そのあと、登録完了画面が表示され、そこにユーザーIDが表示されます。
入出力ページ、ビジネスクラス、データBean
ApcoordinatorではWebアプリケーションを主に次の要素で構成します。
画面を実現するJSPファイルです。例では、ユーザー情報入力画面と登録完了画面をそれぞれ入出力ページとして作成します。入出力ページは主にHTMLタグとUJIタグを使って記述します。UJIタグはApcoordinatorが提供するタグであり、プログラムが出力したデータを表示したり、HTMLでは手間のかかる画面を簡単に作成したりするために使用します。
Webサーバー上で行う処理を実行するJavaのクラスです。例では、新しいユーザーを登録しユーザーIDを作成する処理をビジネスクラスに記述します。
画面から入力されたデータや、ビジネスクラスから出力されて画面に表示させるデータを記憶するJavaのクラスです。例では、ユーザーの氏名と住所、ユーザーIDを記憶するデータBeanを作成します。
以上の3種類の要素は次のように連携して動作します。
画面にユーザーが入力したデータは、データBeanに記憶されます。
そのデータBeanが、ビジネスクラスに入力として与えられます。
ビジネスクラスはユーザーが入力したデータをデータBeanから取得し、必要な処理を行います。また、画面に表示させたいデータをデータBeanにセットして出力します。
ビジネスクラスが出力したデータBeanは入出力ページに与えられます。入出力ページに記述されたUJIタグがデータBeanからデータを取得して画面に表示します。HTMLタグはそのまま画面に表示されます。
コマンドマップ
前述の例では、データを入力する画面が1個しかありませんでした。一般には入力画面が複数あり、サーバー上で実行する処理はそれぞれの入力画面ごとに異なります。例として、前述の例にユーザー登録を削除する機能を追加するため、ユーザーIDを入力する入出力ページを追加し、ビジネスクラスにはユーザー登録を削除する処理を追加します。
この場合、登録処理と削除処理を呼びわける必要があります。このような呼び分けは「コマンドマップ」と呼ぶファイルで指定します。呼び分けの方法は次のようになります。
各入力画面ごとに、別々のデータBeanのクラスを作成します。
入力されたデータをどのクラスのデータBeanに記憶させるのかを、入出力ページ内に記述します。
コマンドマップには、各データBeanのクラスに対し、呼び出されるビジネスクラスのメソッド名を記述します。
例では次のようになります。
2つのデータBeanのクラスUserInfo, RemoveInfoをそれぞれユーザー情報入力画面、削除ID入力画面に作成します。
ユーザー情報入力用の入出力ページではUserInfoクラスを、削除ID入力用の入出力ページではRemoveInfoを使うように記述します。
ビジネスクラスに2つのメソッドaddUserとremoveUserを作成し、それぞれ登録、削除に必要な処理を記述します。
コマンドマップには以下の対応を記述します。
UserInfoクラス → addUserメソッド
RemoveInfoクラス → removeUserメソッド
コマンド
1つの画面の中にボタンが複数あって、押されたボタンによって処理を切り替えたい場合があります。例えば、前述の例でユーザー情報を入力する画面に「登録」「検索」の2つのボタンがあって、押されたボタンに応じてそれぞれ別の処理を行うとします。
このような切り替えには次のように「コマンド」を使用します。
各ボタンに「コマンド名」を付けます。コマンド名は、ボタンが押された時に実行したい処理の名前です。例では、登録ボタンに「add」、検索ボタンに「search」というコマンド名を付けます。
コマンドマップには、データBeanのクラスとコマンド名との組に対し、呼び出されるビジネスクラスのメソッド名を記述します。例では次の対応を記述します。
UserInfoクラス, addコマンド → addUserメソッド
UserInfoクラス, searchコマンド → searchUserメソッド
Webアプリケーションのまとめ
Webアプリケーションの構成要素のうち、ここまでで説明したものをまとめます。
画面を実現するJSPファイルです。
Webサーバー上で行う処理を実行するJavaのクラスです。
画面から入力されたデータや、ビジネスクラスから出力されて画面に表示されるデータを記憶するJavaのクラスです。
データBeanクラスとコマンド名の組と、呼び出されるビジネスクラスのメソッド名の対応を記述したファイルです。コマンド名とは、実行したい処理の名前であり、画面上のボタンに付けます。
Webアプリケーションには以下の構成要素も必要ですが、詳しくは“第3部 Webアプリケーションの開発”で説明します。
ブラウザからのリクエストを受け取り、サーバー上での処理の開始を指示するJSPページです。
ビジネスクラスが出力したデータBeanと、表示に使用する入出力ページの対応を記述したファイルです。
以上の構成要素の連携を図に示します。
ここでは、簡単なWebアプリケーションを例にApcoordinatorの提供する最も基本的な機能を説明しました。Apcoordinatorでは、Webアプリケーションの作成を支援する以下の機能も提供します。
画面の作成にUJIタグが使用できます。プログラムが出力したデータを表示したり、HTMLでは手間のかかる画面を簡単に作成したりするために使用できます。
同一のクライアントからのリクエストを1つのセションとして扱うことができます。また、セションごとに情報を管理することが容易に実現できます。
画面を複数の領域に分け、各領域で異なるデータBeanと入出力ページを使用できます。