Kvasir/SoraではHTTPリクエストはまずKvasirFilter(org.seasar.kvasir.webapp.servlet.KvasirFilter)によってフィルタ処理され、次にKvasirServlet(org.seasar.kvasir.webapp.servlet.KvasirServlet)によって処理されます。
KvasirFilterはorg.seasar.kvasir.base.webappプラグインのrequestFilter拡張ポイントにプラグインされたRequestFilterをフェーズ順に呼び出します。同一フェーズに複数のRequestFilterがプラグインされている場合は後からプラグインされたものが先に呼び出されます。
RequestFilterのフェーズには以下のものがあります。
- initializationフェーズ
- 初期化フェーズです。
- authenticationフェーズ
- 認証を行なうフェーズです。
- permissionフェーズ
- 認可、権限チェックを行なうフェーズです。
- filteringフェーズ(デフォルト)
- 一般的なフィルタ処理を行なうフェーズです。
- elseフェーズ
- 上記のどのフェーズにもあてはまらない処理を行なうフェーズです。
KvasirServletはorg.seasar.kvasir.base.webappプラグインのrequestProcessor拡張ポイントにプラグインされたRequestProcessorをフェーズ順に呼び出します。同一フェーズに複数のRequestProcessorがプラグインされている場合は後からプラグインされたものが先に呼び出されます。
RequestServletのフェーズには以下のものがあります。
- initializationフェーズ
- 初期化フェーズです。
- controllerフェーズ
- リクエストのディスパッチを行なうフェーズです。
- logicフェーズ
- リクエストに関するビジネスロジックの実行を行なうフェーズです。
- presentationフェーズ(デフォルト)
- リクエストの処理結果のレンダリング処理を行なうフェーズです。
- elseフェーズ
- 上記のどのフェーズにもあてはまらない処理を行なうフェーズです。
Kvasir/Sora CMSにおいて具体的に呼び出されるFilter/Processorは以下のとおりです。基本的に上から下に順に呼び出されていきます。
- org.seasar.kvasir.webapp.servlet.KvasirFilter → 各RequestFilter
- initializationフェーズ
- [R] multibyteRequestFilter (org.seasar.kvasir.base.webapp.multibyte)
- authenticationフェーズ
- permissionフェーズ
- filteringフェーズ(デフォルト)
- [R, F, I] pageRequestFilter (org.seasar.kvasir.cms) → 各PageFilter
- initializationフェーズ
- [R] [Ymir] setCharacterEncodingPageFilter (org.seasar.kvasir.cms.ymir)
- [R] [Ymir] multipartRequestPageFilter (org.seasar.kvasir.cms.ymir)
- authenticationフェーズ
- [R] actorBindingPageFilter (org.seasar.kvasir.cms)
- permissionフェーズ
- [R] concealPageFilter (org.seasar.kvasir.cms)
- [R] permissionPageFilter (org.seasar.kvasir.cms)
- filteringフェーズ(デフォルト)
- [R, I] [Ymir] ymirPageFilter (org.seasar.kvasir.cms.ymir)
- elseフェーズ
- elseフェーズ
- org.seasar.kvasir.webapp.servlet.KvasirServlet → 各RequestProcessor
- initializationフェーズ
- controllerフェーズ
- staticContentProcessor (org.seasar.kvasir.base.webapp)
- logicフェーズ(デフォルト)
- pageRequestProcessor (org.seasar.kvasir.cms) → 各PageProcessor
- initializationフェーズ
- controllerフェーズ
- standardPageProcessor (org.seasar.kvasir.cms)
- logicフェーズ(デフォルト)
- javaPageProcessor (org.seasar.kvasir.cms.java)
- presentationフェーズ
- [Ymir] resourcePageProcessor (org.seasar.kvasir.cms.ymir)
- [Ymir] zptPageProcessor (org.seasar.kvasir.cms.ymir)
- [templateType=zpt] zptPageProcessor (org.seasar.kvymir.cms.zpt)
- elseフェーズ
- noEntryPageProcessor (org.seasar.kvasir.cms)
- presentationフェーズ
- elseフェーズ
[R]、[F]、[I] はそれぞれリクエストディスパッチ、フォワードディスパッチ、インクルードディスパッチの時に呼び出されることを表わします。
[templateType=zpt] はテンプレートタイプがZPTである場合に呼び出されることを表わします。
[Ymir] はYmirアプリケーションの配下のパスへのリクエストの時に呼び出されることを表わします。