目次へ

3.3. parameterタグ/cookieタグ/headerタグ

parameterタグ・cookieタグ・headerタグはdefineタグに似ています。値を読み取り新しい変数を定義するのですが、値を読み取る先がparameterタグはHTTPリクエストパラメータ、cookieタグはクッキー、headerタグはHTTPヘッダーとなっています。またこれら3つのタグについては属性が同じで、以下のようになっています。

属性名 必須 スクリプト
可能
説明
id   新しい変数名。指定のスコープに登録される際の名前にもなる。
name parameterタグの場合は読み取るHTTPリクエストパラメータ名、cookieタグの場合はクッキー名、headerタグの場合はHTTPヘッダー名。
value  

nameで指定した名前が存在しなかった場合、変数に設定する値を指定。デフォルト値。

multiple   何らかの値が設定された場合、nameで指定した名前に該当する複数の値が変数に格納される。その時の変数の型は、cookieタグの場合はjavax.servlet.http.Cookie[]、それ以外のタグの場合はjava.lang.String[]になる。

以下の例では、「test」という名前のクッキーを探し、その値を「cookie_test」という変数に格納しています。defineタグのように特定のスコープに登録する事はしません。

<bean:cookie id="cookie_test" name="test" value="見つかりません" />
<%=cookie_test %>

value属性を指定せず、かつ指定の名前のクッキーが無かった場合には、例外が発生します。これはparameterタグ・headerタグでも同様です。

以下の例では、「name」という名前のHTTPリクエストパラメータを探し、その値を「param_name」という変数に格納しています。ただしmultiple属性が指定されているので、Stringの配列変数が作成されています。

<bean:parameter id="param_name" name="name" multiple="true" />
<% for(int i=0;i<param_name.length;i++){ %>
  <%=param_name[i] %><br>
<% } %>

もし指定のパラメータが無く、かつvalue属性が指定されている場合には、value属性の値を格納した要素1の配列が生成されます。

(実習課題3)

以下のWebアプリケーションを、Strutsを用いて作成しなさい。

  • HTTPヘッダーの名前と値の一覧を表示する事。
  • headerタグを使用する事。

解答例はこちら

(実習課題4)

以下のWebアプリケーションを、Strutsを用いて作成しなさい。

  • 特定のHTTPリクエストパラメータを表示する事。
  • そのパラメータには複数の値が存在するようにする事。
  • parameterタグを使用する事。

解答例はこちら

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp