カテゴリ: Jakarta EE 更新日: 2025/12/06

Jakarta EE JSPのエラーページと例外処理を完全ガイド|初心者でもわかる実装と仕組み

Jakarta EE JSPのエラーページと例外処理の実装
Jakarta EE JSPのエラーページと例外処理の実装

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

生徒

「Jakarta EEのJSPでエラーページを作りたいのですが、サーバーエラーがそのまま英語で出てしまいます。初心者でも分かるように、使いやすいエラーページを作る方法を知りたいです。」

先生

「JSPでは、例外が発生したときに自動的に切り替わるエラーページを設定できます。難しい設定は必要なく、初心者でも簡単に導入できます。」

生徒

「Servletやフォーム送信の途中でエラーが出ても、日本語で案内する画面が出せるんですね。具体的にどんな書き方をするのか見てみたいです。」

先生

「それでは、JSPのエラー処理と例外対応の書き方を、順番に詳しく紹介していきましょう。」

1. JSPのエラーページとは?初心者でも理解しやすい仕組み

1. JSPのエラーページとは?初心者でも理解しやすい仕組み
1. JSPのエラーページとは?初心者でも理解しやすい仕組み

Jakarta EEのJSPには、エラーページを自動で表示する機能があります。計算処理で発生する例外や、入力値の不具合など、サーバー側で想定外の動きが起きることは少なくありません。そのまま英語のエラー画面が表示されると利用者が混乱してしまうため、独自のエラーページを設定して、使いやすく分かりやすい案内を表示します。

特に、Webアプリケーションの開発では、信頼性や使いやすさが重要になります。見やすいエラーページを作成しておくことは、初心者の学習としても実践的なステップになります。

2. errorPage属性でJSPにエラーページを設定する方法

2. errorPage属性でJSPにエラーページを設定する方法
2. errorPage属性でJSPにエラーページを設定する方法

JSPファイルでエラーページを設定する最も簡単な方法は、pageディレクティブのerrorPage属性を記述することです。エラーが発生したとき、自動的に指定したエラーページへ移動します。


<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>サンプルJSP</title>
</head>
<body>
    <%@ page errorPage="error.jsp" %>
    <%
        int number = 10 / 0;
    %>
    <p>この文章は表示されません。</p>
</body>
</html>

上のJSPでは、割り算でゼロ除算が発生し、例外がスローされます。その瞬間にerror.jspというファイルへ自動で遷移する仕組みです。

3. エラーページ側のJSPではisErrorPageを設定する

3. エラーページ側のJSPではisErrorPageを設定する
3. エラーページ側のJSPではisErrorPageを設定する

エラーページには、isErrorPageを指定します。これを設定していないと、例外情報を受け取ることができません。エラー内容を画面に表示したい場合は、必ず設定します。


<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>エラーページ</title>
</head>
<body>
    <%@ page isErrorPage="true" %>
    <h2>エラーが発生しました</h2>
    <p>原因:<%= exception.getMessage() %></p>
</body>
</html>

このように、エラー内容を画面に表示したり、案内文や戻りリンクを付けたりして、利用者が迷わない画面を作ることができます。

4. web.xmlでサーバー全体のエラーページを設定する

4. web.xmlでサーバー全体のエラーページを設定する
4. web.xmlでサーバー全体のエラーページを設定する

アプリケーション全体で共通のエラーページを使いたい場合は、web.xmlで設定できます。Jakarta EEでは、状況に応じてHTTPステータスごとのエラーページも指定できます。


<web-app>
    <error-page>
        <error-code>404</error-code>
        <location>/notfound.jsp</location>
    </error-page>

    <error-page>
        <exception-type>java.lang.Exception</exception-type>
        <location>/error.jsp</location>
    </error-page>
</web-app>

この設定により、ファイルが存在しないときはnotfound.jsp、予期しない例外が起きたときはerror.jspが表示されます。初心者でも、アプリ全体のエラーページを統一できます。

5. Servletで例外を発生させてJSPへ遷移する流れ

5. Servletで例外を発生させてJSPへ遷移する流れ
5. Servletで例外を発生させてJSPへ遷移する流れ

JSPだけでなく、Servletで例外が発生したときにもエラーページが機能します。フォーム入力やデータ計算など、実際の現場ではServlet側で例外が発生することが多いため、この仕組みはとても便利です。


package servlet;

import java.io.IOException;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

public class SampleServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        throw new RuntimeException("テスト用の例外です");
    }
}

このServletにアクセスすると例外が発生し、自動的にエラーページへ遷移します。複雑な例外処理を書かなくてもよいため、初心者でも扱いやすい仕組みです。

6. エラーページで案内を追加して使いやすくする方法

6. エラーページで案内を追加して使いやすくする方法
6. エラーページで案内を追加して使いやすくする方法

エラーページには、ユーザーが操作を続けられるように、案内やリンクを追加できます。シンプルなデザインでも十分ですが、Bootstrapなどを利用すると見やすい画面を作れます。


<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>エラー表示</title>
</head>
<body class="p-5">
    <%@ page isErrorPage="true" %>
    <h2 class="text-danger">エラーが発生しました</h2>
    <p>お手数ですが、再度操作をお試しください。</p>
    <p>詳細:<%= exception.getMessage() %></p>
    <a class="btn btn-primary" href="index.jsp">トップへ戻る</a>
</body>
</html>

このように案内があるだけで、ユーザーは安心して操作できます。エラーページは見た目よりも、迷わない導線が重要になります。

7. エラーページを作成するときに気をつけたいこと

7. エラーページを作成するときに気をつけたいこと
7. エラーページを作成するときに気をつけたいこと

初心者の開発で多いミスとして、エラーページにisErrorPageを忘れることがあります。この設定がないと、例外情報にアクセスできず、何も表示されない場合があります。また、エラーページ自体にエラーがあると、サーバーがさらに別のエラーを返してしまうこともあります。そのため、エラーページはできるだけシンプルに作成し、無理に複雑な処理を入れないことをおすすめします。

動作確認をするときは、意図的に例外を発生させて画面の内容をチェックする方法がよく使われます。

8. JSPのエラーページは実践で役立つサーバーサイドの基本

8. JSPのエラーページは実践で役立つサーバーサイドの基本
8. JSPのエラーページは実践で役立つサーバーサイドの基本

Jakarta EEでWebアプリケーションを開発する際、エラーページの設定はとても大切です。利用者にとって優しい画面を用意しておくことで、安心して使えるサービスになります。初心者の段階でこの設定を覚えておくと、Servletや他のJSPファイルと組み合わせたときにスムーズに開発できます。

Webアプリは実行時に予想外のエラーが発生する可能性がありますが、エラーページを準備しておけばトラブルを回避しやすくなります。こうした仕組みが、サーバーサイド開発の安心感につながります。

カテゴリの一覧へ
新着記事
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初心者向けコントローラ入門