カテゴリ: Servlet 更新日: 2026/01/25

サーブレットのURLマッピングとは?web.xmlと@WebServletの使い方を初心者向けに解説!

サーブレットの URL マッピングとは?web.xml と @WebServlet の使い方
サーブレットの URL マッピングとは?web.xml と @WebServlet の使い方

先生と生徒の会話形式で理解しよう

生徒

「Javaのサーブレットって、URLにどうやってつながってるんですか?URLマッピングって何か特別な設定が必要なんですか?」

先生

「URLマッピングは、特定のURLにアクセスされたときに、どのサーブレットを動かすかを決める設定だよ。Javaではweb.xmlという設定ファイルや、@WebServletというアノテーションを使って指定できるんだ。」

生徒

「なるほど!プログラムの中でURLとサーブレットをひもづけてるんですね。両方の方法があるってことですか?」

先生

「そのとおり。どちらの方法も知っておくと、柔軟にWebアプリケーションを作れるようになるよ。」

1. サーブレットのURLマッピングとは?

1. サーブレットのURLマッピングとは?
1. サーブレットのURLマッピングとは?

サーブレットのURLマッピングとは、「どのURLにアクセスされたら、どのサーブレットを動かすのか」を決めるとても大事な仕組みです。たとえば、Webブラウザで「/hello」と入力されたときに、HelloServletというクラスを実行する、といった対応づけを行います。これによって、ユーザーの操作に応じた処理を切り替えることができ、動きのあるWebアプリケーションが作れるようになります。

もう少しイメージしやすいように、簡単な例を見てみましょう。下の例では、「/sample」というURLにアクセスされたら画面に文字を表示するイメージを示しています。


// ※ ここではマッピングのイメージだけを示す簡単な疑似例
// "/sample" にアクセスすると実行されると考えてみましょう。
public class SampleServlet {
    public void service() {
        System.out.println("サーブレットが動きました!");
    }
}

このように、URLマッピングは「URL」→「実行するクラス」という流れをつなぐ“住所録”のような役割を持っています。Javaでは、設定ファイルで指定する方法(web.xml)と、Javaコード上で直接指定する方法(@WebServlet)の2つが用意されており、どちらも覚えておくと開発がとてもスムーズになります。

2. web.xmlを使ったURLマッピングの方法

2. web.xmlを使ったURLマッピングの方法
2. web.xmlを使ったURLマッピングの方法

まずは、昔からある基本的な方法である「web.xml」を使ったサーブレットのURLマッピングを見てみましょう。web.xmlは、JavaのWebアプリケーションの設定を書き込むためのXMLファイルで、通常はプロジェクト内のWEB-INF/web.xmlという場所に置かれています。このファイルの中で、「どのクラスをどのURLに対応させるか」を文章のように書いていくイメージです。

書き方の流れはシンプルで、<servlet>タグでサーブレットクラスを登録し、<servlet-mapping>タグでURLパターンを関連付けます。実際の例を見た方が分かりやすいので、簡単なサンプルを確認してみましょう。


<servlet>
  <servlet-name>HelloServlet</servlet-name>
  <servlet-class>com.example.HelloServlet</servlet-class>
</servlet>

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

この例では、まず<servlet>タグの中で「HelloServlet」という名前と、実際のクラス名com.example.HelloServletを登録しています。次に、<servlet-mapping>タグで、先ほど登録した<servlet-name><url-pattern>/helloを結びつけています。これにより、ブラウザから「http://localhost:8080/(アプリ名)/hello」にアクセスされたときに、HelloServletクラスが実行されるようになります。

<servlet-name>は開発者が分かりやすい名前を付ければよく、<servlet-class>には実際のサーブレットクラスの完全修飾名(パッケージを含めたクラス名)を書きます。URLを変えたいときは、<url-pattern>の値を「/hello」から「/greeting」などに変更するだけで簡単に切り替えられます。複数のサーブレットを登録したい場合も、同じ形で<servlet><servlet-mapping>のセットを追加していくことで整理して管理できます。

