PRODUCT: EZServlet Package: EZ�N�b�N

ダイエットディナーEZServletの基本
更新履歴:
リリース(2000/10/14)

目次:

1. EZServletの基本の基本:クラス構成

EZServletは、

の3つのクラスから構成される。

1-1. 初期設定管理クラス extends com.ngMAT.servlet.EZServletConfig

初期設定クラスは、アプリケーション毎に用意するプロパティファイルから初期設定値を取り込み、アプリケーションサーブレットの処理の環境設定を行う。通常、設定はアプリケーションサーブレット毎に個別に必要であるため、アプリケーションサーブレット毎に初期設定管理クラスを用意する。システム構築プロジェクト全体での共通設定、規模によってはサブシステム毎の共通設定になるのが一般的であることを考慮すると、

EZServletConfig
  |
  +--プロジェクト共通設定管理クラス
        |
        +--サブシステム共通設定管理クラス(必要に応じて複数改装)
              |
              +--アプリケーション設定管理クラス

の様に、クラスを構成すべきである。

基底クラスとなるEZServletConfigは初期化時に、サーブレット起動パラメタとして指定されたプロパティファイルの読み込み、ログの初期化、テンプレートフォルダ情報の初期化、コンテキストクラスのロードを行う。EZServletConfigの初期化が完了した後に、サブクラスでオーバライドされたinit()を呼び出す。サブクラスでオーバライドされていない場合は、EZServletConfig#init()が呼び出されることになるが、その中では何も行われない。

なお、初期設定管理クラスは、EZServletフレームワークによって、アプリケーション毎に用意されているという前提でロード、インスタンス初期化されるので、<servletname>Configの様な決まった名前である必要がある。その名前は、プロパティ内に登録する必要は無い。

初期設定管理クラスの初期化は、EZServletフレームワークの中で勝手に行うので、アプリケーションサーブレットの中で初期化を意図的に行う必要は無い。実際に初期設定にアクセスする場合は、コンテキスト管理クラスから、EZServletContext#getConfig()により取り出して使用する。

サンプル:EZScottConfig.java

1-2. コンテキスト管理クラス extends com.ngMAT.servlet.EZServletContext

コンテキスト管理クラスは、ブラウザからの呼び出しに応じて処理を際に、HTTPパラメタやセッション情報などアプリケーション処理上必要なデータにアクセスするためのユーティリティメソッドや変数を提供する。コンテキスト管理クラスのインスタンスは、HTTP呼出し毎に、生成される。1度しか使われない可能性の高い個別のパラメタを取得して、コンテキスト変数にセットしたりすることはパフォーマンスを劣化させるだけで、意味が無いため、コンテキスト管理クラスはアプリケーション毎に用意する必要は無いと考えられる。ユーザのログイン状態の判定など共通に利用されるコンテキストハンドリング系メソッドをプロジェクトやサブシステム毎に実装するのがよいであろう。

EZServletContext
  |
  +--プロジェクト共通コンテキスト管理クラス
        |
        +--サブシステム共通設定管理クラス(必要に応じて実装)
              |
              +--アプリケーション設定管理クラス(通常は不要)

の様に、クラスを構成すべきである。

サンプル:EZScottContext.java

1-3. アプリケーションサーブレットクラス extends com.ngMAT.servlet.EZServlet

アプリケーションサーブレットクラスは、ブラウザからの呼び出しに応じて

  • パラメタの解釈
  • データベースなど必要なデータへのアクセス
  • HTMLオブジェクトの生成
  • /ul>

    を行う。EZServletでは、最も基本的な処理フレームワークの提供にとどめてあるので、実際のシステム構築プロジェクトでは最低限、プロジェクトレベルのフレームワーククラスをEZServletのサブクラスとして定義するべきである。

    EZServlet
      |
      +--プロジェクトフレームワーククラス
            |
            +--ページパターン毎フレームワークなど(必要に応じて)
                  |
                  +--アプリケーションサーブレットクラス
    

    の様に、クラスを構成すべきである。

    サンプル:EZScott.java