カテゴリ: Servlet 更新日: 2025/12/18

サーブレットでGETリクエストを処理するには?doGetメソッドの使い方を初心者向けに解説!

サーブレットで GET リクエストを処理する方法(doGet メソッドの使い方)
サーブレットで GET リクエストを処理する方法(doGet メソッドの使い方)

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

生徒

「JavaのサーブレットでGETリクエストってどうやって処理するんですか?ブラウザでアクセスしたときに何が起きているのか知りたいです!」

先生

「それは大切なポイントだね。Javaサーブレットでは、doGetメソッドを使ってGETリクエストを処理するんだ。ブラウザがURLにアクセスすると、そのリクエストがサーブレットに届いて、doGetメソッドが自動で呼ばれるよ。」

生徒

「なるほど!doGetメソッドがGETの入り口なんですね。実際にどんなコードを書くのかも知りたいです!」

先生

「それじゃあ、これからdoGetメソッドの使い方を詳しく見ていこう!」

1. doGetメソッドとは?GETリクエストの基本

「1. doGetメソッドとは?GETリクエストの基本」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

1. doGetメソッドとは?GETリクエストの基本
1. doGetメソッドとは?GETリクエストの基本

JavaサーブレットにおけるdoGetメソッドとは、クライアント(主にWebブラウザ)から送られるHTTPのGETリクエストを処理するためのメソッドです。GETリクエストとは、ブラウザでURLにアクセスしたときに送信されるリクエストで、Webページの表示などに使われます。

サーブレットはHttpServletクラスを継承することで、doGetメソッドをオーバーライドして処理内容を自由に記述することができます。

2. doGetメソッドの基本的な書き方

2. doGetメソッドの基本的な書き方
2. doGetメソッドの基本的な書き方

GETリクエストを処理するdoGetメソッドの基本的な書き方は以下のようになります。サーブレットはHttpServletを継承し、doGetメソッドをオーバーライドします。


@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html; charset=UTF-8");
        PrintWriter out = response.getWriter();
        out.println("<h1>Hello, GET!</h1>");
    }
}

このコードは、ブラウザから「/hello」にアクセスされたときに、「Hello, GET!」というHTMLを表示するサンプルです。

3. doGetメソッドでパラメータを受け取る

3. doGetメソッドでパラメータを受け取る
3. doGetメソッドでパラメータを受け取る

GETリクエストでは、URLの末尾に「?name=値」という形式でパラメータを渡すことができます。サーブレットでは、requestオブジェクトを使ってこの値を受け取ることができます。


String name = request.getParameter("name");
out.println("<p>こんにちは、" + name + "さん!</p>");

例えば、「/hello?name=太郎」とアクセスすると、「こんにちは、太郎さん!」というメッセージを表示することができます。

4. doGetメソッドの処理内容をHTMLで整える

「4. doGetメソッドの処理内容をHTMLで整える」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

4. doGetメソッドの処理内容をHTMLで整える
4. doGetメソッドの処理内容をHTMLで整える

HTMLの出力をきれいに整えるには、HTMLタグを組み合わせて文字列として出力します。JavaコードとHTMLを分けて書くことはできませんが、次のような書き方で簡単なHTMLページを返すことができます。


out.println("<html>");
out.println("<head><title>挨拶ページ</title></head>");
out.println("<body>");
out.println("<h1>こんにちは!</h1>");
out.println("</body></html>");

このようにすることで、ブラウザに整ったHTMLページを表示させることができます。

5. doGetメソッドと文字コードの設定

5. doGetメソッドと文字コードの設定
5. doGetメソッドと文字コードの設定

日本語などのマルチバイト文字を扱う場合、文字化けを防ぐために文字エンコーディングの設定が重要です。responseオブジェクトに対して文字コードを明示的に指定しておきましょう。


response.setContentType("text/html; charset=UTF-8");

この設定により、文字化けを防ぎ、正しく日本語を表示することができます。

6. GETとPOSTの違いとdoGetの役割

6. GETとPOSTの違いとdoGetの役割
6. GETとPOSTの違いとdoGetの役割

GETリクエストとPOSTリクエストはWeb開発において基本的な概念です。GETは主にデータの取得に使われ、ブラウザのアドレスバーにパラメータが表示されます。対してPOSTはフォーム送信などで、パラメータはアドレスバーに表示されません。

