0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Tomcat】独自のエラーページをjspで表示する方法

Posted at

概要

Tomcatで独自のエラーページを表示させる方法を調べて試して、
1日かけてようやく出来たので備忘録として残します。

問題

参考サイトの方法を試してもTomcatのエラーページが表示される。

  1. webApps/任意webアプリケーションにエラーページを配置(今回は404)
    無題2.png

  2. WEB-INFのweb.xmlでエラーページを指定する
    無題3.png

web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app>

##以下の内容を入れる
<error-page>
  <error-code>404</error-code>
  <location>/404.jsp</location>
</error-page>

</web-app>

3. 存在しないページにアクセスしてもTomcatの標準エラーページが表示される。
無題1.png

解決方法

jsp内に参照できないファイルがあると、
Tomcatの標準エラーページが表示されるようです。

jsp内を見てみる

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>title</title>
</head>

<body>
  <header>
    <h1>404エラー</h1>
  </header>
   <main>
    <section>
      <h2>ページが見つかりません</h2>
      <p>お探しのページは移動または削除された可能性があります</p>
    </section>
  </main>
  <jsp:include page="footer.jsp" />
</body>
</html>

<jsp:include page="footer.jsp" />'の部分に問題がありました。

jspファイルはincludeアクションで、
指定の場所に別のjspファイルを反映させることができます。(詳細はこちら)

しかし、404.jspと同じ階層にfooter.jspは存在しません。

Tomcatからすると「footer.jspないよー、標準の404ページを表示するね」
という具合なのだと思います。

jsp内を修正する

<jsp:include page="footer.jsp" />'を消して試してみると、
独自のエラーページに飛ぶことができました。
無題4.png

終わりに

どなたかの参考になれば幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?