こんにちは。「Javaを復習する初心者」です。
今回はJSPでリクエストパラメータを取得するということをやりました。
JSPファイルのURLの末尾にパラメータを追加して、表示するということが目的です。
パラメータ
今回は以下のパラメータを追加することにしました。
パラメータ名 | 値 |
---|---|
name | test |
age | 12 |
上記のパラメータをJSPに送るには「xxx.jsp?name=test&age=12」というような指定をします。
JSP
以下、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の末尾に追加した場合です。パラメータに対応する値が出力されています。