こんにちは、大学時代にプログラミングを始め、現在はエンジニアをしている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メソッドを使ってリクエストパラメータを取得する方法でした。
挫折せずにプログラミングを学ぶためには?
挫折せずにプログラミングを学ぶために必要なこと
僕はプログラミングで挫折した経験があります。
それは周りに聞ける人がいなく、一人でエラーと戦っていたからです。
Freeksは月額10,780円という破格の値段で、現役エンジニアに質問する環境を手に入れることができるプログラミングスクールです。
次のような悩みを少しでも抱えていたら、まずは無料カウンセリングを受けてみてください。
申込みは1分でできます。学習する環境にお金を使うというのは良い自己投資になります。
>>Freeksの無料カウンセリングはこちら
【関連記事】Freeks評判、口コミ