【Java・サーブレット】getParameterメソッドでリクエストパラメータを取得する

Java

今回の記事ではJavaのサーブレットでwebアプリを開発する際に画面から送られてくるパラメータを取得する際に利用されるgetParameterメソッドの使い方について解説していきます。
「サーブレットを勉強中で、画面から送られてくるパラメータの取得方法を知りたい」
「getParameterメソッドを使って、パラメータを取得する方法を知りたい」

という方はぜひ最後まで読んでいってください!

このブログでは初心者の方向けにサーブレットとjspでwebアプリを開発する方法をサンプルコード付きで解説しています。ぜひチャレンジしてみてください。

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メソッドを使ってリクエストパラメータを取得する方法でした。

プログラミング初心者からWebアプリを開発できるようになってエンジニアに就職・転職するまでの学習手順をまとめた記事もあります!
こちらもぜひご覧ください!!

コメント

タイトルとURLをコピーしました