【Java & サーブレット】ラジオボタンで選択された値をサーブレットで取得する

Java

今回の記事ではサーブレットで選択されたラジオボタンの値を取得する方法を解説していきます。
サーブレットをはじめ、WEBアプリケーションの開発では、画面で入力された値を受け取る処理は頻繁にある基本中の基本です。
この記事を読んで、ラジオボタンの値を取得する方法を学び、今後のwebアプリ開発の参考にしていただければと思います。

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

Udemyの動画講座でわかりやすくサーブレットを勉強するicon

ラジオボタンのデータを取得する方法

ラジオボタンというのは画面に表示されているいくつかの選択肢の中から一つを選択する際に利用されます。
例えば、次のように好きなプログラミング言語を一つ選択してもらう場合などに使うことが出来ます。

サーブレットで、このラジオボタンから選択された値を取得する場合には、HttpServletRequestオブジェクトに対して、getParameterメソッドを利用することで取得することが出来ます。

例えば先ほどの好きなプログラミング言語を選択するラジオボタンはhtmlで次のようになっています。

<label><input type="radio" name="lang" value="C">C</label><br>
<label><input type="radio" name="lang" value="Java">Java</label><br>
<label><input type="radio" name="lang" value="Python">Python</label><br>
<label><input type="radio" name="lang" value="PHP">PHP</label><br>
<label><input type="radio" name="lang" value="Ruby">Ruby</label><br>

このラジオボタンから選択されたデータを取得する際にはgetParameterメソッドの引数として、inputタグのname属性として指定している「lang」を渡すことでvalue属性で指定されている値を受け取ることが出来ます。
具体的には次のように記述します。

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

getParameterメソッドの利用方法についてはこちらの記事で詳しく解説しているので、合わせてご覧ください。

サーブレットでラジオボタンの値を取得するサンプル

今回は画面で好きなプログラミング言語を選択し、選択された値をサーブレットで受け取って、画面に表示するプログラムを作成します。

まず最初に画面でラジオボタンを表示するhtmlは次のようになります。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ラジオボタンの値を取得する</title>
</head>
<body>

<p>好きな言語を選択してください</p>
<form action="get-radio" method="get">
	<label><input type="radio" name="lang" value="C">C</label><br>
	<label><input type="radio" name="lang" value="Java">Java</label><br>
	<label><input type="radio" name="lang" value="Python">Python</label><br>
	<label><input type="radio" name="lang" value="PHP">PHP</label><br>
	<label><input type="radio" name="lang" value="Ruby">Ruby</label><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-radio")
public class GetRadio extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// パラメータの受け取り
		String lang = request.getParameter("lang");
		
		// 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(lang);
		sb.append("なんですね</p>");
		sb.append("</body>");
		sb.append("</html>");
		
		out.println(new String(sb));
		out.close();
	}
}

実行結果

サーバーを起動し、画面表示します。

「Java」を選択して、送信ボタンを押すと画面に「好きな言語はJavaなんですね」と表示されます。

以上がサーブレットで選択されたラジオボタンの値を取得する方法です。

私はプログラミング学習はオンライン動画学習サービスのUdemyで行うのが
圧倒的におすすめです。
Udemyでは

  • 動画で好きな時間・隙間時間に学べる
  • 一流のエンジニアから教えてもらえる
  • 好きな技術を体系的に学べる
  • 実際に手を動かしながら学ぶことができる
  • セール時であれば1500円〜2000円ほどで購入できる(大半の技術書より安い)
  • 講座自体がアップデートされていくので情報が古くなりにくい

Udemyにはサーブレットを学べる講座iconもあります。
「これからサーブレットを学んでJavaでWebアプリケーションを作れるようになりたい!」という方はチェックしてみてください

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