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\」に置きます。
配置後は下記のようになります。
これで全ての準備は完了です。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。