プログラミング
 Computer >> コンピューター >  >> プログラミング >> プログラミング

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を呼び出すと、チェックされた科目に応じて、以下のような結果が出力されます。

実行結果:フォームパラメータの一覧表示

パラメータ名パラメータ値
mathson
chemistryon

補足ポイント

チェックボックスにvalue属性を指定していない場合、選択時には既定値である「on」がサーバーへ送信されます。そのため、実行結果ではチェックされた「maths」と「chemistry」だけが「on」として表示され、未選択の「physics」は含まれません。

また、フォームパラメータの値を取得する際は、必ずrequest.getParameter()を使用してください。似た名前のgetHeader()はHTTPヘッダー情報を取得するためのメソッドであり、フォームデータの読み取りには使用できません。この混同は初心者に多いミスなので注意しましょう。

  1. Androidで今後届くすべての通知を読み取る方法!NotificationListenerServiceの実装手順

    この記事では、Androidアプリで今後届くすべての通知を読み取る方法を解説します。Android標準のNotificationListenerServiceを利用すれば、端末に表示される通知をリアルタイムで監視し、内容や発行元のパッケージ名を取得できます。NotificationListenerServiceとはNotificationListenerServiceは、システムに投稿された通知(StatusBarNotification)の追加・削除イベントを受け取れる特殊なサービスです。利用するには、ユーザーが「通知へのアクセス」設定でアプリを明示的に許可する必要があります。メッセージの自

  2. JSPでCookieを設定する方法を3ステップでわかりやすく解説

    JSPでCookieを設定する基本の流れ JSPでCookieを扱う場合、基本的には次の3つのステップで設定を行います。 Cookieオブジェクトを作成する 有効期限(最大生存期間)を設定する HTTPレスポンスヘッダーにCookieを追加して送信する それぞれの手順を順番に見ていきましょう。 ステップ1:Cookieオブジェクトの作成 Cookieクラスのコンストラクタに、Cookieの名前と値(どちらも文字列)を引数として渡してオブジェクトを生成します。 Cookie cookie = new Cookie("key","value"); 注意点