Interstage Application Server J2EE ユーザーズガイド
目次 索引 前ページ次ページ

第2部 Servlet/JSP編> 第11章 Servletサービスの環境定義ファイル> 11.6 Webアプリケーション環境定義ファイル(deployment descriptor)> 11.6.3 Webアプリケーション環境定義ファイル(deployment descriptor)のタグの詳細

11.6.3.8 サーブレット・マッピング

 指定したURLのファイルやサーブレットを表示せずに異なったサーブレットやJSPに対応させることができます。
 このサーブレット・マッピングは、servlet-mappingタグで定義します。
servlet-mappingタグは、サーブレットやJSPの名前を定義した、servletタグより後に記述してください。servletタグより前に記述した場合、サーブレット・マッピングの定義が有効になりません。
 url-patternタグに同じURLを複数定義した場合は、最後に定義したサーブレット・マッピングが有効となります。

 指定したURLが複数のサーブレット・マッピングで有効である場合、以下の順で優先されます。

 <例> "/index.html"と"*.html"のURLが定義されていて"/index.html"へのアクセスがあった場合、拡張子である"*.html"の定義よりファイルの名前である"/index.html"の定義が優先されます。

■記述形式

-------------------------------------------------------------------------------
    <servlet-mapping>
      <servlet-name>
        name
      </servlet-name>
      <url-pattern>
        pattern
      </url-pattern>
    </servlet-mapping>
-------------------------------------------------------------------------------

■タグの内容



タグ名

説明

タグの
省略

複数の
指定

servlet-name

リクエストをマッピングするサーブレットやJSPの名前を定義します。
名前には、servletタグのservlet-nameタグで指定した名前を記述します。指定していない名前を記述した場合は無効となります。また、名前を省略した場合は、エラーとなり、そのservlet-mappingタグの定義内容は無効となります。

×

×

url-pattern

サーブレットやJSPにマッピングするURLを定義します。
URLは以下のように記述します。

  • プレフィックス(パス、識別子)の場合
    最後に"/*"を付加し、記述します。
    <例> /prefix1/*
  • ファイルやサーブレットの場合
    URLで呼び出す場合の名前を記述します。
    <例> /path1/file1.htm
    <例> /servlet/servlet1
  • 特定の拡張子をもつファイルの場合
    "*.xxx"を用いて記述します。
    <例> *.jsp
    "*.xxx"を用いて特定の拡張子をもつファイルを指定する場合には、プレフィックスと一緒に指定することはできません。
      <例> /path1/*.jsp は指定できません。
    特定の拡張子をもつファイルを指定した場合は、Webアプリケーション全体のファイルが対象となります。
  • Webアプリケーション全体の場合
    2つのservlet-mappingタグを定義して、それぞれに"/*"と"/servlet/*"を記述します。
    "/*"でサーブレット以外がマッピングされ、"/servlet/*"でサーブレットがマッピングされます。
  • welcome fileの場合
    URLで呼び出す場合と同じように"/"まで記述します。
    <例> /
    <例> /path1/

×

×

■記述例

 全てのJSPに対するマッピングの定義を以下に示します。

-------------------------------------------------------------------------------
  <web-app>
    <servlet-mapping>
      <servlet-name>
        Hello
      </servlet-name>
      <url-pattern>
        *.jsp
      </url-pattern>
    </servlet-mapping>
  </web-app>
-------------------------------------------------------------------------------

 単独のURI(以下の例ではHTMLファイルのURI)に対するマッピングの定義を以下に示します。

-------------------------------------------------------------------------------
  <web-app>
    <servlet-mapping>
      <servlet-name>
        Hello
      </servlet-name>
      <url-pattern>
        /index.htm
      </url-pattern>
   </servlet-mapping>
  </web-app>
-------------------------------------------------------------------------------

 Webアプリケーション全体に対するマッピングの定義を以下に示します。

-------------------------------------------------------------------------------
  <web-app>
    <servlet-mapping>
      <servlet-name>
        Hello
      </servlet-name>
      <url-pattern>
        /*
      </url-pattern>
    </servlet-mapping>
    <servlet-mapping>
      <servlet-name>
        Hello
      </servlet-name>
      <url-pattern>
        /servlet/*
      </url-pattern>
    </servlet-mapping>
  </web-app>
-------------------------------------------------------------------------------

目次 索引 前ページ次ページ

All Rights Reserved, Copyright (C) 富士通株式会社 2006