3. @WebServletアノテーションを使ったマッピング

3. @WebServletアノテーションを使ったマッピング
3. @WebServletアノテーションを使ったマッピング

Java EE6以降では、web.xmlファイルを使わなくても、@WebServletというアノテーションを使って直接Javaクラス内でURLを指定できるようになりました。これにより、設定ファイルを開かなくてもサーブレットのURLマッピングが可能になります。


@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.getWriter().println("Hello from @WebServlet");
    }
}

この方法では、URLとクラスがコード上で完結するため、管理がしやすくなるというメリットがあります。ただし、プロジェクトによってはweb.xmlで統一している場合もあるので、両方の方法を覚えておくと便利です。

4. 複数URLに対応する方法

4. 複数URLに対応する方法
4. 複数URLに対応する方法

1つのサーブレットに複数のURLパターンを割り当てることも可能です。@WebServletを使う場合は、複数のURLを配列で指定できます。


@WebServlet({"/hello", "/greeting"})
public class HelloServlet extends HttpServlet {
    // 処理内容
}

このように記述することで、ユーザーが「/hello」でも「/greeting」でも同じサーブレットにアクセスできます。web.xmlの場合でも、<url-pattern>を複数定義することで対応可能です。

5. URLパターンの指定ルール

5. URLパターンの指定ルール
5. URLパターンの指定ルール

