web.xmlの記述

広告

前頁のコンテキストの設定でHTMLなどの静的なコンテンツは見ることができるようになっていますが、Servletを利用する為にはweb.xmlファイルが別途必要です。web.xmlファイルにはServletの呼び出し方や初期値などの設定を記載するようになっています。

下記の場所にTomcatが利用しているweb.xmlファイルがありますので、それを少し見て下さい。

<Tomcatをインストールしたディレクトリ>¥conf¥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>

</web-app>

色々な設定が可能なのですが、ここでは利用するサーブレットの名前の定義と、呼び出し方の定義だけを行います。web.xmlの詳細については『Webアプリケーションの設定』を参照して下さい。

web.xmlの記述

まずは利用するサーブレットのクラスファイルに名前を付けましょう。名前を付けるときは<servlet>タグの中で下記のように指定します。

<servlet>
  <servlet-name>サーブレット名</servlet-name>
  <servlet-class>クラスファイル名</servlet-class>
</servlet>

今回は対象となるクラスファイルがHelloWorld.classでしたので、これにhelloworldというサーブレット名を付ける場合は下記のように記述します。

<servlet>
  <servlet-name>helloworld</servlet-name>
  <servlet-class>HelloWorld</servlet-class>
</servlet>

次に実際にどのように呼び出すかを定義します。この場合は<servlet-mapping>タグの中で下記のように指定します。

<servlet-mapping>
  <servlet-name>サーブレット名</servlet-name>
  <url-pattern>呼び出す時につけるURLパス名</url-pattern>
</servlet-mapping>

サーブレット名に対してURLパス名を指定するのですが、今回は"/helloworld"で呼び出すようにしたいので下記のように記述します。

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

以上の結果、今回の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>helloworld</servlet-name>
    <servlet-class>HelloWorld</servlet-class>
  </servlet>

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

</web-app>

以上のように設定すると、HelloWorld.classを下記のように呼び出すことができるようになります。

http://localhost:8080/hello/helloworld

web.xmlの配置

では作成したweb.xmlファイルを「c:¥servlet-sample¥helloworld¥WEB-INF¥」に置きます。

配置後は下記のようになります。

web.xmlの設置

これで全ての準備は完了です。

( Written by Tatsuo Ikura )