カテゴリ: JSP 更新日: 2026/07/11

JSPのrequestスコープとは?複数JSP間でデータを受け渡す方法を初心者向けに徹底解説

requestスコープとは?複数JSP間でデータを受け渡す方法
requestスコープとは?複数JSP間でデータを受け渡す方法

先生と生徒の会話形式で理解しよう

生徒

「JSPで別のページにデータを渡したいときはどうすればいいんですか?」

先生

「その場合はrequestスコープを使うと、同じリクエスト内でデータを受け渡すことができます。」

生徒

「pageスコープと何が違うんですか?」

先生

「pageスコープはそのページだけですが、requestスコープは別のJSPにもデータを渡せる点が大きな違いです。」

1. requestスコープとは何か

1. requestスコープとは何か
1. requestスコープとは何か

JSPのrequestスコープとは、一つのリクエストの中でデータを共有できる仕組みです。初心者がJSPやサーブレットを学ぶ際に必ず理解しておきたい重要な概念の一つです。

requestスコープは、ブラウザから送信されたリクエストが処理される間だけ有効であり、その間に複数のJSPやサーブレット間でデータをやり取りすることができます。

つまり、同じリクエストの流れの中であれば、ページをまたいでデータを保持できるという特徴があります。

2. requestスコープの特徴

2. requestスコープの特徴
2. requestスコープの特徴

requestスコープの最大の特徴は、フォワードされた別のJSPでも同じデータを利用できる点です。これにより、サーブレットで処理した結果をJSPで表示することが可能になります。

また、リクエストが終了すると自動的にデータは破棄されるため、不要なデータが残る心配がなく、安全に利用できるのも特徴です。

セッションのように長期間データを保持する必要がない場合に適しており、軽量で扱いやすいスコープとして多くの場面で利用されます。

3. requestスコープの基本的な使い方

3. requestスコープの基本的な使い方
3. requestスコープの基本的な使い方

requestスコープは、requestオブジェクトのsetAttributeメソッドを使ってデータを保存し、getAttributeで取得します。これはJSPとサーブレットの両方で共通して使える基本操作です。


<%
    request.setAttribute("message", "リクエストスコープのテスト");
%>

<p>${message}</p>

このように設定した値は、同じリクエスト内であれば他のJSPでも取得することができます。

4. サーブレットからJSPへデータを渡す方法

4. サーブレットからJSPへデータを渡す方法
4. サーブレットからJSPへデータを渡す方法

実務ではサーブレットで処理を行い、その結果をJSPに渡して表示するという流れが一般的です。このときにrequestスコープが活躍します。


import java.io.IOException;
import jakarta.servlet.*;
import jakarta.servlet.http.*;

public class SampleServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        request.setAttribute("userName", "山田太郎");

        RequestDispatcher dispatcher = request.getRequestDispatcher("result.jsp");
        dispatcher.forward(request, response);
    }
}

このようにサーブレットで設定した値は、フォワード先のJSPでそのまま利用することができます。


<p>ユーザー名: ${userName}</p>

5. requestスコープとpageスコープの違い

5. requestスコープとpageスコープの違い
5. requestスコープとpageスコープの違い

pageスコープはそのページ内でしか使えませんが、requestスコープはフォワードを使うことで別のJSPにもデータを渡せる点が大きな違いです。

そのため、画面遷移を伴う処理や、サーブレットとJSPの連携ではrequestスコープが適しています。

初心者はまずpageスコープとrequestスコープの違いをしっかり理解することで、JSPのデータ管理の基礎を身につけることができます。

6. requestスコープの具体的な活用例

6. requestスコープの具体的な活用例
6. requestスコープの具体的な活用例

requestスコープは、フォーム入力値の受け渡しや検索結果の表示など、実際のWebアプリケーションで頻繁に利用されます。


String keyword = request.getParameter("keyword");
request.setAttribute("keyword", keyword);

RequestDispatcher dispatcher = request.getRequestDispatcher("searchResult.jsp");
dispatcher.forward(request, response);

<p>検索キーワード: ${keyword}</p>

このようにユーザーの入力値を別ページに渡して表示することで、動的なWebページを実現できます。

7. requestスコープの注意点

7. requestスコープの注意点
7. requestスコープの注意点

requestスコープはリダイレクトを行うとデータが引き継がれないという点に注意が必要です。リダイレクトは別のリクエストになるため、データは失われます。

また、長期間データを保持したい場合には適していないため、その場合はsessionスコープを利用する必要があります。


response.sendRedirect("result.jsp");

上記のような処理ではrequestスコープのデータは保持されないため、フォワードとの違いをしっかり理解して使い分けることが重要です。

まとめ

まとめ
まとめ

requestスコープの基本と重要な考え方

JSPのrequestスコープは、複数のJSPやサーブレット間でデータを受け渡すために欠かせない重要な仕組みです。特に初心者がJSP開発やサーブレット連携を学ぶ際には、必ず理解しておくべき基礎知識となります。

requestスコープは一つのリクエストの中でのみ有効であり、そのリクエストが処理されている間だけデータを保持することができます。この特徴によって、サーブレットで作成したデータをJSPに渡し、そのまま画面に表示するという一連の流れを実現できます。

pageスコープとの違いとして、pageスコープは一つのページ内でしか使えないのに対して、requestスコープはフォワードを使うことで別のJSPにもデータを渡せる点が大きなポイントです。この違いを理解することで、JSPのスコープ設計がより明確になります。

requestスコープの使い方の流れを整理

