カテゴリ: Servlet 更新日: 2026/02/14

ServletのgetParameter()完全解説!フォームの値を受け取る仕組みを初心者向けにやさしく説明

getParameter() でフォームの値を受け取ろう
getParameter() でフォームの値を受け取ろう

新人と先輩の会話形式で理解しよう

新人

「Servletでフォームから送った名前や年齢って、どうやって受け取るんですか?」

先輩

「そのときに使うのが getParameter() というメソッドだよ。Servletでフォームの値を受け取る基本中の基本だね。」

新人

「フォームって、ボタンを押すと何か送られているんですよね?」

先輩

「そうそう。入力された値がリクエストとして送られて、その中から値を取り出すのが getParameter() の役割なんだ。」

1. getParameter() とは?(フォームの値を受け取る基本概念)

1. getParameter() とは?(フォームの値を受け取る基本概念)
1. getParameter() とは?(フォームの値を受け取る基本概念)

getParameter() とは、JavaのServletでフォームから送信された値を受け取るためのメソッドです。 Webアプリケーションでは、ユーザーが入力した「名前」「メールアドレス」「パスワード」などの情報をサーバー側で受け取り、 その内容に応じて処理を行います。そのときに欠かせないのが getParameter() です。

とても簡単に例えると、フォームは「アンケート用紙」、Servletは「回収係」のような存在です。 ユーザーがアンケート用紙に文字を書いて提出すると、回収係が中身を確認します。 この「中身を確認する」動作が getParameter() だと考えると分かりやすいでしょう。

getParameter()HttpServletRequest というオブジェクトに用意されています。 オブジェクトとは、データと機能をまとめた箱のようなものです。 Servletでは、このリクエストオブジェクトを通して、ユーザーから送られてきた情報を扱います。


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

上記のコードでは、フォームの name という項目に入力された値を取得しています。 フォームの項目名と、getParameter() の引数は必ず一致させる必要があります。 一文字でも違うと値は取得できないので注意しましょう。

2. Servletでフォームの値を受け取る必要性

2. Servletでフォームの値を受け取る必要性
2. Servletでフォームの値を受け取る必要性

Servletでフォームの値を受け取る理由は、Webアプリケーションが「ユーザーの操作に応じて動く仕組み」だからです。 もしフォームの値を受け取れなければ、ログイン機能や検索機能、問い合わせフォームなどは一切動きません。

例えば、ログイン画面を想像してみてください。 ユーザーがユーザー名とパスワードを入力してログインボタンを押します。 その入力内容をServletが受け取り、正しい情報かどうかを確認します。 この「受け取り」の部分を担っているのが getParameter() です。

プログラミング未経験の方は、「ボタンを押したら勝手に処理される」と思いがちですが、 実際には、入力された値を一つずつ受け取り、Javaのプログラムで処理しています。 getParameter() を理解することは、Servlet開発の第一関門とも言えるでしょう。


String age = request.getParameter("age");
int ageNumber = Integer.parseInt(age);

この例では、フォームで入力された年齢を文字列として受け取り、 数値として扱えるように変換しています。 Integer.parseInt は、文字を数字に変換するための処理です。 フォームの値は必ず文字として送られてくる、という点も初心者がつまずきやすいポイントです。

3. リクエストとレスポンスの流れと getParameter() の役割

3. リクエストとレスポンスの流れと getParameter() の役割
3. リクエストとレスポンスの流れと getParameter() の役割

Webの世界では、「リクエスト」と「レスポンス」という流れが常に存在しています。 リクエストとは、ユーザーがサーバーに対して送るお願いのことです。 レスポンスとは、そのお願いに対してサーバーが返す返事のことです。

フォームを送信すると、入力された値はリクエストに含まれてサーバーへ送られます。 Servletはそのリクエストを受け取り、中に入っている値を getParameter() で取り出します。 そして、処理結果をHTMLなどにしてレスポンスとして返します。

例えるなら、リクエストは「宅配便の箱」、フォームの値は「箱の中身」です。 getParameter() は、その箱を開けて中身を取り出す作業にあたります。 箱を開けずに中身を知ることはできないので、必ずこの処理が必要になります。