Javaサーブレットでは、GETリクエストにはdoGetメソッド、POSTリクエストにはdoPostメソッドを使い、それぞれの処理を分けて実装するのが基本です。

7. GETリクエストを活用する場面

「7. GETリクエストを活用する場面」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

7. GETリクエストを活用する場面
7. GETリクエストを活用する場面

GETリクエストは、検索機能、リンクのクリック、一覧表示など、ページを表示する目的で使われることが多いです。たとえば、「/search?keyword=Java」のようにURLに検索キーワードを付けてアクセスする形式が一般的です。

このような場合、doGetメソッドを使って検索キーワードを受け取り、検索結果をHTMLとして返す設計になります。ユーザーの操作に応じた動的なWebページを構築する基本になります。

8. doGetメソッドの注意点

8. doGetメソッドの注意点
8. doGetメソッドの注意点

doGetメソッドを使うときは、以下の点に注意しましょう:

  • GETリクエストではURLにすべてのパラメータが表示されるため、機密情報の送信には向きません。
  • URLの長さに制限があるため、送れるデータ量が限られます。
  • ブラウザの履歴に残るため、URLの設計に気を配る必要があります。

これらの特性を理解して、適切な場面でGETリクエストを活用することが大切です。

9. サンプルURLを使ったGETリクエストのテスト

9. サンプルURLを使ったGETリクエストのテスト
9. サンプルURLを使ったGETリクエストのテスト

自分のサーブレットがGETリクエストを正しく処理できているかを確認するには、ブラウザで以下のようなURLを使ってテストするとよいでしょう。

例: http://localhost:8080/myapp/hello?name=たろう

このようにパラメータを付けてアクセスすることで、リクエスト処理が正しく動作しているか確認できます。

10. 今後のステップ:doPostメソッドやフォーム連携

「10. 今後のステップ:doPostメソッドやフォーム連携」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

10. 今後のステップ:doPostメソッドやフォーム連携
10. 今後のステップ:doPostメソッドやフォーム連携

doGetメソッドでGETリクエストを理解したら、次はdoPostメソッドを使ったフォーム送信処理も学びましょう。HTMLフォームから送信された情報をサーブレットで受け取り、動的なWebアプリケーションを構築することが可能になります。

また、JSPやデータベースとの連携、セッション管理なども今後のステップとしておすすめです。Javaサーブレットの基礎をしっかり身につけることが、Web開発の第一歩になります。

まとめ

まとめ
まとめ

doGetメソッドとGETリクエストの理解を深める

本記事では、JavaサーブレットにおけるGETリクエストの仕組みと、doGetメソッドの基本的な使い方について、初心者向けに丁寧に解説してきました。 GETリクエストは、WebブラウザからURLにアクセスした際に自動的に送信されるHTTPリクエストであり、Webページの表示や検索処理、一覧画面の表示など、 多くのWebアプリケーションで日常的に利用されています。

Javaサーブレットでは、HttpServletクラスを継承し、doGetメソッドをオーバーライドすることで、 ブラウザから送信されたGETリクエストを受け取り、処理内容を自由に実装することができます。 ブラウザがURLにアクセスすると、サーブレットコンテナによってdoGetメソッドが自動的に呼び出される仕組みになっているため、 開発者は「どのようなレスポンスを返すか」に集中してコードを書くことができます。

また、GETリクエストではURLの末尾にパラメータを付与することで、サーブレットに値を渡すことができます。 request.getParameterを使えば、URLパラメータを簡単に取得できるため、 ユーザー名や検索キーワードなどを受け取り、それに応じた処理を行うことが可能です。 この仕組みを理解することで、動的に内容が変わるWebページを作成できるようになります。

HTML出力と文字コード設定の重要性

doGetメソッドでは、HttpServletResponseを使ってHTMLを直接出力することができます。 out.printlnを使ってHTMLタグを文字列として出力することで、 ブラウザ上に見やすいWebページを表示することができます。 この方法はシンプルで理解しやすく、サーブレットの基本的な動作を学ぶうえでとても有効です。

