Javaを勉強しているものです。
JavaのサーブレットクラスでServletExceptionをスローして独自のエラーページを表示させようとしています。
/sample3/src/main/java/servlet/Path3Servlet.java
java
package servlet; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class Path3Servlet */ public class Path3Servlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException { // エラーページが表示できるか確認のためわざとServletExceptionをスローさせる throw new ServletException("エラーです。"); } }
/sample3/src/main/webapp/WEB-INF/web.xml
xml
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <display-name>Archetype Created Web Application</display-name> <servlet> <servlet-name>Path3Servlet</servlet-name> <display-name>Path3Servlet</display-name> <description></description> <servlet-class>servlet.Path3Servlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>Path3Servlet</servlet-name> <url-pattern>/api/users/path3</url-pattern> </servlet-mapping> <error-page> <exception-type>javax.servlet.ServletException</exception-type> <location>/error.jsp</location> </error-page> <error-page> <error-code>404</error-code> <location>/error.jsp</location> </error-page> <error-page> <error-code>500</error-code> <location>/error.jsp</location> </error-page> </web-app>
/sample3/src/main/webapp/error.jsp
html
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <h1>エラーページです。</h1> </body> </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の設定について詳しい方がいましたら、ご回答いただけないでしょうか?
よろしくお願いいたします。
まだ回答がついていません
会員登録して回答してみよう