サーブレットのURLマッピングには、特定のルールがあります。代表的なパターンは以下の通りです:

  • /example:特定のURLに対応
  • *.do:拡張子に対応
  • /admin/*:パス全体に対応

これにより、アプリケーションのURL設計を柔軟に行うことができます。例えば、管理画面すべてを「/admin/*」でカバーしたり、すべてのフォーム処理を「*.do」で統一したりする設計が可能になります。

6. URLマッピングで注意すべきポイント

6. URLマッピングで注意すべきポイント
6. URLマッピングで注意すべきポイント

URLマッピングでよくあるミスとして、「URLの指定が重複している」「記述ミスでアクセスできない」「マッピングが反映されていない」などがあります。特にweb.xmlでの記述ミスはサーブレットが動かない原因になります。

また、@WebServletを使った場合は、アノテーションが正しく読み込まれているか、クラスが正しいパッケージにあるかも確認しましょう。開発環境によっては、再ビルドや再起動が必要な場合もあります。

7. URLマッピングを理解するメリット

7. URLマッピングを理解するメリット
7. URLマッピングを理解するメリット

JavaサーブレットのURLマッピングを理解することで、Webアプリケーションの構成を論理的に設計できるようになります。たとえば、ログイン画面、ユーザー一覧、商品詳細など、それぞれの機能に対応するURLを整理して開発できます。

また、保守性の向上にもつながります。URL構造をルール化しておけば、新しい機能を追加する際も迷わず開発でき、チーム開発でも混乱を避けることができます。

8.まとめ

8.まとめ
8.まとめ

今回の記事では、JavaサーブレットにおけるURLマッピングについて、初心者の方にも理解しやすいように解説しました。Webアプリケーション開発において、URLと処理クラス(サーブレット)を正しく対応付けることは非常に重要であり、Javaでは主に「web.xml」を使った設定方法と「@WebServlet」アノテーションを使う方法の2つが存在します。どちらの方法でも、ユーザーからのHTTPリクエストに応じて適切な処理を実行できるように設計することができます。

web.xmlを使ったURLマッピングでは、XML形式でサーブレット名やクラス、URLパターンを指定します。設定が明示的であるため、複数人でのチーム開発やレガシーなJava EE環境でもよく使用されます。一方、@WebServletアノテーションを使うと、Javaコード上でマッピングを完結できるため、設定の簡略化や保守性の向上が期待できます。特に近年ではアノテーション方式が主流になりつつあり、学んでおくべき基本知識といえるでしょう。

また、1つのサーブレットに複数のURLを割り当てたり、ワイルドカードや拡張子マッピング(*.do)などの柔軟なURLパターンを指定することで、より効率的にWebアプリケーションの構成を設計できます。これにより、ログイン機能や管理画面、データ検索処理など、複数の機能をきれいに分割し、それぞれの役割に応じたURL設計が可能になります。

下記は、アノテーションとweb.xmlの両方でURLマッピングを行う例です。開発現場によって使い分けが必要になる場面が多いため、両方を理解しておくことがWebエンジニアとしてのスキルアップに直結します。


@WebServlet("/info")
public class InfoServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.getWriter().println("サーブレット情報ページ");
    }
}

<servlet>
  <servlet-name>UserServlet</servlet-name>
  <servlet-class>com.example.UserServlet</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>UserServlet</servlet-name>
  <url-pattern>/user</url-pattern>
</servlet-mapping>

さらに、開発中はURLマッピングに関するトラブルも発生しがちです。たとえば「404エラーが出る」「意図しないサーブレットが呼ばれる」といったケースです。これらの原因としては、web.xmlの記述ミスやURLのスペルミス、アノテーションのパッケージ誤りなどが多いため、マッピング内容は一つ一つ丁寧にチェックする習慣を身につけましょう。

URLマッピングの理解が深まると、Webアプリケーションの可読性、拡張性、保守性が飛躍的に向上します。たとえば、REST設計の導入にも役立ちますし、MVCモデルでの開発においても役割分担が明確になります。今後、Spring Bootなどのフレームワークを使った開発を学んでいく際にも、こうした基本概念はしっかり身につけておくと応用が利きます。

SEOを意識した観点でも、URLは人間にも検索エンジンにも分かりやすく設計することが重要です。「/login」「/products」「/user/profile」など、意味のあるパス設計とURLマッピングを組み合わせることで、検索エンジンからの評価も高まりやすくなります。

今後は「Java サーブレット URLマッピングとは」「web.xml servlet mapping の書き方」「@WebServlet 使い方」「Java サーブレット URL 設定方法」「アノテーション URLマッピング servlet」「サーブレット 404 エラー 原因」といったキーワードで、さらに情報を深掘りしていくのがおすすめです。

先生と生徒の振り返り会話

生徒

「URLマッピングって、Webアプリの中でサーブレットとつなげるための大事な仕組みだったんですね!」

先生

「そうだね。どのURLでどのサーブレットを動かすかを決めるから、Webアプリの構造そのものに関わってくるんだ。」

生徒

「@WebServletで簡単に書けるのも便利だし、web.xmlを使ってきちんと管理するのも良さそうですね!」

先生

「その通り!現場によって使い分けることもあるから、両方のやり方を覚えておこう。特にURLの指定ミスや記述ミスはトラブルの元になるから注意が必要だよ。」

生徒

「はい!URLの設計も含めて、アプリ全体を意識して作れるように頑張ります!」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

JavaのサーブレットでURLマッピングとは何ですか?初心者にもわかるように説明してください。

URLマッピングとは、ブラウザから指定されたURLに対して、どのJavaサーブレットクラスを実行するかを決める仕組みのことです。たとえば「/login」というURLでログイン画面を表示するように、サーブレットとURLを関連付けて制御します。

web.xmlを使ったサーブレットのURLマッピング方法がよくわかりません。

web.xmlでは、タグとタグを使って、サーブレット名・クラスとURLパターンを指定します。これにより、URLにアクセスしたときに対応するサーブレットが動作します。

@WebServletアノテーションはweb.xmlの代わりに使えるんですか?

@WebServletアノテーションはJava EE6以降で導入された方法で、Javaクラスに直接URLマッピングを記述できる機能です。web.xmlを使わずにURLとサーブレットを関連付けることができ、設定が簡単になります。

同じサーブレットで複数のURLに対応するにはどうすればいいですか?

@WebServletでは、URLを配列で指定することで、1つのサーブレットで複数のURLに対応可能です。web.xmlでも、複数のを設定することで同様のことが実現できます。

URLマッピングで使えるパターン指定のルールはありますか?

はい、代表的なURLパターンには「/path」「*.do」「/admin/*」などがあります。これにより特定のパスや拡張子、ディレクトリ配下すべてを対象にするマッピングが可能です。

URLマッピングが反映されない原因は何がありますか?

原因として多いのは、web.xmlの記述ミスやURLパターンの誤記、アノテーションの読み込み不備です。また、サーバーの再起動やビルド忘れによる反映漏れもあります。

サーブレットのURLを「*.do」にしたいのですが、どう設定すればいいですか?

「*.do」のような拡張子マッピングはweb.xmlでも@WebServletでも設定可能です。web.xmlでは*.doと記述します。@WebServletでも同様に「*.do」を指定できます。

URLとサーブレットの関係を整理して開発するとどんなメリットがありますか?

URLとサーブレットの関係を整理することで、機能ごとに処理が分かりやすくなり、保守性や拡張性が高まります。また、SEO対策としても意味のあるURL設計が重要です。

@WebServletとweb.xml、どちらを使うのが良いですか?

近年では@WebServletが主流で、コードの中で完結するため管理が簡単です。ただし、企業やプロジェクトによってはweb.xmlを使う方針もあるので、両方の知識を持っておくと安心です。

URLマッピングが間違っていると、どんなエラーが出ますか?

URLマッピングが正しくないと「HTTPステータス404(Not Found)」が表示されます。これは、指定されたURLに対応するサーブレットが見つからなかったことを意味します。

JavaサーブレットのURL設計でSEO対策になるポイントはありますか?

はい、URLに意味のある単語を使うことで検索エンジンの評価が高まります。たとえば「/product/list」や「/user/login」など、内容が想像できるURLにすることがSEO対策になります。

サーブレットやJSPの基礎を体系的に理解したい人には、 定番の入門書がこちらです。

スッキリわかるサーブレット&JSP入門をAmazonで見る

※ Amazon広告リンク

カテゴリの一覧へ
新着記事
New1
Spring
SpringDataJPAのJPAクエリメソッド「EndingWith」の使い方を完全ガイド!初心者向け解説
更新記事
New2
Spring
SpringDataJPAのJPAクエリメソッド「StartingWith」の使い方を完全ガイド!初心者向け解説
更新記事
New3
Spring
SpringDataJPAのJPAクエリメソッド「NotLike」の使い方を完全ガイド!初心者向け解説
更新記事
New4
Spring
SpringDataJPAのJPAクエリメソッド「Like」の使い方を完全ガイド!初心者向け解説
更新記事
人気記事
No.1
Java&Spring記事人気No1
Spring
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.2
Java&Spring記事人気No2
Java
JavaのBooleanクラスの使い方を完全ガイド!初心者でもわかる真偽値の操作
No.3
Java&Spring記事人気No3
JSP
JSPの基本タグ一覧と使い方まとめ!実務で使えるタグを紹介
No.4
Java&Spring記事人気No4
Java
JavaのIOExceptionクラス徹底解説!初心者向けファイル入出力エラー対策ガイド
No.5
Java&Spring記事人気No5
JSP
JSPでif文・for文を使う方法!初心者でもわかるJavaとの違いと使い方
No.6
Java&Spring記事人気No6
Spring
SpringのBindingResultを完全ガイド!初心者でもわかる入力チェックとエラー処理
No.7
Java&Spring記事人気No7
Spring
SpringのModelクラスとaddAttributeメソッドの使い方を完全ガイド!初心者でも安心
No.8
Java&Spring記事人気No8
Spring
SpringDataJPAのJPAクエリメソッド「EndingWith」の使い方を完全ガイド!初心者向け解説