Home of: [工房 "藤車"] > [SourceForge.net における PageMixer]

配備

本節では、 PageServlet をマッピングする配備記述子の記述例を示します。

LocalePageServlet の設定

LocalePageServlet Servlet の定義例を以下に示します。 本定義例は、src/bin 配布版の src/demo/servlet/war/WEB-INF/web.xml からのものです。


<servlet>
  <servlet-name>
    limited.page
  </servlet-name>
  <servlet-class>
    jp.ne.dti.lares.foozy.pagemixer.servlet.LocalePageServlet
  </servlet-class>

  <init-param>
    <param-name>
      servlet.contextFactory
    </param-name>
    <param-value>
      pagemixer.servlet.CustomContextFactory
    </param-value>
  </init-param>
  <init-param>
    <param-name>
      servlet.localeFactory
    </param-name>
    <param-value>
      pagemixer.servlet.CustomLocaleFactory
    </param-value>
  </init-param>

  <init-param>
    <param-name>
      forward.condition.0
    </param-name>
    <param-value>
      pagemixer.servlet.NotLoginCondition
    </param-value>
  </init-param>
  <init-param>
    <param-name>
      filter.factory.0
    </param-name>
    <param-value>
      pagemixer.filter.CommonFilter$Factory
    </param-value>
  </init-param>
  <init-param>
    <param-name>
      filter.factory.1
    </param-name>
    <param-value>
      pagemixer.filter.AuthFilter$Factory
    </param-value>
  </init-param>
  <init-param>
    <param-name>
      page.location
    </param-name>
    <param-value>
      page.demosite.limited
    </param-value>
  </init-param>
</servlet>

LocalePage による Servlet

本設定は、 以下に示すカスタマイズストラテジの置換から構成されています。

名前 対象 説明
servlet.contextFactory LocalePage デフォルト実装の代替として "CustomContextFactory" を使用
servlet.localeFactory LocalePage デフォルト実装の代替として "CustomLocaleFactory" を使用

本設定の場合、 他のカスタマイズポイントに関しては、 デフォルトストラテジが使用されます。

上記例における他の初期化パラメータは、 カスタマイズストラテジを設定するために使用されます。

名前 対象 説明
forward.condition.0 ForwardStrategy "NotLoginCondition" を "ForwardCondition" 実装として登録
filter.factory.0 FilterFactory "CommonFilter$Factory" を "Filter.Factory" 実装として登録
filter.factory.1 FilterFactory "AuthFilter$Factory" を "Filter.Factory" 実装として登録
page.location LocalePage "page.demosite.limited" を "ResourceBundle" 取得用のベース名として使用

上記の page.location 設定は、 page/demosite/limited_*.properties ファイルが、 WEB-INF/classesWEB-INF/lib 直下の JAR ファイルを含むクラスローディングパス上において、 可視であることが要求されます。

例えば、 limited_ja.properties は以下のような内容です。


contentType:text/html; charset=Windows-31J
location:/WEB-INF/page/demosite/limited.ja.html
#"encoding" は省略可能
#encoding:Windows-31J

limited_ja.properties の内容

以上の設定の上で、 この Servlet は以下のような設定によりマッピングされます。


<servlet-mapping>
  <servlet-name>
    limited.page
  </servlet-name>
  <url-pattern>
    /demosite/limited.page
  </url-pattern>
</servlet-mapping>

LocalePageServlet Servlet のマッピング

I18NDefaultPageServlet のマップ

I18NDefaultPageServlet Servlet の定義例を以下に示します。 この定義例も src/bin 配布版の src/demo/servlet/war/WEB-INF/web.xml からのものです。


<servlet>
  <servlet-name>
    DefaultPage
  </servlet-name>
  <servlet-class>
    jp.ne.dti.lares.foozy.pagemixer.servlet.I18NDefaultPageServlet
  </servlet-class>

  <init-param>
    <param-name>
      servlet.contextFactory
    </param-name>
    <param-value>
      pagemixer.servlet.CustomContextFactory
    </param-value>
  </init-param>
  <init-param>
    <param-name>
      servlet.localeFactory
    </param-name>
    <param-value>
      pagemixer.servlet.CustomLocaleFactory
    </param-value>
  </init-param>

  <init-param>
    <param-name>
      filter.factory.0
    </param-name>
    <param-value>
      pagemixer.filter.CommonFilter$Factory
    </param-value>
  </init-param>
  <init-param>
    <param-name>
      page.contentType
    </param-name>
    <param-value>
      text/html; charset=iso-8859-1
    </param-value>
  </init-param>
  <init-param>
    <param-name>
      page.suffix.0
    </param-name>
    <param-value>
      .ja.html
    </param-value>
  </init-param>
  <init-param>
    <param-name>
      page.contentType.0
    </param-name>
    <param-value>
      text/html; charset=Windows-31J
    </param-value>
  </init-param>
</servlet>

I18NDefaultPage による Servlet

本設定は、 LocalePageServlet におけるものと同様のカスタマイズストラテジの置換から構成されています。

以下に示す初期化パラメータは、 カスタマイズストラテジを設定するために使用されます。

名前 対象 説明
filter.factory.0 FilterFactory "CommonFilter$Factory" を "Filter.Factory" 実装として登録
page.contentType I18NDefaultPage "text/html; charset=iso-8859-1" をデフォルトコンテントタイプとして使用
page.suffix.0 I18NDefaultPage ".ja.html" で終了する URI を特例とする
page.contentType.0 I18NDefaultPage "page.suffix.0" で指定された ".ja.html" で終了する URI への要求に対して "text/html; charset=Windows-31J" をコンテントタイプとして使用する

以上の設定の上で、 この Servlet 以下のような設定によりマッピングされます。.


<servlet-mapping>
  <servlet-name>
    DefaultPage
  </servlet-name>
  <url-pattern>
    *.html
  </url-pattern>
</servlet-mapping>

I18NDefaultServlet Servlet のマッピング