質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java EE

Java EE(Java Enterprise Edition)はJavaベースのテクノロジーとその相互運用の仕様をまとめたものです。サーバとクライアントのアーキテクチャを規定し、特定アプリケーションのクラス用に定義されたテクノロジー設定のプロファイルを使用します。

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

Apache Tomcat

Apache TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

Q&A

0回答

602閲覧

サーブレットクラスでServletExceptionスローしても独自エラーページに遷移できない

Linkey

総合スコア77

Java EE

Java EE(Java Enterprise Edition)はJavaベースのテクノロジーとその相互運用の仕様をまとめたものです。サーバとクライアントのアーキテクチャを規定し、特定アプリケーションのクラス用に定義されたテクノロジー設定のプロファイルを使用します。

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

Apache Tomcat

Apache TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

0グッド

0クリップ

投稿2022/01/22 08:29

Javaを勉強しているものです。
JavaのサーブレットクラスでServletExceptionをスローして独自のエラーページを表示させようとしています。

/sample3/src/main/java/servlet/Path3Servlet.java

java

1package servlet; 2 3import javax.servlet.ServletException; 4import javax.servlet.http.HttpServlet; 5import javax.servlet.http.HttpServletRequest; 6import javax.servlet.http.HttpServletResponse; 7 8/** 9 * Servlet implementation class Path3Servlet 10 */ 11public class Path3Servlet extends HttpServlet { 12 private static final long serialVersionUID = 1L; 13 14 /** 15 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 16 */ 17 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException { 18 // エラーページが表示できるか確認のためわざとServletExceptionをスローさせる 19 throw new ServletException("エラーです。"); 20 } 21}

/sample3/src/main/webapp/WEB-INF/web.xml

xml

1<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> 2<web-app> 3 4 <display-name>Archetype Created Web Application</display-name> 5 6 <servlet> 7 <servlet-name>Path3Servlet</servlet-name> 8 <display-name>Path3Servlet</display-name> 9 <description></description> 10 <servlet-class>servlet.Path3Servlet</servlet-class> 11 </servlet> 12 13 <servlet-mapping> 14 <servlet-name>Path3Servlet</servlet-name> 15 <url-pattern>/api/users/path3</url-pattern> 16 </servlet-mapping> 17 18 <error-page> 19 <exception-type>javax.servlet.ServletException</exception-type> 20 <location>/error.jsp</location> 21 </error-page> 22 23 <error-page> 24 <error-code>404</error-code> 25 <location>/error.jsp</location> 26 </error-page> 27 28 <error-page> 29 <error-code>500</error-code> 30 <location>/error.jsp</location> 31 </error-page> 32 33</web-app>

/sample3/src/main/webapp/error.jsp

html

1<%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3<!DOCTYPE html> 4<html> 5<head> 6<meta charset="UTF-8"> 7<title>Insert title here</title> 8</head> 9<body> 10 <h1>エラーページです。</h1> 11</body> 12</html>

Tomcatを起動させて、http://localhost:8080/sample3/api/users/path3にアクセスすると
error.jspが表示されませんでした。
イメージ説明

http://localhost:8080/sample3/hogeにアクセスして404エラーを発生させてみたのですが、こちらも
error.jspが表示されませんでした。
イメージ説明

http://localhost:8080/sample3/error.jspで直接アクセスすると表示はできました。
イメージ説明

以下のサイトを参考にweb.xmlのerror-pageを設定していますが、いまだに解決ができておりません。
https://www.javalife.jp/2018/04/15/tomcat%E3%81%AE%E3%82%A8%E3%83%A9%E3%83%BC%E3%83%9A%E3%83%BC%E3%82%B8%E3%82%92%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%9E%E3%82%A4%E3%82%BA%E3%81%99%E3%82%8B/
https://www.techscore.com/tech/Java/JavaEE/Servlet/9-2/
https://talosta.hatenablog.com/entry/error-page

web.xmlの設定について詳しい方がいましたら、ご回答いただけないでしょうか?
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問