1.7 Web版概略
Web版
本資料で採用するJavaEEフレームワークであるWeb版について説明する。Web版はSpringフレームワークおよびStrutsフレームワークを機能拡張して提供している。
■ Server(Web)版概略
フレームワークが規定しているクラス構造
Web版では、SpringフレームワークやSturtsフレームワークを拡張し、以下の機能や仕組みを提供する。
- アクセス制御
- サーバ閉塞機能
- 業務閉塞機能
- POJO及び定型インタフェースを持つ業務ロジックを起動する仕組み
- JavaEE/JDBCの知識がなくともデータベースアクセスが可能な仕組み
- 一覧表示画面でのページ操作等をサポートするカスタムタグ等
次に、Web版が提供するクラスについて説明していく。
(1) RequestProcessorEx
"_"で始まるアクションフォーム名をセッション内で唯一性を保証する機能などTERASOLUNAフレームワークで新規追加されたアクションマッピングのプロパティに対応した処理や、アクションでのエラー発生時にログ出力を行う処理などを実現している。
(2) Validator
ビジネスロジックの入力となるActionFormに対して入力値検証を実行するインタフェース。デフォルトでは、Commons Validatorを用いた設定ファイルベースの入力チェックを提供している。
(3) ActionEx
Action クラスを継承した抽象基底クラスである。ログ出力機能・トランザクショントークンチェック機能を追加している。
このActionExクラスを基底としたWeb版が提供するActionクラスについては、Web版が提供するActionクラスを参照すること。
(4) BLogicMapper
ビジネスロジックの入出力処理を行うクラスである。設定ファイル(blogic-io.xml)をもとに以下の処理を行う。
- Web層のオブジェクト(Form、Session、Request、ServletContext)よりビジネスロジックの入力となるJavaBeanを生成する。
- ビジネスロジックの実行結果として返却されるJavaBeanを、Web層のオブジェクト(Form、Session、Request)に反映させる。
(5) BLogicResult
ビジネスロジックの出力情報クラスである。ビジネスロジックの結果オブジェクトや遷移先情報、エラーメッセージを保持する。
(6) ビジネスロジック
ビジネスロジックを実行するクラスである。ビジネスロジックはPOJO とBLogicの2種類の実行方式から選択することができる。 ビジネスロジックのポータビリティを保つ場合はインタフェースが自由なPOJOで実装を行い、ビジネスロジックのインタフェースを固定する場合はビジネスロジックにBLogic インタフェースを実装させる。
- BLogic
- Web版が提供するビジネスロジックのインタフェース。BLogicActionから呼び出される。
(7) DAO
データベースにアクセスするオブジェクトのインタフェースが3種類(QueryDAO、UpdateDAO、StoredProcedureDAO)用意されている。データベース接続等のJDBC リソースの取得と開放はフレームワーク側が行うため、フレームワーク利用者が意識する必要はない。
- QueryDAO
- 参照系のデータベースアクセスを行うDAO インタフェース。
- UpdateDAO
- 更新系のデータベースアクセスを行うDAO インタフェース。
- StoredProcedureDAO
- ストアドプロシージャを実行するDAO インタフェース。
(8) JSP
Strutsフレームワークを利用した実装の場合と同様に主にJSPで実装する。
(9) Custom Tag
Web版ではStrutsフレームワークが標準で提供しているカスタムタグに加え、一覧表示画面でのページ操作をサポートするタグなどを新たにカスタムタグとして提供している。
Web版が提供するActionクラス
Web版では、Web版が提供するActionExクラスを拡張したアプリケーションで必要となる典型的なActionクラスを提供する。
次に、Web版が提供するActionクラスについて説明していく。
(1) ForwardAction
JSPやその他の物理的/論理的リソースへのフォワード処理のみを実行するActionクラスである。画面表示はJSPに直接アクセスせず、このActionクラスを経由するように実装する。
(2) BLogicAction
BLogicインタフェースを実装したビジネスロジッククラスを実行するActionクラスである。
(3) AbstractBLogicAction
ビジネスロジックを実行するアクションの基底クラスである。設定ファイルの内容からビジネスロジックの入力/出力処理をAbstractBLogicMapperクラスに委譲する。
サービス層で生成されたメッセージオブジェクトをStrutsのメッセージオブジェクトに変換する。
(4) DispatchAction
画面に複数のボタンがあるときに、ボタンごとの処理を振り分けるActionクラス。サーバ内部でボタンに紐付いたアクションにフォワードする。
(5) LogoffAction
ログオフの業務処理の基底となるActionクラスである。セッションの無効化を行っている。その他の処理が必要な場合はこのクラスを継承したクラスを作成する。
(6) ClearSessionAction
セッションから指定されたキーの値を削除するActionクラスである。
(7) MakeSessionDirectoryAction
ユーザ固有のディレクトリを作成するActionクラスである。帳票の一時保存ディレクトリなどに使用できる。ディレクトリ名はセッションIDを基にした文字列である。 HttpSessionListenerImplを設定しておけば、ログオフ時にユーザディレクトリは自動的に削除される。
(8) ReloadCodeListAction
指定されたコードリストを更新するActionクラスである。