Weberフレームワーク(以降Weberと呼びます)は、Itscoolプロジェクトが開発している オープンソースのソフトウェアで、Webアプリケーションの開発に必要となる諸機能を 提供するフレームワークです。
Weberの基本機能はユーザからのリクエストを受信し、開発者が用意する適切なアクション
クラスに割り当て、実行結果を元に遷移先の画面を呼び出すことです。
WeberはMVCというソフトウェア設計モデルに基づいて開発しています。
これによりWeb画面と業務ロジックを分離し、それぞれの関連をWeberが吸収することによって、
役割に応じた開発を個々に行うことができます。
また、Webアプリケーションの開発で必要となる認証機能やトランザクション管理機能、
暗号化機能もフレームワークの一部として提供していますので、
Webアプリケーションの開発では業務処理に専念することができます。
Weberの基本動作は以下の通りです。
まず、クライアントから発生したリクエストは、まずControllerの機能を請け負う
FrontServletクラスが受け取ります。
このFrontServletはMVCモデルのCの役割を持つコンポーネントです。
Weberは、ひとつのアプリケーションで一つのFrontServlet
クラスが全てのリクエストを処理します。
FrontServletはこのフレームワークで使用される各コンポーネントを連携させ
アプリケーション全体の制御を行うコンポーネントですが、開発者は原則として
直接扱う必要はありません。
FrontServletクラスとそのほかの主要なクラスの相関関係を以下に図示します。
【FrontServletと関連するクラス】
+--------+ (1) +------------+ +----------+ | |----->| Front | (2) | Action | | Web | (7) | Servlet |----->| Mapping | | |<-----| | | | +--------+ +------------+ +----------+ A | | | | | | | |(3)+------------+ | | +-->| | | | | Bean |<---+ | | | | | | | +------------+ | | | |(5) | | (4) +------------+ | | +----->| | | | (6) | Action |----+ +----------| | +------------+ |
ActionMappingクラスは、Web画面(入力)と業務ロジック(Action)及びWeb画面で
入力されたリクエストパラメータを保持するBeanクラス、結果表示用のWeb画面(出力)
との関連を保持するクラスです。
これらの関連情報はあらかじめXML形式で記述された外部ファイルに記述しておき、
Webアプリケーション起動時にActionMappingクラスに展開されます。
Actionクラスは、業務処理部分を担当します。
アプリケーション開発者は、このクラスを継承し、それぞれの業務に応じた処理を
記述することになります。
Beanクラスは、リクエストパラメータを保持するクラスです。
このクラスはPOJOなクラスとして作成することにより、業務処理部分や永続化層
において中立なインターフェースを提供することができます。
これは業務処理部分や永続化層にJ2EE仕様(あるいはWeberフレームワークの仕様)
の混在を防ぎます。
以下にWeberを利用した場合の業務処理の流れを記します。
【処理の説明】
No | 説明 |
1 | クライアントから発生したリクエストはFrontServletクラスが受け取ります |
2 |
FrontServletはクライアントから受け取ったリクエストURIを元にActionMapping
を取得します ActionMappingにはリクエストURIに関連するActionクラス名及びフォームBean名 が登録されています |
3 | FrontServletクラスはActionMappingクラスからBeanオブジェクトを生成し、 クライアントからのリクエストパラメータをBeanオブジェクトにセットします |
4 |
FrontServletクラスはActionMappingクラスからActionを生成します。 次に生成したActionに対してexecuteメソッドを実行します。 executeメソッドの引数には、フォームBeanの他にHttpServletReqeust インスタンスやHttpServletResponceインスタンスも含まれます |
5 | ActionクラスはクライアントからのリクエストパラメータをBeanオブジェクト から取得します |
6 |
リクエストパラメータに従って、ビジネスロジックを処理します Actionの実行結果をFrontServletに返却します |
7 | FrontServletはActionの実行結果からJSP(HTML)ページを作成し、 クライアントに処理結果表示画面を返します。 |