requestスコープの基本的な使い方は、サーブレットまたはJSPで値を設定し、フォワード先のJSPでその値を取得するという流れになります。この流れをしっかりと理解することが、Webアプリケーション開発の第一歩となります。


request.setAttribute("title", "リクエストスコープ入門");

RequestDispatcher dispatcher = request.getRequestDispatcher("sample.jsp");
dispatcher.forward(request, response);

<h1>${title}</h1>

このようにサーブレットで設定した値は、フォワード先のJSPでそのまま利用することができるため、処理と表示を分離した設計が可能になります。

EL式を活用した効率的なデータ表示

requestスコープの値はEL式を使うことで簡単に表示できます。スクリプトレットを使わずに記述できるため、コードが読みやすくなり、保守性も向上します。


<p>${message}</p>

EL式はスコープを自動的に検索するため、特別な指定をしなくてもrequestスコープの値を取得できる点が初心者にとって大きなメリットです。

requestスコープが活躍する場面

requestスコープは、検索処理やフォーム送信の結果表示など、ユーザーの操作に応じて画面を更新する場面で多く利用されます。例えば検索キーワードや入力内容を次のページに渡す際に非常に便利です。


String name = request.getParameter("name");
request.setAttribute("name", name);

RequestDispatcher dispatcher = request.getRequestDispatcher("result.jsp");
dispatcher.forward(request, response);

<p>入力された名前: ${name}</p>

このようにユーザーの入力値をそのまま別のページで表示できるため、動的な画面を作る際には欠かせない仕組みです。

フォワードとリダイレクトの違いを理解する

requestスコープを正しく使うためには、フォワードとリダイレクトの違いを理解することが重要です。フォワードは同じリクエストのままページを移動するため、requestスコープのデータが保持されます。

一方でリダイレクトは新しいリクエストを発行するため、requestスコープのデータは引き継がれません。この違いを知らないと、データが消えてしまう原因が分からずに困ることがあります。


response.sendRedirect("result.jsp");

上記のような処理ではデータは引き継がれないため、requestスコープを使う場合はフォワードを使うことが基本となります。

スコープの使い分けができるようになることが重要

JSP開発では、pageスコープ、requestスコープ、sessionスコープ、applicationスコープの使い分けが非常に重要です。requestスコープはその中でも、ページ間のデータ受け渡しに特化した役割を持っています。

初心者の段階では、まずrequestスコープをしっかり理解し、ページ遷移を伴う処理でどのようにデータが流れているのかを意識することが大切です。

この理解ができるようになると、サーブレットとJSPを組み合わせた実践的なWebアプリケーション開発がスムーズに行えるようになります。

requestスコープは、短期間のデータ管理に最適であり、無駄なデータ保持を避けることで効率的なアプリケーション設計を実現できます。基本をしっかり押さえておくことで、より高度なスコープ管理にも対応できるようになります。

先生と生徒の振り返り会話

生徒

「requestスコープは複数のページにデータを渡せるのがポイントなんですね。」

先生

「その通りです。フォワードを使うことで同じリクエスト内でデータを共有できます。」

生徒

「EL式で簡単に表示できるのも便利だと感じました。」

先生

「コードがシンプルになるので、実務でもよく使われます。」

生徒

「リダイレクトするとデータが消えるのは注意が必要ですね。」

先生

「はい。その違いを理解して使い分けることがとても重要です。」

生徒

「スコープごとの違いを意識して使うようにします。」

先生

「それができればJSPの理解が大きく深まります。」

生成AIを基礎から学びたい方へ

ChatGPTなどの生成AIをこれから学びたい方に向けて、AIスキルアカデミーの口コミ・評判、料金、無料セミナーの内容を詳しくまとめています。

AIスキルアカデミーの口コミ・評判を詳しく見る
関連記事:
カテゴリの一覧へ
新着記事
New1
Spring
Spring Bootの@RequestParamの使い方を解説!初心者でもわかるGETリクエストのパラメータ取得
更新記事
New2
Java
JavaのLocalDateTime.formatメソッドを完全解説!初心者でもわかる日時フォーマット入門
更新記事
New3
Java
Javaのラムダ式とStreamのfilterを徹底解説!初心者でもわかる条件による絞り込み処理
更新記事
New4
Servlet
JavaのServletExceptionクラスを初心者向けに徹底解説!
更新記事
人気記事
No.1
Java&Spring記事人気No1
Servlet
JavaサーブレットのdoPostメソッドとは?初心者向けにやさしく解説!
No.2
Java&Spring記事人気No2
Servlet
JavaのHttpServletRequestWrapperとgetSessionメソッドの使い方を徹底解説!初心者向けServletのセッション管理入門
No.3
Java&Spring記事人気No3
Servlet
JavaのServletExceptionクラスを初心者向けに徹底解説!
No.4
Java&Spring記事人気No4
Servlet
JavaのHttpServletResponseクラスを初心者向けに徹底解説!
No.5
Java&Spring記事人気No5
Java
JavaのStringクラスとlengthメソッドを完全解説!初心者でも理解できる文字列の長さ取得の使い方
No.6
Java&Spring記事人気No6
Servlet
JavaのHttpSessionAttributeListenerとattributeRemovedメソッドの使い方を徹底解説!初心者でもわかるセッション属性の削除と監視
No.7
Java&Spring記事人気No7
Java
Javaのクラスとインスタンス化、コンストラクタの使い方完全ガイド!初心者でもわかるオブジェクト指向の基礎
No.8
Java&Spring記事人気No8
Servlet
JavaのHttpSessionインターフェースとgetSessionContextメソッドを徹底解説!初心者でもわかるセッション管理の基本