13.web.xmlのまとめ
2005.09.05 株式会社四次元データ 宮澤了祐
J2EE2.3からJ2EE2.4への変更
J2EE2.4にバージョンアップした際に、web.xmlがDTDベースからXMLSchemaベースに変更になりました。 そのため、2.4の機能を使用したい場合はWeb.xmlに変更を加える必要があります。
2.3では
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <webapp> ... </webapp>
でしたが、2.4では
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> ... </web-app>
と、いう形になりました。 DTDとの後方互換を保つために、XMLSchemaでもDTDと同じ順番で記述する必要があります。
各項目の解説
以下の要素があります。
項目の後ろに何もかかれていない場合は、必ず記述しなければなりません。
「?」0回または1回出現する要素です。
「+」1回以上出現する要素です。
「*」出現回数に制限はありません。
-
web-app
web.xmlのルート要素です。 - icon
- display-name
- description
- distributable
- context-param
- filter
- filter-mapping
- listener
- servlet
- servlet-mapping
- session-config
- mime-mapping
- welcome-file-list
- error-page
- jsp-config(2.4のみ)
- taglib(2.3のみ)
- resource-env-ref
- resource-ref
- decurity-constraint
- login-config
- security-role
- env-entry
- ejb-ref
- ejb-localref
- message-destination-ref
- message-destination
- locale-encoding-mapping-list
<icon> - ?
GUIツールで表示するアイコン(JPEGまたはGIF画像)を指定します。
- <small-icon>
16x16 pxのアイコンの画像のパス - <large-icon>
32x32 pxのアイコンの画像のパス
例 <icon> <small-icon>./gif/icon.gif</small-icon> </icon>
<display-name> - ?
IDEなどのGUIツールや、ログなどに出力する名前を指定します。
例 <display-name>MyServletName</display-name>
<description> - ?
説明文です。
<description>サーブレットについての解説です。</description>
<distributable> - ?
クラスタリングを行う場合指定します。
例 <distributable />
<context-param> - *
アプリケーションの初期パラメーターを指定します。
- <param-name>
パラメーター名です。 - <param-value>
そのパラメーターに入力する値です。 - <description> - *
説明です。
例 <context-param> <param-name>param1</param-name> <param-value>100</param-value> </context-param> <context-param> <param-name>param2</param-name> <param-value>200</param-value> <description>param2の値です。</description> </context-param>
<filter> - *
フィルタを設定します。filter-mappingで指定することで有効になります。
- <icon> - *
GUIツールで表示するアイコン(JPEGまたはGIF画像)を指定します。- <small-icon>
16x16 pxのアイコンの画像のパス - <large-icon>
32x32 pxのアイコンの画像のパス
- <small-icon>
- <filter-name>
フィルタクラスの名前を指定します。このアプリケーションの中でユニークでかつ空でない必要があります。 - <description> - ?
説明です。 - <filter-class>
フィルタクラスの完全限定名を指定します。 - <init-param> - *
フィルタの初期値を指定します。- <param-name>
パラメーター名です。 - <param-value>
そのパラメーターに入る値です。 - <description> - ?
説明です。
- <param-name>
例 <filter> <filter-name>Encoding</filter-name> <filter-class>EncodingFilter</filter-class> </filter>
<filter-mapping> - *
フィルタを適応するURLまたはServletを指定します。
- <filter-name>
先ほど指定したフィルタの名前を指定します。 - <url-pattern> または <servlet-name>
URLを指定するか、サーブレットの名前を指定します。どちらか一方しか指定できません。 - <dispathcer> - *
REQUEST、FORWARD、INCLUDE、ERRORのどれかを0潤オ4まで指定することが出来ます。
2.4のみです。
例 <filter-mapping> <filter-name>Encoding</filter-name> <url-pattern>/servlet/*</url-pattern> <dispatcher>REQUEST</dispatcher> <dispatcher>FORWARD</dispatcher> </filter-mapping>
<listener> - *
リスナーを指定できます。
- <description> - ?
説明です。 - <display-name> - *
GUIツールに表示される名前です。 - <icon> - ?
GUIツールで表示するアイコン(JPEGまたはGIF画像)を指定します。- <small-icon>
16x16 pxのアイコンの画像のパス - <large-icon>
32x32 pxのアイコンの画像のパス
- <small-icon>
- <listener-class>
リスナークラスの完全限定名です。
例 <listener> <listener-class>InitializationListener</listener-class> </listener>
<servlet> - *
サーブレットの定義を行います。
- <icon> - ?
GUIツールで表示するアイコン(JPEGまたはGIF画像)を指定します。- <small-icon>
16x16 pxのアイコンの画像のパス - <large-icon>
32x32 pxのアイコンの画像のパス
- <small-icon>
- <servlet-name>
サーブレットの名前を指定します。ユニークかつ空でない必要があります。 - <description> - ?
説明です。 - <servlet-class> または <jsp-file>
サーブレットクラスの完全限定名または、サーブレットに使用するJSPファイルのパスを指定します。
どちらか一方しか指定することが出来ません。 - <init-param> - *
サーブレットの初期値を指定します。初期値の数だけ指定できます。- <param-name>
パラメーター名です。 - <param-value>
そのパラメーターに入る値です。 - <description> - ?
説明です。
- <param-name>
- <load-on-startup> - ?
起動時にロードされる優先順位を数字で指定します。 - <run-as> - ?
サーブレット実行時のロール名を指定します。- <description>
説明です。 - <role-name>
ロール名です。
- <description>
- <security-role-ref> - ?
セキュリティロールの別名を指定します。- <desctiption>
説明です。 - <role-name>
ロールの別名を指定します。 - <role-link> - ?
リンク元ロールの指定を行います。security要素のrole-nameとリンクします。
- <desctiption>
例 <servlet> <servlet-name>Sample</servlet-name> <servlet-class>SampleServlet</servlet-class> <init-param> <param-name>min</param-name> <param-value>5</param-value> </init-param> <init-param> <param-name>max</param-name> <param-value>10</param-value> </init-param></servlet>
<servlet-mapping> - *
<servlet>で定義したサーブレットを呼び出すURLを指定します。
- <servlet-name>
サーブレット名です。<servlet>の<servlet-name>とリンクします。 - <url-pattern>
サーブレットを呼び出すURLです。
<servlet-mapping> <servlet-name>Sample</servlet-name> <url-pattern>sample.html</url-pattern> </servlet-mapping>
<session-config> - ?
セッションの初期値を指定します。
- <session-timeout> - ?
セッションのタイムアウトまでの時間を分単位で指定します。0以下の値を指定すると、タイムアウトしない設定になります。 この要素を指定しない場合はディフォルトの値(30)が使用されます。
<session-config> <session-timeout>30</session-timeout> </session-config>
<mime-mapping> - *
ファイルの拡張子と、MIMEマッピングのタイプを指定します。
- <extension>
ファイルの拡張子です。 - <mime-type>
MIMEマッピングのタイプです。
<mime-mapping> <extension>hdml</extension> <mime-type>text/x-hdml</mime-type> </mime-mapping>
<welcome-file-list> - *
ウェルカムページの設定を行います。
- <welcome-file> - +
この要素を指定する場合、一つ以上welcome-fileを指定する必要があります。
複数記述すると上から順に検索されます。
<welcome-file-list> <welcome-file>index.jsp</welcome-file> <welcome-file>time.jsp</welcome-file> </welcome-file-list>
<error-page> - *
エラーページを指定します。
- <error-code> または <exception-type>
エラーコード(505,404など)か、Javaの例外クラスの完全限定名のどちらか一方を指定します。 - <location>
そのエラーが発生した際に表示したいページのパス指定します。
<error-page> <error-code>505</error-code> <location>/error/505.html</location> </error-page> <error-page> <exception-type>javax.servlet.ServletException</exception-type> <location>/error/error.jsp</location> </error-page>
<jsp-config>(2.4のみ) - *
J2EE2.4のみ存在します。JSPの各種情報を定義します。
- <taglib> - *
タグライブラリを使用を宣言します。J2EE2.3ではjsp-configの子要素ではなく、web-appの子要素になります。- <taglib-uri>
@taglibティレクティブのuriです。 - <taglib-location>
tldファイルへのパス
- <taglib-uri>
- <jsp-property-group> - *
JSPファイルの属性を設定します。- <description> - *
説明です。 - <display-name> - *
GUIツールに表示される名前を指定します。 - <icon> - *
GUIツールで表示するアイコン(JPEGまたはGIF画像)を指定します。- <small-icon>
16x16 pxのアイコンの画像のパス - <large-icon>
32x32 pxのアイコンの画像のパス
- <small-icon>
- <url-pattern> - +
JSPファイルのパターンを指定します(*.jspなど)。必ず1つ以上必要です。 - <el-ignored> - ?
式言語を無視するかを「true」か「false」で指定します。初期値はfalseです。 - <scripting-invalid> - ?
スクリプトレット(<% %>でスクリプトを記述すること)を無視するかどうかを「true」「false」で指定します。初期値はfalseです。 - <is-xml> - ?
XMLで記述されているかどうかを「true」「false」で指定します。 - <include-prelude> - *
JSPの冒頭でincludeするファイルを指定します。 - <include-coda> - *
JSPの末尾にincludeするファイルを指定します。
- <description> - *
例 <jsp-config> <taglib> <taglib-uri>http://jakarta.apache.org/struts/tags-bean</taglib-uri> <taglib-location>/WEB-INF/tld/struts-bean.tld</taglib-location> </taglib> <jsp-property-group> <url-pattern>*.jsp</url-pattern> </jsp-property-group> </jsp-config>
<resource-env-ref> - *
リソース環境への参照を定義します。
- <description> - *
説明です。 - <resource-env-ref-name>
リソース環境の参照名です。 - <resource-env-ref-type>
リソース環境の参照型です。
例 <resource-env-ref> <resource-env-ref-name>jms/Test</resource-env-ref-name> <resource-env-ref-type>javax.jms.Queue</resource-env-ref-type> </resource-env-ref>
<resource-ref> - *
外部リソースへの参照を定義します。
- <description> - *
説明です。 - <res-ref-name>
参照の名前の定義です。JNDI名など、ユニークである必要があります。 - <res-type>
リソースの型の完全限定名です。 - <res-auth>
リソースの制御の仕方を決定します。「Application」または「Container」を指定します。 - <res-sharing-scope> - ?
リソースを共有できるかどうかです。「Shareable」または「Unshareable」を指定します。
例 <resource-ref> <res-ref-name>jdbc/datasource</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>CONTAINER</res-auth> </resource-ref>
<security-constraint - *
アクセス制限の設定を行います。
- <display-name> - *
GUIに表示されるアプリケーションの名前です。 - <web-resource-collection> - +
アクセス制限するアプリケーションの範囲を設定します。一つ以上必ず必要です。- <web-resource-name>
アクセス制限するアプリケーションの範囲に名前をつけます。 - <description> - *
説明です。 - <url-pattern> - +
URLのパターンです。 - <http-method> - *
アクセス出来るHTTPのメソッドを指定します。
>「GET」「POST」「PUT」「DELETE」「HEAD」「OPTIONS」「TRACE」のどれかを指定します。
>指定しない場合は全てが対象になります。
- <web-resource-name>
- <auth-constraint> - ?
上で指定した範囲にアクセス可能なロールを指定します。- <description> - *
説明です。 - <role-name> - *
ロールの名前です。*で全てのロールでアクセス出来るようになります。
- <description> - *
- <user-data-constraint> - ?
通信の保護方法を指定します。- <description> - ?
説明です。 - <transport-guarantee>
「NONE」「INTEGRAL」「CONFIDENTIAL」のどれかを指定します。(それぞれ保護なし、改竄不可、盗聴不可)
- <description> - ?
例 <security-constraint> <web-resource-collection> <web-resource-name>admin page</web-resource-name> <url-pattern>/admin/*</url-pattern> <url-pattern>/root/*</url-pattern> <http-method>GET</http-method> </web-resource-collection> <web-resource-collection> <web-resource-name>support page</web-resource-name> <url-pattern>/support/*</url-pattern> </web-resource-collection> <auth-constraint> <role-name>admin</role-name> </auth-constraint> <user-data-constraint> <transport-guarantee>NONE</transport-guarantee> </user-data-constraint> </security-constraint>
<login-config> - *
フォーム認証やレルムなど、認証に関連する設定を行います。
- <auth-method> - ?
認証方法の設定を行います。(BASICやFORMなど) - <realm-name> - ?
BASIC認証使用時のレルム名です。 - <form-login-config> - ?
FORM認証使用時のログインページとエラーページの設定です。- <form-login-page>
ログインページの指定。 - <form-error-page>
エラーページの指定。
- <form-login-page>
例 <login-config> <auth-method>BASIC</auth-method> <realm-name>admin page</realm-name> </login-config>
<security-role> - *
セキュリティロールを設定します。
- <description> - ?
説明です。 - <role-name>
<security-constraint>で使用するロール名です。一つしか指定できません。
例 <security-role> <role-name>admin</role-name> </security-role> <security-role> <role-name>support</role-name> </security-role>
<env-entry> - *
環境エントリの設定です。
- <description> - *
説明です。 - <env-entry-name>
環境エントリ名です。ユニークである必要があります。 - <env-entry-value> - ?
環境エントリの値です。 - <env-entry-type>
環境エントリのデータ型の設定です。「java.lang.Boolean」「java.lang.Byte」「java.lang.Character」「java.lang.Strin」「java.lang.Short」「java.lang.Integer」「java.lang.Long」「java.lang.Float」「java.lang.Double」のどれかを指定します。
例 <env-entry> <env-entry-name>test/string</env-entry-name> <env-entry-value>Hello World</env-entry-value> <env-entry-type>java.lang.String</env-entry-type> </env-entry>
<ejb-ref> - *
EJB参照の定義です。
- <description> - *
説明です。 - <ejb-ref-name>
EJBの参照名です。 - <ejb-ref-type>
EJBの参照型です。「Entity」または「Session」を指定します。 - <home>
EJBホームインタフェースの完全限定名です。 - <remote>
EJBリモートインタフェースの完全限定名です。 - <ejb-link> - ?
J2EEでのEJB名です。
例 <ejb-ref> <ejb-ref-name>ejb/EjbSession</ejb-ref-name> <ejb-ref-type>Session</ejb-ref-type> <home>sample.EjbSessionHome</home> <remote>sample.EjbSessionRemote</remote> <ejb-link>EjbSession</ejb-link> </ejb-ref>
<ejb-local-ref
EJB参照のlocal-homeの定義です。
- <description> - *
説明です。 - <ejb-ref-name>
EJBの参照名です。 - <ejb-ref-type>
EJBの参照型です。「Entity」または「Session」を指定します。 - <local-home>
EJBローカルホームインタフェースの完全限定名です。 - <locale>
EJBローカルリモートインタフェースの完全限定名です。 - <ejb-link> - ?
J2EEでのEJB名です。
例 <ejb-local-ref> <ejb-ref-name>ejb/EjbSession</ejb-ref-name> <ejb-ref-type>Session</ejb-ref-type> <local-home>sample.EjbSessionHome</home> <local>sample.EjbSessionRemote</home> <ejb-link>EjbSession</ejb-link> </ejb-local-ref>
<message-destination-ref
message-destinationへの参照の定義です。
- <description> - *
説明です。 - <message-destination-ref-name>
参照名を定義します。ユニークである必要があります。 - <message-destination-type>
型を定義します。 - <message-destination-usage>
使用法を記述します。「Consumes」「Produces」「ConsumesProduces」のどれかを指定します。 - <message-destination-link>
<message-destination>とリンクします。
例 <message-destination-ref> <message-destination-ref-name>jms/sample</message-destination-ref-name> <message-destination-type>javax.jms.Queue</message-destination-type> <message-destination-usage>Produces</message-destination-usage> <message-destination-link>destination</message-destination-link> </message-destination-ref>
<message-destination> - *
message-destinationの設定を行います。
- <desctiption> - *
説明です。 - <display-name> - *
名前の設定です。 - <icon> - *
GUIツールで表示するアイコン(JPEGまたはGIF画像)を指定します。- <small-icon>
16x16 pxのアイコンの画像のパス - <large-icon>
32x32 pxのアイコンの画像のパス
- <small-icon>
- <message-destination-name>
message-destinationの名前を指定します。
例 <message-destination> <message-destination-name>destination</message-destination-name> </message-destination>
<locale-encoding-mapping-list> - ?
ロケールおよび文字エンコードのマッピングです。
javax.servlet.ServletResponseのsetLocale()メソッドが呼ばれた時に参照され、指定したロケールに対応する文字コードが設定されます。
- <locale-encoding-mapping> - +
一つ以上必用です。- <locale>
ロケールを指定します。 - <encoding>
文字エンコードを指定します。(Windows-31JやEUC-JPなど)
- <locale>
例 <local-encoding-mapping-list> <local-encoding-mapping> <locale>ja_JP</locale> <encoding>EUC-JP</encoding> </locale-encoding-mapping> <locale-encoding-mapping> <locale>ko_KR</locale> <encoding>EUC-KR</encoding> </locale-encoding-mapping> </locale-encoding-mapping-list>