IT技術の痒い所に手が届く

詳細

×閉じる

web.xmlを理解

web.xmlでURLマッピング

前回は、TomcatでHelloWorldを表示してみましたね。

しかし、まだコピペしただけで、
web.xmlからURLはどうやって作られるのか?
解明していませんね。

そこで、今回はweb.xmlの設定を編集し、
URLとの関係を理解していきましょう。

web.xmlの着目点

前回作成したHelloWorldの復習です。
web.xmlを開いてみましょう。

WEB-INFのweb.xml

<web-app>~</webapp>の記述に注目。

web.xml中のweb-app

大きな要素が二つありますね。

以下、要点を解説しますね。

servlet要素

まず、アナタが作ったクラス(プログラム)が登録されています。
今回の例で言うと、「HelloWorld.java」を作ったので、
HelloWorld」を登録しています。

クラス登録の次は、名前登録です。
今回の例で言うと「hello」を登録です。

上記の登録が以下の記述になります。

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

この二つの登録によって、以下が定義されます。
hello = HelloWorld

servlet-mapping要素

このhelloに対して
URLのマッピング(割り当て)作業を行います。

例えば、xxxという名前のURLにしたい場合は、
以下のようにマッピングを行います。

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

web.xml全体では、以下になります。

            
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
  http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
  version="4.0"
  metadata-complete="true">

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

  <servlet-mapping>
    <servlet-name>
      hello
    </servlet-name>
    <url-pattern>
      /xxx
    </url-pattern>
  </servlet-mapping>
</web-app>
          

下から4行目/xxxに注目してくださいね。

上記をペーストして、web.xmlに上書き保存しましょう。

Tomcatのweb.xml保存

新しいURLでHelloWorldを表示

web.xmlで、名前登録とマッピングが終わったので、
Tomcatを再起動して、 新しい以下のURLにアクセス。

http://localhost:8080/searchman/xxx

ブラウザでURLを確認してみましょう。

URLを変更したHelloWorld

新しいURLで表示されましたね。
(うまくいかない場合は、質問してください)

Copyright(c) 2005-2020 SearchMan Sato . All Rights Reserved.