【サーブレット&jsp】ArrayListの受け渡し方法を解説

Java

今回の記事ではサーブレットとjspとでArrayListを受け渡す方法について解説します。
サーブレットとjsp間での値の受け渡しは必須ですが、中でもArrayListの受け渡しはデータベースから取得した複数のデータを受け渡す際にも利用することがあります。
利用頻度の高い技術ですので、ぜひこの記事を読んで使えるようにしておきましょう。

サーブレットとjspの値の受け渡しについてはこちらの記事も参考にしてみてください。

「独学だと何から勉強したら良いかわからない」という方にはDig Skillがおすすめです!
Dig Skillでは月1000円でオリジナルのカリキュラムを使ってWebアプリの開発方法を学ぶことができます!30日間の無料体験もあるので、公式サイトをチェックしてみてください!

サーブレット

早速コードを使って解説していきます。
今回はリクエストを受け取ったサーブレット内で、Listを作成して、それをリクエストスコープに格納します。

doGetメソッド

/**
  * ArrayListを返却する
  */
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
	// リストの生成
	List<String> list = new ArrayList<>();
		
	// リストに要素を追加する
	list.add("僕は勉強ができない");
	list.add("僕は愛を証明しようと思う");
	list.add("CHANCE");
		
	// リクエストスコープにArrayListを設定
	request.setAttribute("list", list);
		
	// 次の画面に遷移
	request.getRequestDispatcher("/Result.jsp").forward(request, response);
}

以下詳しく解説していきます。

まずは次の記述でListを準備しています。
今回は例としてString型のListを作成しました。
本のタイトルを3つ格納しています。

// リストの生成
List<String> list = new ArrayList<>();
		
// リストに要素を追加する
list.add("僕は勉強ができない");
list.add("僕は愛を証明しようと思う");
list.add("CHANCE");

次の箇所でリクエストスコープに作成したListを「list」という名前で設定しています。

// リクエストスコープにArrayListを設定
request.setAttribute("list", list);

最後に「Result.jsp」に遷移するための記述をしています。

// 次の画面に遷移
request.getRequestDispatcher("/Result.jsp").forward(request, response);

jsp

次にjspでListを受け取る方法についてみていきます。
受け取るjspは次のようになります。

Result.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.util.List" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

	<% List<String> list = (List<String>)request.getAttribute("list"); %>
	
	<% for(String str: list) { %>
		<%=str %><br>
	<% } %>

</body>
</html>

重要なポイントに絞って解説していきます。

まずはListをjsp内で利用できるようにするためにインポートしている箇所です。
次のような記述をすることでJavaの様々なクラスはもちろん、自作したクラスjsp内で利用することができるようになります。

<%@ page import="java.util.List" %>

次にListをリクエストスコープから取り出している箇所です。
取り出す際に(List<String>)をつけることでキャストして、受け取ることが出来ます。

<% List<String> list = (List<String>)request.getAttribute("list"); %>

最後に受け取ったListを表示する箇所です。
拡張forを使って、Listの要素を順番に取り出して、画面に表示しています。

<% for(String str: list) { %>
	<%=str %><br>
<% } %>

動作確認

動作確認をしてみましょう。
サーバーを起動して、URLを指定すると次のように画面表示されます。

Listをサーブレットから受け取り、jspで表示できるていることが確認できました。

今回はサーブレットとjspでListを受け渡す方法について解説していきました。
こちらはデータベースから取得した複数データを受け渡す際によく使うので、いつでも使えるようにしておきましょう。

「独学だと何から勉強したら良いかわからない」という方にはDig Skillがおすすめです!
Dig Skillでは月1000円でオリジナルのカリキュラムを使ってWebアプリの開発方法を学ぶことができます!30日間の無料体験もあるので、公式サイトをチェックしてみてください!

コメント

タイトルとURLをコピーしました