カテゴリ: Jakarta EE 更新日: 2026/02/10

Jakarta EE JSPとサーブレットの連携方法を徹底解説!初心者でもわかる仕組みとサンプルコード

Jakarta EE JSPとJakarta サーブレットの連携方法
Jakarta EE JSPとJakarta サーブレットの連携方法

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

生徒

「先生、Jakarta EEのJSPとサーブレットってどうやって連携させるんですか?」

先生

「良いポイントですね。JSPとサーブレットは、Jakarta EEのWebアプリ開発でよく組み合わせて使われます。サーブレットで処理したデータをJSPに渡して表示するのが一般的です。」

生徒

「つまり、サーブレットが裏でロジックを担当して、JSPが画面表示を担当するってことですか?」

先生

「その通りです!それでは、基本的な仕組みやサンプルコードを一緒に確認してみましょう。」

1. JSPとサーブレットの役割分担

1. JSPとサーブレットの役割分担
1. JSPとサーブレットの役割分担

Jakarta EEのWeb開発では、サーブレットがリクエストを受け取り、処理やデータ取得を担当し、その結果をJSPに渡して画面に表示するという流れが基本です。これにより、ビジネスロジックとプレゼンテーションを分離することができ、保守性や拡張性が高まります。

例えば、ユーザーが入力フォームから送信した情報をサーブレットが処理し、その結果をJSPにフォワードして画面に出力するといった使い方がよくあります。

2. サーブレットからJSPへのフォワード

2. サーブレットからJSPへのフォワード
2. サーブレットからJSPへのフォワード

サーブレットでは、RequestDispatcherを使ってJSPに処理を引き継ぎます。その際にリクエストスコープへデータを格納することで、JSP側で表示することが可能になります。


@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
            throws ServletException, IOException {
        String message = "Jakarta EE JSPとサーブレットの連携成功!";
        request.setAttribute("msg", message);
        RequestDispatcher dispatcher = request.getRequestDispatcher("/hello.jsp");
        dispatcher.forward(request, response);
    }
}

3. JSPでサーブレットのデータを受け取る

3. JSPでサーブレットのデータを受け取る
3. JSPでサーブレットのデータを受け取る

JSPファイルでは、サーブレットから渡されたリクエストスコープのデータを取得して表示します。request.getAttributeを利用するか、後で学習するJakarta Expression Language(EL式)を使う方法があります。


<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Hello JSP</title>
</head>
<body>
    <h2>サーブレットからのメッセージ:</h2>
    <p><%= request.getAttribute("msg") %></p>
</body>
</html>

4. JSPとサーブレット連携の流れ

4. JSPとサーブレット連携の流れ
4. JSPとサーブレット連携の流れ

ここまでの内容を整理すると、Jakarta EEにおけるJSPとサーブレットの連携は次のようになります。

  • ブラウザがサーブレットにアクセス
  • サーブレットで処理を実行し、結果をリクエストスコープに保存
  • RequestDispatcherでJSPにフォワード
  • JSPがデータを取得して画面に表示

この仕組みにより、JavaのロジックとHTMLの表示が分離され、Webアプリケーションの設計が分かりやすくなります。

5. 初心者がつまずきやすいポイント

5. 初心者がつまずきやすいポイント
5. 初心者がつまずきやすいポイント

初心者の方がJakarta EE JSPとサーブレットの連携でつまずくのは、主に以下の点です。

  • サーブレットでrequest.setAttributeを忘れてしまい、JSPでデータが表示されない
  • フォワード先のJSPのパス指定を間違える
  • 出力する際にrequest.getAttributeをキャストし忘れる

これらを確認すれば、多くの初期トラブルは解決できます。特にWebアプリ開発を学び始めた初心者の段階では、エラーメッセージを読み取りながら、一歩ずつ確認することが大切です。

6. 実行例

6. 実行例
6. 実行例

上記のサーブレットとJSPを連携させると、ブラウザには次のような結果が表示されます。


サーブレットからのメッセージ:
Jakarta EE JSPとサーブレットの連携成功!

7. 実務での応用

7. 実務での応用
7. 実務での応用

実務では、サーブレットがデータベースアクセスやビジネスロジックを処理し、JSPがその結果を表形式やグラフとして表示するケースが多くあります。これにより、画面担当者とロジック担当者が分業でき、効率的なチーム開発が可能になります。

また、Jakarta EEのJSPは、Jakarta Servletと連携することで強力なWebアプリケーション基盤を提供します。初心者のうちからこの仕組みを理解しておくと、将来の実務開発に役立ちます。

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Jakarta EEにおけるJSPとサーブレットの役割の違いは何ですか?初心者にもわかりやすく教えてください。

Jakarta EEのWebアプリケーション開発において、サーブレットとJSPは明確な役割分担、いわゆる「関心の分離」を行っています。サーブレットはJavaプログラムとして動作し、主にブラウザからのリクエストを受け取り、データベースへのアクセスや複雑な計算などの「ビジネスロジック」を担当します。一方でJSP(JavaServer Pages)は、HTMLの中にJavaを埋め込む形式で記述され、サーブレットから受け取った処理結果をブラウザに表示するための「プレゼンテーション(画面表示)」を担当します。このように役割を分けることで、プログラムの修正が容易になり、保守性の高いWebシステムを構築できるのが大きなメリットです。
カテゴリの一覧へ
新着記事
New1
Jakarta EE
Jakarta EEとクラウドネイティブ開発の相性とは?初心者向けにわかりやすく解説
New2
Jakarta EE
JakartaEE JSPのリクエスト属性とスコープの基本を徹底解説!初心者向け入門ガイド
New3
Play Framework
Play Frameworkのビューテストを徹底解説!Twirlテンプレートの品質を高める方法
New4
Jakarta EE
JakartaEE フィルタで認証と認可を実装する方法を初心者向けに解説!サーブレットのセキュリティ入門
人気記事
No.1
Java&Spring記事人気No1
Jakarta EE
Jakarta EEとSpringの比較|どちらを選ぶべきか?初心者向けに徹底解説!
No.2
Java&Spring記事人気No2
Play Framework
Play Frameworkのビューを共通化!テンプレート間のインクルード方法を徹底解説
No.3
Java&Spring記事人気No3
Play Framework
Play Frameworkプロジェクト作成直後にやるべき初期設定ガイド!初心者でも安心
No.4
Java&Spring記事人気No4
Jakarta EE
Jakarta サーブレットのHttpServletRequestを徹底解説!初心者でもわかる基本操作と使い方
No.5
Java&Spring記事人気No5
Play Framework
Play Frameworkで多言語対応(i18n)を徹底解説!Twirlテンプレートでの使い方
No.6
Java&Spring記事人気No6
Play Framework
Play FrameworkでCSSやJavaScriptを読み込む方法を徹底解説!静的リソースの組み込みガイド
No.7
Java&Spring記事人気No7
Jakarta EE
Jakarta EEとJava EEアプリの互換性を完全解説!移行で困らないための基礎知識
No.8
Java&Spring記事人気No8
Jakarta EE
Jakarta EEの標準仕様とAPI一覧を完全解説!初心者でもわかるエンタープライズJavaの基本