String message = request.getParameter("message");
response.setContentType("text/html; charset=UTF-8");
response.getWriter().println("受け取った内容:" + message);

このように、getParameter() で受け取った値を使って、 画面に表示する内容を変えることができます。 これがServletによる動的なWebページの基本的な仕組みです。

4. HTMLフォームとServletの連携の基本的な流れ

4. HTMLフォームとServletの連携の基本的な流れ
4. HTMLフォームとServletの連携の基本的な流れ

ここからは、HTMLフォームとServletがどのように連携して動いているのかを、全体の流れとして整理していきます。 フォームとServletの関係を正しく理解できると、getParameter() の役割がよりはっきり見えてきます。 初心者の方は、細かい設定よりも、まず「何がどの順番で起きているのか」を意識して読み進めてみてください。

基本的な流れはとてもシンプルです。 ユーザーがHTMLフォームに文字を入力し、送信ボタンを押すと、ブラウザはその内容をリクエストとしてサーバーへ送ります。 そのリクエストを受け取るのがServletです。 Servletはリクエストの中身を確認し、必要な値を取り出して処理を行い、結果をレスポンスとして返します。

この一連の流れは、問い合わせフォームやログイン画面、検索機能など、ほとんどすべてのWebアプリケーションで共通しています。 つまり、HTMLフォームとServletの連携を理解することは、Web開発全体の基礎を押さえることにもつながるのです。

特に重要なのが、HTML側で指定した name 属性と、Servlet側で指定する getParameter() の引数が対応している点です。 この対応関係がずれてしまうと、値は正しく受け取れません。 見た目では分かりにくいミスなので、初心者が最初につまずきやすいポイントでもあります。


<form action="SampleServlet" method="post">
<input type="text" name="username">
<input type="submit" value="送信">
</form>

上記のHTMLフォームでは、username という名前の項目が用意されています。 この値は、フォーム送信時にリクエストの中へ含まれてServletに渡されます。 次の章では、この値をServlet側でどのように受け取るのかを、具体的なコードと一緒に見ていきましょう。

5. getParameter() を使ったフォーム値取得の実装例

5. getParameter() を使ったフォーム値取得の実装例
5. getParameter() を使ったフォーム値取得の実装例

それでは、実際に getParameter() を使ってフォームの値を取得する実装例を見ていきます。 ここでは、名前とコメントを受け取る簡単なフォームを想定します。 実務でもよく使われるパターンなので、基本としてしっかり押さえておきましょう。

Servlet側では、doPost()doGet() の中で、 HttpServletRequest オブジェクトから値を取得します。 フォームで送信された値は、すべて文字列として扱われる点がポイントです。


protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    String userName = request.getParameter("username");
    String comment = request.getParameter("comment");

    response.setContentType("text/html; charset=UTF-8");
    response.getWriter().println("名前:" + userName);
    response.getWriter().println("コメント:" + comment);
}

このコードでは、フォームから送られた usernamecomment の値を受け取り、 そのまま画面に表示しています。 非常にシンプルですが、フォーム連携の基本がすべて詰まった例です。

実際の開発では、取得した値をそのまま表示するだけでなく、 データベースに保存したり、入力内容をチェックしたりする処理が追加されます。 しかし、どんな処理を行う場合でも、最初の入口は必ず getParameter() になります。

なお、存在しない name を指定した場合、getParameter() の戻り値は null になります。 そのため、実務では null チェックを行い、想定外の入力に備えることも重要です。 初心者のうちは、「値が取れないときは名前が間違っていないか」をまず疑うようにしましょう。


String mail = request.getParameter("mail");
if (mail == null || mail.isEmpty()) {
    response.getWriter().println("メールアドレスが入力されていません");
}

このように、getParameter() で取得した値をチェックすることで、 ユーザーに分かりやすいメッセージを返すことができます。 フォーム処理では、値を受け取るだけでなく、その後の扱い方も大切だという点を覚えておきましょう。

6. 文字化けを防ぐためのリクエスト処理のポイント

6. 文字化けを防ぐためのリクエスト処理のポイント
6. 文字化けを防ぐためのリクエスト処理のポイント

