
こんにちは、大学時代にプログラミングを始め、現在はエンジニアをしているuhablog(ウハブログ)です。
今回の記事ではJavaのサーブレットでwebアプリを開発する際に画面から送られてくるパラメータを取得する際に利用されるgetParameterメソッドの使い方について解説していきます。
「サーブレットを勉強中で、画面から送られてくるパラメータの取得方法を知りたい」
「getParameterメソッドを使って、パラメータを取得する方法を知りたい」
という方はぜひ最後まで読んでいってください!
getParameterメソッドとは
getParameterメソッドは画面から送られてきたデータを取得する時に使われるメソッドです。
このgetParameterメソッドはHttpServletRequestクラスのオブジェクトで利用することができ、さまざまなリクエスト情報が格納されています。
画面から送られてきたパラメータを使って処理を行うというのはWebアプリの開発では、基本中の基本となります。
そのためのメソッドがgetParameterメソッドということになります。
getParameterメソッドの使い方
画面から送られてくるデータのことをリクエストパラメータといいます。
そしてこのリクエストパラメータは「リクエストパラメータ名」と「値」のペアで送られてきます。
ちなみに、このリクエストパラメータ名はhtmlのname属性で指定した名前となります。
getParameterメソッドはリクエストパラメータの名前を指定することで、値を取得することができるメソッドです。
次のように記述することで、値を取得することが出来ます。
String 変数名 = request.getParameter("リクエストパラメータ名");
getParameterメソッドの注意点として、このメソッドを使うとString型の値が取得されるといことです。
仮にリクエストパラメータが数値であったとしても、getParameterメソッドを使うとString型の文字列として扱うことになるので注意が必要です。
数値を扱いたい場合にはInteger.parseIntメソッドを利用して、int型に変換するなどの1手間必要になります。
実際にコードでgetParameterメソッドの使い方を確認
では次に実際に画面からリクエストパラメータを送り、サーブレットでgetParameterメソッドを使って、パラメータの値を取得します。
まずはリクエストパラメータを送る画面です。
nameというリクエストパラメータ名で名前を送信します。
またageという名前で年齢を送信します。
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>パラメータを送信する</title>
</head>
<body>
<form method="GET" action="get-parameter">
名前:<input type="text" name="name"><br>
年齢:<input type="number" name="age"><br>
<input type="submit" value="パラメータを送信する"><br>
</form>
</body>
</html>
次にサーブレットで送られてきたリクエストパラメータを取得し、画面に表示します。
package uhablog;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/get-parameter")
public class GetParameter extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* getParameterメソッドでリクエストパラメータを取得する
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// パラメータの受け取り
String name = request.getParameter("name");
int age = Integer.parseInt(request.getParameter("age"));
// HTML生成
response.setContentType("text/html;charset=Shift_JIS");
PrintWriter out = response.getWriter();
StringBuffer sb = new StringBuffer();
sb.append("<html>");
sb.append("<head>");
sb.append("<title>受け取った値の表示</title>");
sb.append("</head>");
sb.append("<body>");
sb.append("<p>名前は");
sb.append(name);
sb.append("です</p>");
sb.append("<p>年齢は");
sb.append(age);
sb.append("です</p>");
sb.append("</body>");
sb.append("</html>");
out.println(new String(sb));
out.close();
}
}
サーバーを起動して、画面を表示します。

フォームに値を入力して、ボタンをクリックします。
すると次のようにリクエストパラメータの値が取得され、画面に表示されます。

以上がgetParameterメソッドを使ってリクエストパラメータを取得する方法でした。
独学が辛いあなたへ
プログラミング学習にはエラーやわからないところというのはつきものです。
人に聞けば5分でわかることも、自分一人で悩んでいると1日数日時間を費やしてしまうこともあります。
そんな時にプログラミングスクールであれば、質問できる環境を手に入れることができます。
Freeksはいつでもどこでも豊富なカリキュラムを学ぶことができる月額制のプログラミングスクールです。
Freeksでは無料体験を行なっているので、質問できる環境を手に入れて、プログラミング学習を挫折することなく続けていきたいという方は無料体験に参加してみてください。
【関連記事】Freeks評判、口コミ
他のプログラミングスクール
月額10,780円のサブスク型プログラミングスクール!
>>Freeks公式サイト
20代におすすめ!無料で未経験からプログラマー就職まで実現できる!
>>ProgrammerCollege公式サイト
パーソナルメンターがつく充実したサポート
>>DMM WEBCAMP公式サイト
おすすめのプログラミングスクールについて詳しく知りたいという方はこちらの記事も参考にしてみてください。