
今回の記事ではサーブレットで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の値を取得する方法でした。
プログラミング学習はUdemyがおすすめ
私はプログラミングの学習はUdemyで行うのが一番おすすめです。
Udemyでは動画講座でプログラミングなどのスキルを身につけることができます。
現役エンジニアがUdemyをオススメする理由は
・動画で好きなときに学べる
・一流の講師に学ぶことができる
・講師の方に質問ができる
・返金保証もある
・セールを頻繁に開催している
といったたくさんの理由があります。
現在Udemyではセールを開催しています!
通常時1万円から2万円前後の価格で講座が販売されていますが、セール時には1500円前後(ランチ代くらい)で一つの講座を購入することができます。
UdemyにはサーブレットでWebアプリ開発が学べる講座もあるので、JavaでWebアプリ開発する方法を学んでみたい!という方は今がチャンスです!
独学が不安な人へ
独学で学んでいく意志がある方にはUdemyなどで学習するのがおすすめですが、プログラミングを独学するにはそれなりにハードルがあります。
- プログラミングで一度挫折した経験がある
- 一人で学習する自信がないので、サポートが欲しい
という方にはプログラミングスクールを検討してみるのがおすすめです。