フォームとServletを連携させる際に、もう一つ必ず理解しておきたいのが「文字化け」の問題です。 日本語を扱うWebアプリケーションでは、文字コードの設定を間違えると、 入力した文字が意味不明な記号に変わってしまうことがあります。

文字化けの原因は、ブラウザとサーバーの間で使われている文字コードが一致していないことです。 Servletでは、リクエストを読み取る前に文字コードを指定することで、この問題を防ぐことができます。 これを忘れると、getParameter() で取得した値が正しく表示されません。


request.setCharacterEncoding("UTF-8");
String message = request.getParameter("message");

上記のように、getParameter() を呼び出す前に setCharacterEncoding を設定することが重要です。 順番を間違えると、設定が反映されないので注意してください。

また、レスポンス側でも文字コードを指定する必要があります。 リクエストとレスポンスの両方で文字コードを意識することで、 フォーム入力から画面表示までを安全に行うことができます。

初心者の方は、文字化けが発生すると「何が悪いのか分からない」と感じがちです。 しかし、多くの場合は文字コード設定の漏れが原因です。 フォーム処理を書くときは、「文字コードを指定したか」をチェック項目として習慣化するとよいでしょう。

getParameter() は非常に便利なメソッドですが、 正しく使うためには周辺知識も必要になります。 今回解説したフォーム連携の流れと文字化け対策を理解しておけば、 Servletを使った入力処理で大きく困ることは少なくなるはずです。

7. getParameter() を使うメリットと活用シーン

7. getParameter() を使うメリットと活用シーン
7. getParameter() を使うメリットと活用シーン

getParameter() を使う最大のメリットは、フォームから送信された値をとても簡単に扱える点にあります。 HTMLとServletをつなぐ役割を担っており、特別な設定をしなくても、名前を指定するだけで値を取得できます。 この分かりやすさは、初心者にとって大きな安心材料となります。

また、getParameter() は汎用性が高く、さまざまな場面で利用できます。 ログイン画面、検索フォーム、問い合わせフォーム、アンケート入力など、 ユーザーが何かを入力する仕組みがある限り、必ず登場すると言っても過言ではありません。 Webアプリケーションの多くは、入力と処理の繰り返しで成り立っているため、 getParameter() を理解することは開発全体の理解にも直結します。

例えば、検索フォームでは、ユーザーが入力したキーワードを取得し、 その内容をもとにデータベース検索を行います。 このとき、検索キーワードを受け取る役割を果たすのが getParameter() です。 値を取得できなければ、検索処理自体が成立しません。

さらに、getParameter() は複数の値を同時に扱うこともできます。 フォームに入力欄がいくつあっても、それぞれの name 属性を指定することで、 必要な情報を一つずつ取得できます。 この仕組みによって、複雑な入力画面でも柔軟に対応できるのです。


String keyword = request.getParameter("keyword");
String category = request.getParameter("category");

if (keyword != null && category != null) {
    response.getWriter().println("検索キーワード:" + keyword);
    response.getWriter().println("カテゴリ:" + category);
}

この例では、検索キーワードとカテゴリという二つの値を取得しています。 getParameter() を使うことで、フォームの構造が多少複雑になっても、 Servlet側の処理は直感的に書くことができます。 これが、実務で頻繁に使われる理由の一つです。

また、設定画面や登録画面など、入力内容が多いページでも、 同じ書き方で値を受け取れる点は大きなメリットです。 一度覚えてしまえば、他の画面でもそのまま応用できるため、 学習コストが低い点も初心者向きだと言えるでしょう。

8. getParameter() 使用時の注意点とよくあるミス

8. getParameter() 使用時の注意点とよくあるミス
8. getParameter() 使用時の注意点とよくあるミス

便利な getParameter() ですが、使い方を間違えるとエラーや不具合の原因になります。 初心者がつまずきやすいポイントを事前に知っておくことで、 トラブルを未然に防ぐことができます。

まず最も多いミスが、HTMLの name 属性と getParameter() の引数が一致していないケースです。 見た目が似ていても、アルファベットの大文字小文字や一文字の違いがあると、 値は取得できません。 この場合、エラーは出ずに null が返ってくるため、原因に気づきにくいのが特徴です。

