JSPとJSTLの連携実践例|Servletと組み合わせて「正しいJSP」を書く方法

Java

はじめに

Java の Web 開発で JSP を書き始めると、
必ず出てくるのが JSTL です。

ですが、多くの人がここで混乱します。

  • JSP に Java コードを書いていいのか分からない
  • JSTL を使う理由がいまいち分からない
  • scriptlet が増えてしまう

実はこれ、
Servlet・JSP・JSTL の役割分担を理解できていない
ことが原因です。

この記事では、
JSP と JSTL を正しく連携させる実践例 を通して、
「現場で評価される JSP の書き方」を解説します。


JSPとは何か

JSP は、
画面表示を担当するための技術 です。

ポイントは、
「処理を書く場所ではない」
という点です。

JSP の本来の役割は、

  • 画面を表示する
  • データを埋め込む

この二つだけです。


なぜ scriptlet が問題になるのか

JSP には、Java コードを直接書く方法があります。

<%
    if(user != null){
%>

これを scriptlet と呼びます。

一見便利ですが、
実務ではほぼ使われません。

理由は、

  • 読みにくい
  • 保守しづらい
  • デザインとロジックが混ざる

からです。


JSTLとは何か

JSTL は、
JSP 用の標準タグライブラリ です。

目的は一つ。

JSP から Java コードを消すこと

  • 繰り返し
  • 条件分岐
  • 値の表示

を、タグで書けるようにします。


JSPとJSTLを連携させる理由

JSP と JSTL を組み合わせることで、

  • 表示に集中できる
  • Java ロジックが消える
  • チーム開発に強くなる

というメリットがあります。

これは、
業務システムで Java が選ばれ続ける理由
にもつながっています。


Servlet・JSP・JSTLの役割分担

ここが一番重要です。

  • Servlet:処理担当
  • JSP:表示担当
  • JSTL:表示用の制御

この分担ができていると、
コードが驚くほど読みやすくなります。


実践例:一覧画面を作る

ここからは、
実際によくある構成 を例に見ていきます。

作りたい画面

  • ユーザー一覧を表示する
  • データは Servlet で準備
  • JSP + JSTL で表示

Servlet側の実装例

Servlet では、
データの準備だけ を行います。

List<String> users = new ArrayList<>();
users.add("Alice");
users.add("Bob");
users.add("Charlie");

request.setAttribute("userList", users);
request.getRequestDispatcher("userList.jsp").forward(request, response);

ポイントは、

  • 処理は Servlet
  • JSP に渡すのはデータだけ

という点です。


JSP側の準備

JSP では、
まず JSTL を使う宣言を書きます。

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

これで JSTL が使えるようになります。


JSTLで一覧を表示する

Servlet から渡されたデータを
c:forEach で表示します。

<ul>
    <c:forEach var="user" items="${userList}">
        <li>${user}</li>
    </c:forEach>
</ul>

ここに Java コードは一切ありません。

これが、
正しい JSP の姿 です。


条件分岐も JSTL で書く

条件分岐は c:if を使います。

<c:if test="${empty userList}">
    <p>ユーザーが存在しません</p>
</c:if>

scriptlet を使う必要はありません。


EL式とは何か

${userList} のような書き方を
EL式 と呼びます。

EL式は、

  • request
  • session

に入っている値を
簡単に取り出す仕組みです。

JSP をシンプルに保つための重要な要素です。


JSTLを使うと何が良いのか

Javaコードが消える

JSP が
「画面テンプレート」
として使えるようになります。


デザインとロジックが分離される

デザイナーとエンジニアが
役割分担しやすくなります。


保守性が上がる

修正点が
どこにあるか分かりやすくなります。


初心者がやりがちなNG例

scriptlet と JSTL を混ぜる

これは最悪のパターンです。

JSP が一気に読めなくなります。


JSPにロジックを書きすぎる

ループや条件が増えすぎたら、
Servlet 側に戻す
のが正解です。


実務で評価されるJSP設計

現場では、

  • JSP は表示だけ
  • 判断は Servlet

という設計が好まれます。

これは MVC の考え方そのものです。


Javaプログラマーを目指す人へ

JSP と JSTL を正しく使える人は、

  • Web の仕組みを理解している
  • フレームワーク理解が早い

と評価されます。

Spring を学ぶ前に、
この基礎を押さえることがとても重要です。


まずは自己学習で理解を深めよう

Java Web の考え方を
体系的に学びたい人は、
まず

絶対にJavaプログラマーになりたい人へ。
👉 https://amzn.asia/d/3E1CYbv

で、土台を固めるのがおすすめです。


実務や転職を考えているなら

  • JSP の書き方に自信がない
  • 設計の良し悪しが分からない
  • Java Web を武器にしたい

そんな人には
サイゼントアカデミー がおすすめです。

👉 https://academy.cyzennt.co.jp

コードレビューで
「なぜそう書くのか」を学べます。


まとめ

JSP と JSTL を正しく連携させると、

  • コードが読みやすくなる
  • 保守しやすくなる
  • 実務で評価される

というメリットがあります。

JSP は「処理を書く場所」ではなく、
表示に専念させる のが正解です。

ぜひ、
scriptlet を卒業し、
正しい JSP の書き方を身につけてください。

コメント

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