カテゴリ: JSP 更新日: 2026/02/01

EL式で値を取得する基本!リクエストやセッションから取り出す方法

EL式で値を取得する基本!リクエストやセッションから取り出す方法
EL式で値を取得する基本!リクエストやセッションから取り出す方法

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

生徒

「先生、EL式って便利そうですが、リクエストスコープやセッションスコープの値を取り出す方法がよく分かりません…」

先生

「それは大事なポイントですね。EL式では、JSPのリクエストやセッションなどのスコープから、変数を簡単に取得できますよ。」

生徒

「スクリプトレットよりも書き方がシンプルなんですか?」

先生

「そのとおりです。では、EL式での値の取得方法を基本からじっくり確認していきましょう。」

1. EL式で値を取得する基本構文とは?

1. EL式で値を取得する基本構文とは?
1. EL式で値を取得する基本構文とは?

EL式(Expression Language)は、${}という記法でJSP上の変数を簡単に参照できる仕組みです。Javaコードを直接書かずに、画面に値を表示することができるため、初心者にも扱いやすい特徴があります。

基本的な構文は以下のようになります。


<p>こんにちは、${userName} さん!</p>

userNameという変数がスコープの中に存在すれば、自動的にその値が表示されます。

2. リクエストスコープからの値の取得方法

2. リクエストスコープからの値の取得方法
2. リクエストスコープからの値の取得方法

リクエストスコープは、HTTPリクエストごとに生成される一時的なスコープです。フォームから送信されたデータやServletから渡された値を一時的に保持するのに使います。

Servletで値を設定するには以下のようにします。


request.setAttribute("userId", "abc123");

そして、JSPでは次のようにEL式で取得します。


ユーザーID:${userId}

このように、request.getAttribute()を使う代わりに、より簡潔に記述できるのがEL式の魅力です。

3. セッションスコープからの値の取り出し

3. セッションスコープからの値の取り出し
3. セッションスコープからの値の取り出し

セッションスコープは、ユーザーごとの情報を保持するために使われるスコープです。ログイン情報や選択内容などを保存するのに向いています。

Servletで値を保存する例は以下の通りです。


session.setAttribute("loginUser", "田中太郎");

JSPでは、EL式を使って次のように表示します。


ログイン中のユーザー:${loginUser}

このように、セッションに格納された情報も${}で簡単に取得できます。

4. スコープを明示してアクセスする方法

4. スコープを明示してアクセスする方法
4. スコープを明示してアクセスする方法

同じ変数名が複数のスコープに存在する場合、EL式はスコープの優先順位に従って探します。しかし、明示的にスコープを指定することもできます。

スコープを明確に指定する場合は、次のように書きます。


${requestScope.userId}
${sessionScope.loginUser}

こうすることで、どのスコープから取得するのかを明確に指定でき、意図しない値の取得を防ぐことができます。

5. リストやマップからの値の取得

5. リストやマップからの値の取得
5. リストやマップからの値の取得

ServletからJSPに渡されたListMapの中身も、EL式で取り出すことが可能です。以下はその一例です。

Mapから値を取り出す方法:


Map<String, String> userInfo = new HashMap<>();
userInfo.put("email", "taro@example.com");
request.setAttribute("userMap", userInfo);

JSP側では次のように取得できます。


メールアドレス:${userMap["email"]}

Listから値を取り出す方法:


最初の項目:${itemList[0]}

このように、EL式では配列やコレクションにも柔軟にアクセス可能です。

6. nullや空の判定に使えるempty演算子

6. nullや空の判定に使えるempty演算子
6. nullや空の判定に使えるempty演算子

EL式では、変数がnullや空かどうかを簡単に判定するためにempty演算子を使うことができます。

次のように記述すると、userIdが存在しない(空またはnull)の場合に判定できます。


<c:if test="${empty userId}">
    ユーザーIDが設定されていません。
</c:if>

これにより、nullチェックを簡潔に書けるので、JSPがすっきりします。

7. request.getAttribute()との違いを理解しよう

7. request.getAttribute()との違いを理解しよう
7. request.getAttribute()との違いを理解しよう