次に注意したいのが、未入力時の扱いです。 フォームで何も入力されなかった場合、 getParameter() は空文字や null を返すことがあります。 これをそのまま処理すると、想定外の動作につながることがあります。


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

if (password == null || password.isEmpty()) {
    response.getWriter().println("パスワードを入力してください");
}

このように、値を取得した後は必ずチェックを行う習慣をつけましょう。 特にログインや登録処理では、入力チェックが欠かせません。 getParameter() は値を取るだけなので、 正しいかどうかを判断する処理は開発者が実装する必要があります。

さらに、数値として扱う場合にも注意が必要です。 フォームから送られてくる値は、すべて文字として受け取られます。 そのため、数値変換に失敗すると例外が発生します。 入力内容が正しい形式かどうかを確認してから変換することが重要です。

もう一つの注意点として、文字コード設定の順番があります。 前の章でも触れたように、文字コードは getParameter() を呼ぶ前に設定しなければなりません。 順番を誤ると、日本語が正しく取得できず、文字化けが発生します。

これらの注意点は、一度経験すると理解しやすくなりますが、 初心者のうちは原因が分からずに悩むことが多い部分です。 エラーが出ない場合でも、「値が正しく取れているか」を意識して確認することが大切です。

9. getParameter() でフォーム値を受け取る重要ポイント整理

9. getParameter() でフォーム値を受け取る重要ポイント整理
9. getParameter() でフォーム値を受け取る重要ポイント整理

ここまで解説してきた内容を踏まえて、 getParameter() を使う際の重要なポイントを整理しておきましょう。 ポイントを意識することで、フォーム処理のミスを大きく減らすことができます。

第一に、HTMLの name 属性と getParameter() の引数は必ず一致させることです。 フォームとServletは、この名前を通じてつながっています。 ここがずれると、どれだけコードを書いても値は取得できません。

第二に、取得した値は必ずチェックすることです。 null や空文字を想定しない処理は、エラーの原因になります。 ユーザーの入力は常に想定外が起こるものだと考え、 安全な処理を書く意識を持ちましょう。

第三に、文字コード設定を忘れないことです。 特に日本語を扱う場合、リクエスト処理の最初に文字コードを指定することが必須です。 この一行を入れるだけで、多くのトラブルを防ぐことができます。

最後に、getParameter() はServlet開発の基礎であり、応用の土台でもあります。 ここを正しく理解していれば、ログイン機能や登録処理、 検索機能など、より高度な機能にもスムーズに挑戦できます。

初心者のうちは、フォーム処理が難しく感じるかもしれませんが、 一つ一つの流れを整理して理解すれば、決して複雑な仕組みではありません。 getParameter() を自在に扱えるようになることは、 Servlet開発者としての大きな一歩と言えるでしょう。


request.setCharacterEncoding("UTF-8");
String userId = request.getParameter("userId");
String email = request.getParameter("email");

if (userId != null && email != null) {
    response.getWriter().println("ユーザーID:" + userId);
    response.getWriter().println("メールアドレス:" + email);
}

このような基本形をしっかり押さえておけば、 フォーム処理で困る場面は大幅に減ります。 getParameter() は地味に見えますが、 Webアプリケーションを支える非常に重要な存在なのです。

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

カテゴリの一覧へ
新着記事
サーブレットからJSPへ値を渡す方法を完全解説!RequestDispatcherで画面遷移を理解しよう
Java の特徴とできることをわかりやすく紹介|初心者向け解説ガイド
Javaとは?初心者向けにやさしく解説
Spring Bootでのエラーハンドリングの基本を学ぼう|初心者でもわかる例外処理の仕組み
人気記事
No.1
Java&Spring記事人気No1
SQLのロック(LOCK)を完全ガイド!初心者でもわかるデータの整合性の守り方
No.2
Java&Spring記事人気No2
Java のファイル構成を理解しよう(.javaと.class)|初心者向けにわかりやすく解説
No.3
Java&Spring記事人気No3
SQLのビュー(VIEW)を完全ガイド!初心者でもわかる仮想テーブルの使い方
No.4
Java&Spring記事人気No4
Javaで文字列が含まれているか調べるcontains()の使い方