URLパターン(デフォルトマッピング)
最後はデフォルトマッピングです。これはどのURLマッピングにもマッチしなかった全ての呼び出しに対して対応するサーブレットを呼び出すためのものです。
デフォルトマッピングは下記のように「/」だけを記述します。
<web-app>
<servlet>
<servlet-name>
hello
</servlet-name>
<servlet-class>
HelloWorld
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>
hello
</servlet-name>
<url-pattern>
/
</url-pattern>
</servlet-mapping>
</web-app>
デフォルトマッピングはパスマッピングで「/*」と記述した場合と同じなのですが、優先順位が異なります。(マッピングの優先順位は次のページで確認します)。
サンプル
では一度試してみます。
※上記は同じ名前のファイルを使う関係でリンク先には「web5.xml」というファイルがリンクされています。実際に使う時には「web.xml」に名前を変更してご利用下さい。
<?xml version="1.0" encoding="ISO-8859-1"?>
<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
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<servlet>
<servlet-name>hello1</servlet-name>
<servlet-class>HelloWorld1</servlet-class>
</servlet>
<servlet>
<servlet-name>hello2</servlet-name>
<servlet-class>HelloWorld2</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello1</servlet-name>
<url-pattern>*.gif</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>hello2</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
作成した「web.xml」をWebアプリケーションのディレクトリの中の「WEB-INF」ディレクトリに配置します。
また実際に呼び出すサーブレットとして下記の2つのファイルをコンパイルし、Webアプリケーションのディレクトリの中の「WEB-INF\classes」ディレクトリに配置します。
では実際にサーブレットを呼び出して見ます。
http://localhost:8080/webxmltest/test.gif
上記のように対応するマッピングが存在する呼び出しを行うと「HelloWorld1.class」が呼び出されて下記のように表示されます。
デフォルトマッピング以外のマッピングに該当しない呼び出しを行うとデフォルトマッピングで記述されたサーブレットが呼び出されます。例えば下記のような呼び出しです。
http://localhost:8080/webxmltest/abc/sample.html
結果はデフォルトマッピングで指定している「HelloWorld2.class」が呼び出されて下記のように表示されます。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。