ページの先頭行へ戻る
Interstage Application Server/Interstage Web Server J2EE ユーザーズガイド

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

指定したURLのファイルやサーブレットを表示せずに異なったサーブレットやJSPに対応させることができます。
このサーブレット・マッピングは、servlet-mappingタグで定義します。
servlet-mappingタグは、サーブレットやJSPの名前を定義した、servletタグより後に記述してください。servletタグより前に記述した場合、Webアプリケーションの起動に失敗します。
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タグで指定した名前を記述します。指定していない名前を記述した場合は、Webアプリケーションの起動に失敗します。

×

×

url-pattern

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

  • 単独のURLの場合
    URLで呼び出す場合の名前を記述します。
    例) /servlet/servlet1

  • 特定のプレフィックス(パス、識別子)で始まるURLの場合
    最後に"/*"を付加し、記述します。
    例) /prefix/*

  • 特定の拡張子をもつURLの場合
    "*.xxx"を用いて記述します。
    例) *.do
    "*.xxx"を用いて特定の拡張子をもつファイルを指定する場合には、プレフィックスと一緒に指定することはできません。
    例) /path/*.do は指定できません。
    特定の拡張子をもつファイルを指定した場合は、Webアプリケーション全体のファイルが対象となります。

×

×

記述例

単独のURLに対するマッピング定義を以下に示します。

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

URLのパス情報が“director”のプレフィクスを持つリクエストに対するマッピング定義を以下に示します。

    <servlet>
      <servlet-name>director</servlet-name>
      <servlet-class>xxx.yyy.DirectorServlet</servlet-class>
    </servlet>
    <servlet-mapping>
      <servlet-name>director</servlet-name>
      <url-pattern>/director/*</url-pattern>
    </servlet-mapping>

URLが“.do”で終了するリクエストに対するマッピング定義を以下に示します。

    <servlet>
      <servlet-name>action</servlet-name>
      <servlet-class>xxx.yyy.ActionServlet</servlet-class>
    </servlet>
    <servlet-mapping>
      <servlet-name>action</servlet-name>
      <url-pattern>*.do</url-pattern>
    </servlet-mapping>