従来のJSPでは、値を取得するのにrequest.getAttribute("key")というJavaコードを使っていました。しかし、EL式ではそれをもっと簡単に書くことができます。

従来の書き方:


<% String name = (String) request.getAttribute("name"); %>
<p>名前:<%= name %></p>

EL式を使った書き方:


<p>名前:${name}</p>

このように、コード量が減るだけでなく、HTMLとの混在も減って可読性が向上します。

8. JSTLと組み合わせた活用例

8. JSTLと組み合わせた活用例
8. JSTLと組み合わせた活用例

EL式は、JSTL(JSP Standard Tag Library)と一緒に使うことで、さらに柔軟でわかりやすいテンプレート構築が可能になります。

たとえば、セッションスコープの値をもとに表示を切り替えるには、以下のように記述します。


<c:if test="${not empty sessionScope.loginUser}">
    ようこそ、${sessionScope.loginUser}さん
</c:if>

このように、EL式とJSTLはセットで使うことで、ロジックと表示をすっきり分けることができます。

9. EL式で値が見つからないときの挙動

9. EL式で値が見つからないときの挙動
9. EL式で値が見つからないときの挙動

EL式で指定した変数がスコープ内に存在しない場合、エラーにはなりません。代わりにnullが評価されます。例えば次のように表示されます。


ユーザー名:${notExistName}

この場合、画面には何も表示されません。値が存在するか確認するには、emptynot emptyを併用するとよいでしょう。

10. EL式で値を取得する設計のポイント

10. EL式で値を取得する設計のポイント
10. EL式で値を取得する設計のポイント

EL式で値を取得するときは、以下のような点に気をつけることで、JSPの保守性や再利用性が高まります。

  • 値の格納はController(Servlet)側で行う
  • JSPではEL式のみで表示を行い、Javaロジックは書かない
  • 同じ名前の変数が複数のスコープに存在しないように注意する
  • JSTLと一緒に使って表示制御を整理する

こうした設計を意識することで、開発効率も品質も向上します。

サーブレットやJSPの基礎を体系的に理解したい人には、 定番の入門書がこちらです。

スッキリわかるサーブレット&JSP入門をAmazonで見る

※ Amazon広告リンク

関連記事:
カテゴリの一覧へ
新着記事
New1
Spring
SpringDataJPAのJPAクエリメソッド「NotIn」の使い方を完全ガイド!初心者向け解説
更新記事
New2
Spring
SpringDataJPAのJPAクエリメソッド「In」の使い方を完全ガイド!初心者向け解説
更新記事
New3
Spring
Spring Bootの設定・プロパティ・プロファイルの外部化優先順位を完全解説!初心者にもわかる設定ファイルの読み込み順
新規投稿
New4
Spring
SpringDataJPAのJPAクエリメソッド「Not」の使い方を完全ガイド!初心者向け解説
更新記事
人気記事
No.1
Java&Spring記事人気No1
Spring
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.2
Java&Spring記事人気No2
Spring
Springの@Componentアノテーションの使い方を徹底解説!初心者でもわかるSpring Boot入門
No.3
Java&Spring記事人気No3
Servlet
JavaのHttpSessionを徹底解説!初心者でもわかるセッション管理の基本
No.4
Java&Spring記事人気No4
Spring
Springの@Serviceアノテーションの使い方を徹底解説!初心者でもわかるSpring フレームワーク入門
No.5
Java&Spring記事人気No5
Spring
SpringのModelクラスの使い方を完全ガイド!初心者でも安心
No.6
Java&Spring記事人気No6
Java
Javaの@SuppressWarningsアノテーションの使い方を完全ガイド!初心者でもわかる警告の抑制方法
No.7
Java&Spring記事人気No7
JSP
JSPの基本タグ一覧と使い方まとめ!実務で使えるタグを紹介
No.8
Java&Spring記事人気No8
Spring
Spring Data JPA入門!findAll()やfindBy**()の使い方などデータベース操作の基礎を学ぶ

💻 作業効率アップに

長時間のコーディングでも疲れにくい♪ 静音ワイヤレスマウス

Logicool Signature M750 を見る

※ Amazon広告リンク