JSPですべてのフォームパラメータを読み取る方法|getParameterNames()の使い方
JSPですべてのフォームパラメータを読み取る方法
Webアプリケーション開発では、フォームから送信されたすべてのパラメータの名前と値をまとめて確認したいケースがよくあります。JSPでは、HttpServletRequestインターフェースが提供するgetParameterNames()メソッドを利用することで、リクエストに含まれる利用可能なすべてのフォームパラメータ名を取得できます。
このメソッドは、パラメータ名を格納したEnumerationオブジェクトを返します。なお、要素の並び順は保証されていないため、特定の順序に依存した処理は避けてください。
Enumerationを取得した後は、標準的な手順でループ処理を行います。hasMoreElements()メソッドでまだ要素が残っているかどうかを判定し、nextElement()メソッドで各パラメータ名を1つずつ取り出します。
JSPサンプルコード
以下は、getParameterNames()メソッドを使ってすべてのフォームパラメータを読み取り、表形式で表示する汎用的な例です。
<%@ page import = "java.io.*,java.util.*" %>
<html>
<head>
<title>フォームパラメータ読み取りの例</title>
</head>
<body>
<center>
<h2>フォームパラメータ読み取りの例</h2>
<table width = "100%" border = "1" align = "center">
<tr bgcolor = "#949494">
<th>パラメータ名</th>
<th>パラメータ値</th>
</tr>
<%
Enumeration paramNames = request.getParameterNames();
while(paramNames.hasMoreElements()) {
String paramName = (String)paramNames.nextElement();
out.print("<tr><td>" + paramName + "</td>\n");
String paramValue = request.getParameter(paramName);
out.println("<td> " + paramValue + "</td></tr>\n");
}
%>
</table>
</center>
</body>
</html>送信側フォーム(Hello.htm)
続いて、このJSPへデータをPOST送信するHTMLファイル「Hello.htm」の内容です。
<html> <body> <form action = "main.jsp" method = "POST" target = "_blank"> <input type = "checkbox" name = "maths" checked = "checked" /> 数学 <input type = "checkbox" name = "physics" /> 物理 <input type = "checkbox" name = "chemistry" checked = "checked" /> 化学 <input type = "submit" value = "科目を選択" /> </form> </body> </html>
上記のHello.htmからJSPを呼び出すと、チェックされた科目に応じて、以下のような結果が出力されます。
実行結果:フォームパラメータの一覧表示
| パラメータ名 | パラメータ値 |
|---|---|
| maths | on |
| chemistry | on |
補足ポイント
チェックボックスにvalue属性を指定していない場合、選択時には既定値である「on」がサーバーへ送信されます。そのため、実行結果ではチェックされた「maths」と「chemistry」だけが「on」として表示され、未選択の「physics」は含まれません。
また、フォームパラメータの値を取得する際は、必ずrequest.getParameter()を使用してください。似た名前のgetHeader()はHTTPヘッダー情報を取得するためのメソッドであり、フォームデータの読み取りには使用できません。この混同は初心者に多いミスなので注意しましょう。
-
Androidで今後届くすべての通知を読み取る方法!NotificationListenerServiceの実装手順
この記事では、Androidアプリで今後届くすべての通知を読み取る方法を解説します。Android標準のNotificationListenerServiceを利用すれば、端末に表示される通知をリアルタイムで監視し、内容や発行元のパッケージ名を取得できます。NotificationListenerServiceとはNotificationListenerServiceは、システムに投稿された通知(StatusBarNotification)の追加・削除イベントを受け取れる特殊なサービスです。利用するには、ユーザーが「通知へのアクセス」設定でアプリを明示的に許可する必要があります。メッセージの自
-
JSPでCookieを設定する方法を3ステップでわかりやすく解説
JSPでCookieを設定する基本の流れ JSPでCookieを扱う場合、基本的には次の3つのステップで設定を行います。 Cookieオブジェクトを作成する 有効期限(最大生存期間)を設定する HTTPレスポンスヘッダーにCookieを追加して送信する それぞれの手順を順番に見ていきましょう。 ステップ1:Cookieオブジェクトの作成 Cookieクラスのコンストラクタに、Cookieの名前と値(どちらも文字列)を引数として渡してオブジェクトを生成します。 Cookie cookie = new Cookie("key","value"); 注意点