概要
Tomcatで独自のエラーページを表示させる方法を調べて試して、
1日かけてようやく出来たので備忘録として残します。
問題
参考サイトの方法を試してもTomcatのエラーページが表示される。
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の標準エラーページが表示される。
解決方法
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" />'
を消して試してみると、
独自のエラーページに飛ぶことができました。
終わりに
どなたかの参考になれば幸いです。