LoginSignup
12
11

More than 3 years have passed since last update.

【Java】web.xmlについてメモ

Posted at

web.xmlについて

Webアプリケーションに関する様々な設定を、xml形式で定義するためのもの

【説明】

web.xmlは

  • アクセスされたURLに対して呼び出すクラス
  • エラー時に実行する処理の指定

などの設定をします。

【配置箇所】(結論: WEB-INF直下)

web.xmlは 「WEB-INF」ディレクトリ直下 に配置し、Webアプリケーション毎に作成します。
(※「web.xml デプロイメント記述子の生成」にチェックして作成した場合は、デフォルトで作成されます。

【読み込みのタイミング】

Webサーバ(HTTPサーバ)の起動時にWebアプリケーション毎にweb.xmlが読み込まれます。

【web.xmlの基本構造】

「XML宣言」、「DTD宣言」、「本体」の順で構成されています。

【書き方】

<?xml version="1.0" encoding="ISO-8859-1"?> // XML宣言
<!DOCTYPE web-app
   PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"  //DTD宣言
  "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
  ・・・       // 本体の記述
</web-app>

web.xmlは、Webサーバの起動時に読み込まれ構文チェックが行われます。

  • 正しく記述されてない場合は、 「致命的エラー」扱いとなりそのコンテナは動きません。
  • 正しく記述されていれば、「本体にどのURLで、どのサーブレットを動かすかという定義必要」となります。

(※サーブレットが上手く機能しない場合は、 web.xmlの設定や書き方に間違いがないかチェックしましょう

【サーブレットの命名の仕方】

<web-app>

  <servlet>
    <servlet-name>サーブレットの命名</servlet-name>
    <servlet-class>パッケージ名.サーブレット名</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>サーブレットの命名</servlet-name>
    <url-pattern>/URLのパターン名</url-pattern>
  </servlet-mapping>

</web-app>

【サンプル】ユーザーに情報を返すサーブレットの場合

<servlet>
    <servlet-name>userInfo</servlet-name>
    <servlet-class>UserInfoServlet</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>userInfo</servlet-name>
    <url-pattern>/user</url-pattern>
</servlet-mapping>

web-app タグ

サーブレットの命名には「任意の名前」を付与
( ※日本語は付けられません

命名規則

servletタグ内 と servlet-mappingタグ内 の2つで実施し、
上記「2つのタグにおけるサーブレットの命名は 同一でなくてはならない。

servletタグ

servletタグには、servlet-classタグ があります。記述方法に関しては以下です。

  • 動かしたいサーブレット名を記述」します。
  • パッケージ化されている場合は、 helloPackage.HelloServletのように「パッケージ込みのサーブレット名を記述」します。

servlet-mapping タグ と url-pattern タグ

このタグ内に記述された文字列で、ブラウザのURL(アドレス)などで指定した場合、
先ほどの動かしたいサーブレットが動作する仕組みとなります。

サーブレットマッピング

上記 servlet-mapping における設定は、必須 となり、この設定を「 サーブレットマッピング 」と呼びます。

マッピングは「 可読性 と サーブレットの紐づけの親和性 」が高まるようなその機能に合った意味を持つ文言を記述するようにすること。

参考文献・記事

12
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
11