さらに、日本語を扱うWebアプリケーションでは文字コードの設定が欠かせません。 response.setContentTypeでUTF-8を指定することで、文字化けを防ぎ、 日本語を正しくブラウザに表示することができます。 文字コードの指定を忘れてしまうと、画面上に意図しない文字が表示される原因となるため、 doGetメソッドを書く際の基本として必ず押さえておきたいポイントです。

GETリクエストの特性と使いどころ

GETリクエストは、URLにパラメータが表示されるという特性があります。 そのため、検索条件の指定やページの状態を表す用途には向いていますが、 パスワードや個人情報などの機密情報を送信する場面には適していません。 データ量にも制限があるため、用途に応じてPOSTリクエストと使い分けることが重要です。

doGetメソッドは、検索機能、リンク遷移、一覧表示など、 「ページを表示するための処理」を担うことが多く、 JavaによるWeb開発の中でも非常に出番の多いメソッドです。 GETとPOSTの違いを理解し、doGetの役割を正しく把握することで、 より設計の整ったWebアプリケーションを作ることができるようになります。

doGetメソッドの基本構成を再確認

以下は、GETリクエストを受け取り、URLパラメータを表示する基本的なdoGetメソッドの例です。 本記事で学んだ内容を振り返りながら、処理の流れを確認してみましょう。


@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    response.setContentType("text/html; charset=UTF-8");
    PrintWriter out = response.getWriter();

    String name = request.getParameter("name");

    out.println("<h1>GETリクエストの結果</h1>");
    out.println("<p>こんにちは、" + name + "さん</p>");
}

このように、doGetメソッドでは「レスポンス設定」「パラメータ取得」「HTML出力」という流れが基本となります。 この構成を理解しておけば、GETリクエストを使ったさまざまな処理に応用することができます。

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

生徒

「GETリクエストって、ただページを表示するだけのものだと思っていましたが、 URLのパラメータを使えば、動的な処理もできるんですね。」

先生

「そうだね。doGetメソッドを使えば、検索処理や条件分岐など、 ユーザーの操作に応じたページ表示ができるようになるよ。」

生徒

「文字コードの設定や、GETとPOSTの違いも理解できました。 使い分けが大切なんですね。」

先生

「その通り。GETリクエストはURLが見える分、用途を選ぶ必要があるけれど、 Web開発では欠かせない存在だよ。」

生徒

「まずはdoGetメソッドをしっかり使いこなせるようにして、 次はdoPostやフォーム処理にも挑戦してみたいです。」

先生

「いいね。サーブレットの基礎を一つずつ積み上げていけば、 JavaによるWebアプリケーション開発の理解がどんどん深まっていくよ。」

カテゴリの一覧へ
新着記事
New1
Spring
Spring Securityの新標準!SecurityFilterChainとHttpSecurity DSLの書き方を初心者向けに解説
更新記事
New2
Java
Javaの抽象クラス(abstract)を完全ガイド!継承と設計のルールを学ぶ
更新記事
New3
Servlet
JavaのGenericServletクラスのgetInitParameterNamesメソッドを徹底解説!初心者でもわかる初期化パラメータの取得方法
更新記事
New4
JSP
JSPとは何か?初心者向けにできること・仕組み・特徴をやさしく解説
更新記事
人気記事
No.1
Java&Spring記事人気No1
Spring
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.2
Java&Spring記事人気No2
Servlet
JavaのHttpSessionを徹底解説!初心者でもわかるセッション管理の基本
No.3
Java&Spring記事人気No3
Java
JavaのIOExceptionクラス徹底解説!初心者向けファイル入出力エラー対策ガイド
No.4
Java&Spring記事人気No4
Spring
Springの@Serviceアノテーションの使い方を徹底解説!初心者でもわかるSpring フレームワーク入門
No.5
Java&Spring記事人気No5
JSP
JSPの基本タグ一覧と使い方まとめ!実務で使えるタグを紹介
No.6
Java&Spring記事人気No6
Java
Java開発環境「Eclipse(Pleiades)」のインストール方法とメリットを初心者向けに解説
No.7
Java&Spring記事人気No7
Spring
Spring BootとVS Codeで開発を始めよう!拡張機能・launch.json・ホットリロードを丁寧に解説
No.8
Java&Spring記事人気No8
Spring
Springの@Componentアノテーションの使い方を徹底解説!初心者でもわかるSpring Boot入門