【Java サーブレット】hiddenの値を取得する

Java

今回の記事ではサーブレットでhtmlから送られてくるhiddenの値を受け取る方法を解説していきます。

hiddenというのはinputタグのtype属性に指定できる値のことで、hiddenを設定されているinputタグは画面に表示されません。

画面に表示したくないけど、画面とサーバーで値をやり取りしたいというのはアプリ開発でよくあることです。

今回はhiddenを使って画面に表示せずにサーブレットと値をやり取りする方法について解説してきます。

hiddenの受け取り

hiddenの書き方

hiddenはinputタグのtype属性に設定することができます。
hiddenはユーザーが特別知る必要はないけれど、サーバー側に値を送りたい時などに利用されます。

具体的には次のように記述します。

<input type="hidden">

しかしこれだけではサーバー側に値を送ることはできません。

name属性とvalue属性を設定することで、サーバー側にデータが送られます。

<input type="hidden" name="hidden-name" value="hidden-value">

上のように書くことで、「hidden-name=hiddenvalue」というようなイメージでサーバー側に値を送ることができます。

サーバー側で受け取るためのメソッド

受け取るためにはサーブレットのdoGetメソッドやdoPostメソッドの引数として使われるHttpServletRequestのgetParameterメソッドを利用することで受け取ることができます。

getParameterメソッドの引数には受け取りたいリクエストパラメータのname属性の値を書きます。

request.getParameter("受け取るリクエストパラメータのname属性")

getParameterメソッドについては次の記事でも解説しています。

hiddenを受け取るサンプル

では実際のサンプルコードで確認します。

hidden-test.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>hiddenの値を送信する</title>
</head>
<body>
	<form action="hidden-servlet" method="post">
		<input type="hidden" name="hidden-name" value="hidden-value">
		<input type="submit" value="hiddenで送信する">
	</form>
</body>
</html>

HiddenServlet.java

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;

/**
 * Servlet implementation class HiddenServlet
 */
@WebServlet("/hidden-servlet")
public class HiddenServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	// hiddenで受け取った値を次の画面に表示する
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		// hiddenで送られてきたリクエストパラメータを受け取る
		String hiddenValue = request.getParameter("hidden-name");

		// 画面を描画する
		response.setContentType("text/html; charset=Shift_JIS");
		PrintWriter pw = response.getWriter();
		pw.println("<html>");
		pw.println("<head>");
		pw.println("<title>hiddenの受け取り</title>");
		pw.println("</head>");
		pw.println("<body>");
		pw.println("<p>hiddenで受け取った値は" + hiddenValue + "です。</p>");
		pw.println("</body>");
		pw.println("</html>");
	}
}

動作確認

サーバーを起動して動作確認を行います。

hiddenは画面に表示されません。
ボタンを押します。

しっかりとサーブレットに値が送られ、指定した値を取得することができています。

以上、サーブレットでhiddenの値を取得する方法でした。

このブログでは初心者の方向けにサーブレットとjspを使って、Webアプリを開発する方法を解説しています。
Todoアプリを開発する記事がありますので、Javaを使ってwebアプリを開発したい!Javaの学習をしてエンジニアになりたい!という方はぜひチャレンジしてみてください。

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