カテゴリ: Jakarta EE 更新日: 2025/11/25

JakartaEE JSPのリクエスト属性とスコープの基本を徹底解説!初心者向け入門ガイド

Jakarta EE JSPのリクエスト属性とスコープの基本
Jakarta EE JSPのリクエスト属性とスコープの基本

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

生徒

「先生、JakartaEEのJSPでリクエスト属性とかスコープっていう言葉をよく見かけるんですが、いまいち違いがわからないんです。」

先生

「いい質問だね。JSPではデータをページ間で受け渡したり、セッション単位で保持したりする仕組みがあって、それをリクエスト属性やスコープと呼ぶんだよ。」

生徒

「スコープって複数あるんですか?」

先生

「その通り。リクエストスコープ、セッションスコープ、アプリケーションスコープの三種類がよく使われるんだ。順番に基本から見ていこう。」

1. JakartaEE JSPにおけるリクエスト属性とは?

1. JakartaEE JSPにおけるリクエスト属性とは?
1. JakartaEE JSPにおけるリクエスト属性とは?

JakartaEEのJSPでは、リクエスト属性を使ってサーブレットからJSPへデータを受け渡すことができます。例えばフォームの入力値や検索結果などをサーブレットで処理し、その結果をJSPに表示する場合に役立ちます。リクエスト属性は、HttpServletRequestオブジェクトのsetAttributeメソッドで保存し、JSP側ではgetAttributeで取り出せます。


request.setAttribute("userName", "太郎");
RequestDispatcher dispatcher = request.getRequestDispatcher("result.jsp");
dispatcher.forward(request, response);

ようこそ、<%= request.getAttribute("userName") %> さん!

リクエスト属性は一度のリクエスト処理の間だけ有効で、リダイレクトすると消えてしまいます。この特徴を理解することで、誤ったデータ保持を防げます。

2. JSPのスコープの種類と基本

2. JSPのスコープの種類と基本
2. JSPのスコープの種類と基本

JSPのスコープはデータをどの範囲で保持するかを示す考え方です。初心者が理解すべきポイントは、スコープによってデータの寿命と共有範囲が異なるという点です。

  • リクエストスコープ:1回のリクエスト処理の間だけ有効。
  • セッションスコープ:ユーザーごとのブラウザセッション中有効。
  • アプリケーションスコープ:サーバー全体で共有、アプリケーションが稼働している間有効。

3. セッションスコープの使い方

3. セッションスコープの使い方
3. セッションスコープの使い方

セッションスコープは、ログインユーザーの情報を保持する際によく使われます。セッションオブジェクトを使えば、同じユーザーの複数リクエストにわたってデータを保持できます。


HttpSession session = request.getSession();
session.setAttribute("loginUser", "太郎");

ログイン中のユーザー:<%= session.getAttribute("loginUser") %>

セッションスコープは便利ですが、使いすぎるとメモリを圧迫するため、必要な情報だけを保持するように心がけましょう。

4. アプリケーションスコープの使いどころ

4. アプリケーションスコープの使いどころ
4. アプリケーションスコープの使いどころ

アプリケーションスコープはサーバー全体で共有されるため、すべてのユーザーに共通のデータを扱うときに使います。例えばアプリケーション全体の設定値や統計データを保持する用途があります。


ServletContext context = getServletContext();
context.setAttribute("appTitle", "サンプルアプリ");

<%= application.getAttribute("appTitle") %>

アプリケーションスコープは全ユーザー共通なので、ユーザーごとの状態管理には向きません。その違いを理解することで、効率的にデータを扱えます。

5. リクエスト属性とスコープの実践的な使い分け

5. リクエスト属性とスコープの実践的な使い分け
5. リクエスト属性とスコープの実践的な使い分け

初心者がつまずきやすいのは「どのスコープを選べばいいのか」という点です。リクエスト属性は一時的なデータ渡し、セッションスコープはユーザー固有のデータ保持、アプリケーションスコープは全体共有と覚えておくと整理しやすいです。

例えば検索結果を表示する場合はリクエスト属性、ログイン情報はセッションスコープ、サイト全体のアクセスカウンタはアプリケーションスコープを使うと良いでしょう。

6. JSPにおけるEL式との関係

6. JSPにおけるEL式との関係
6. JSPにおけるEL式との関係

JSPではExpression Language(EL式)を使うことで、スコープのデータをより簡単に参照できます。リクエストスコープやセッションスコープの値を直接JSPに埋め込めるため、コードがシンプルになります。


<p>ようこそ、${userName} さん!</p>
<p>ログインユーザー:${sessionScope.loginUser}</p>

EL式を活用することで、可読性が高まり、ビジネスロジックと表示の分離がしやすくなります。これもJakartaEE JSPで学んでおくべき大切な基本です。

カテゴリの一覧へ
新着記事
New1
Play Framework
Play Frameworkでフォームデータをコントローラで扱う方法を完全解説|Java初心者向けコントローラ入門
New2
Jakarta EE
Jakarta EE JSPにおけるJSTLとスクリプトレットの違いと使い分けを初心者向けに徹底解説
New3
Play Framework
Play Frameworkでクエリパラメータをコントローラで処理する方法を完全解説|Java初心者向け入門
New4
Play Framework
Play FrameworkとSpring Bootの違いを徹底比較!初心者でもわかるJavaフレームワーク入門
人気記事
No.1
Java&Spring記事人気No1
Jakarta EE
Jakarta EEのリリースサイクルとバージョンの進化をやさしく解説!
No.2
Java&Spring記事人気No2
Jakarta EE
Jakarta サーブレットのHttpServletRequestを徹底解説!初心者でもわかる基本操作と使い方
No.3
Java&Spring記事人気No3
Jakarta EE
Jakarta EEとSpringの比較|どちらを選ぶべきか?初心者向けに徹底解説!
No.4
Java&Spring記事人気No4
Jakarta EE
Jakarta EEとJava EEアプリの互換性を完全解説!移行で困らないための基礎知識
No.5
Java&Spring記事人気No5
Jakarta EE
Jakarta EE JSPでJSTL SQLタグを使った簡易データベースアクセスをやさしく解説
No.6
Java&Spring記事人気No6
Jakarta EE
Jakarta EE JSPにおけるJSTL国際化タグ(fmt:message)の使い方を初心者向けに完全解説
No.7
Java&Spring記事人気No7
Jakarta EE
Jakarta EE JSPでJSTLを使ったJSONやREST APIレスポンス処理を初心者向けにやさしく解説
No.8
Java&Spring記事人気No8
Play Framework
Play Frameworkでリクエストデータの受け取り方を完全解説|Java初心者向けコントローラ入門