3.4.2 Servletの設定
Servletの設定は,web.xmlに定義します。web.xmlの定義は,Servletのバージョンごとに異なります。
JSF 2.3を使用するには,web.xmlのバージョンが2.5以降であるか,またはweb.xmlを省略している必要があります。
- 〈この項の構成〉
(1) Servlet2.5の場合
JSFアプリケーションが動作するためには,web.xmlに次のタグの定義が必要です。
-
<servlet>
<servlet>タグを使用して,FacesServletクラスをサーブレットとして登録してください。
web.xmlには,次の例のように設定してください。
<servlet> <servlet-name>FacesServlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> </servlet>
-
<servlet-mapping>
servlet-mappingの要素をweb.xmに定義する必要があります。
web.xmlには,次の例のように設定してください。
<servlet-mapping> <servlet-name>FacesServlet</servlet-name> <url-pattern>/faces/*</url-pattern> </servlet-mapping>
(2) Servlet3.0の場合
Servlet3.0の場合は,FacesServletクラスの登録やURLマッピングの定義はデフォルトで設定されます。このため,web.xmlの設定は必要ありません。web.xmlの作成は任意です。
次に,web.xmlでのFacesServletクラスの登録およびURLマッピングの定義の有無と,動作の関係を示します。
- 条件1:
-
- 条件
-
次のどちらかを満たす場合
-
web.xmlは作成しているが,FacesServletクラスの登録とURLマッピングの定義はしていない
-
web.xmlを作成していない
-
- 動作
-
FacesServletは自動的に初期化され,次のデフォルトURLにマッピングされます。マッピングされるURLはコンテキストパラメタjavax.faces.DISABLE_FACESSERVLET_TO_XHTMLに設定する値によって異なります。
コンテキストパラメタjavax.faces.DISABLE_FACESSERVLET_TO_XHTMLに設定する値
マッピングされるURL
false(デフォルト値)
/faces/*
*.jsf
*.faces
*.xhtml
true
/faces/*
*.jsf
*.faces
ユーザは,デフォルトURLを利用してFacesServletにアクセスします。
- 条件2:
-
- 条件
-
web.xmlを作成し,FacesServletクラスの登録,およびURLのマッピングの定義をweb.xmlで設定している場合
- 動作
-
ユーザは,web.xmlに設定した内容に従ってFacesServletにアクセスします。この場合,例1で示したデフォルトの設定は使用されません。