目次へ

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回以上出現する要素です。
「*」出現回数に制限はありません。

<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のアイコンの画像のパス
  • <filter-name>
       フィルタクラスの名前を指定します。このアプリケーションの中でユニークでかつ空でない必要があります。
  • <description> - ?
       説明です。
  • <filter-class>
       フィルタクラスの完全限定名を指定します。
  • <init-param> - *
       フィルタの初期値を指定します。
    • <param-name>
         パラメーター名です。
    • <param-value>
         そのパラメーターに入る値です。
    • <description> - ?
         説明です。
例
<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のアイコンの画像のパス
  • <listener-class>
       リスナークラスの完全限定名です。
例
<listener>
    <listener-class>InitializationListener</listener-class>
</listener>

<servlet> - *

サーブレットの定義を行います。

  • <icon> - ?
       GUIツールで表示するアイコン(JPEGまたはGIF画像)を指定します。
    • <small-icon>
         16x16 pxのアイコンの画像のパス
    • <large-icon>
         32x32 pxのアイコンの画像のパス
  • <servlet-name>
       サーブレットの名前を指定します。ユニークかつ空でない必要があります。
  • <description> - ?
       説明です。
  • <servlet-class> または <jsp-file>
       サーブレットクラスの完全限定名または、サーブレットに使用するJSPファイルのパスを指定します。
    どちらか一方しか指定することが出来ません。
  • <init-param> - *
       サーブレットの初期値を指定します。初期値の数だけ指定できます。
    • <param-name>
         パラメーター名です。
    • <param-value>
         そのパラメーターに入る値です。
    • <description> - ?
         説明です。
  • <load-on-startup> - ?
       起動時にロードされる優先順位を数字で指定します。
  • <run-as> - ?
       サーブレット実行時のロール名を指定します。
    • <description>
         説明です。
    • <role-name>
         ロール名です。
  • <security-role-ref> - ?
       セキュリティロールの別名を指定します。
    • <desctiption>
         説明です。
    • <role-name>
         ロールの別名を指定します。
    • <role-link> - ?
         リンク元ロールの指定を行います。security要素のrole-nameとリンクします。
例
<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ファイルへのパス
  • <jsp-property-group> - *
       JSPファイルの属性を設定します。
    • <description> - *
         説明です。
    • <display-name> - *
         GUIツールに表示される名前を指定します。
    • <icon> - *
         GUIツールで表示するアイコン(JPEGまたはGIF画像)を指定します。
      • <small-icon>
           16x16 pxのアイコンの画像のパス
      • <large-icon>
           32x32 pxのアイコンの画像のパス
    • <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するファイルを指定します。
例
<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」のどれかを指定します。
      >指定しない場合は全てが対象になります。
  • <auth-constraint> - ?
       上で指定した範囲にアクセス可能なロールを指定します。
    • <description> - *
         説明です。
    • <role-name> - *
         ロールの名前です。*で全てのロールでアクセス出来るようになります。
  • <user-data-constraint> - ?
       通信の保護方法を指定します。
    • <description> - ?
         説明です。
    • <transport-guarantee>
         「NONE」「INTEGRAL」「CONFIDENTIAL」のどれかを指定します。(それぞれ保護なし、改竄不可、盗聴不可)
例
<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>
         エラーページの指定。
例
<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のアイコンの画像のパス
  • <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など)
例
<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>
 

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp
  • シナジーマーケティング研究開発グループブログ