こんにちは。ハンドルネーム「Javaを復習する初心者」です。このサイトはプログラミング言語Javaの復習・学習をするブログです。プログラムの開発・実行はEclipseで行ってます。
スポンサーリンク
お知らせ
  • 参考文献のページ作りました。
  • Amazon.co.jpアソシエイトに参加していますが、参考文献の紹介はもしもアフィリエイトに統一しました。
  • 2016年10月9日からは投稿ペースを落とします。週1回くらいにする予定です。
スポンサーリンク

JSPでリクエストパラメータを取得する

こんにちは。「Javaを復習する初心者」です。今回はJSPでリクエストパラメータを取得するということをやりました。

JSPファイルのURLの末尾にパラメータを追加して、表示するということが目的です。

パラメータ

今回は以下のパラメータを追加することにしました。

パラメータ名
name test
age 12

上記のパラメータをJSPに送るには「xxx.jsp?name=test&age=12」というような指定をします。

JSP

以下、jspファイルの内容です。

<%@ page contentType="text/html;charset=UTF-8" %>
<%@ page import="java.util.Optional" %>
<%
 Optional<String> name = Optional.ofNullable(request.getParameter("name"));
 Optional<String> age  = Optional.ofNullable(request.getParameter("age"));
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>test</title>
</head>
<body>
<table>
  <tr>
    <td>name</td>
    <td><%= name.orElse("なし") %></td>
  </tr>
  <tr>
    <td>age</td>
    <td><%= age.orElse("なし") %></td>
  </tr>
</table>
</body>
</html>

1行目、2行目はディレクティブと呼ばれる記述です。@pageディレクティブを使っています。ページの処理方法を記述するようです。1行目は文字コードの指定です。contentType属性に文字コードを指定しています。2行目はimport文の記載です。

3行目から5行目は「<%」と「%>」で囲まれています。これはスクリプトレットと呼ばれます。Javaのコードそのものを記述できます。今回はパラメータの取得のために、Optionalクラスを使用しました。インスタンスの生成のためのメソッドの一つとして、Optional.ofNullable()メソッドがあります。これは引数がnullの場合も扱えるメソッドです。

request.getParameterメソッドでリクエストパラメータの値を取得しています。「request」は宣言なしで使用できます。これは暗黙オブジェクトと呼ばれます。getParameterメソッドは引数に対応するパラメータが存在しない場合、nullを返すようです。そのため、Optional.ofNullable()メソッドを使いました。

パラメータの値を出力するtd要素では内容を「<%= xxx %>」という書き方をしています。これは変数の値を出力するときに使います。

実効結果

以下、いくつかのパターンの実行結果を記載します。

name なし 
age なし 

リクエストパラメータなしの場合、request.getParameterメソッドの結果がnullになります。Optional.ofNullable()の引数がnullという状態です。その結果、Optional.orElse()メソッドは引数に指定された値を返却します。今回の場合は「なし」が出力されます。

name test 
age 12 

上記は「?name=test&age=12」をURLの末尾に追加した場合です。パラメータに対応する値が出力されています。