<< 嫁用iPod touch購入 / main / LinkStation遅い! >>

Tomcatでのエラー検出

Tomcat上のエラーページの設定でweb.xmlに<error-page>のタグを設定するのは良いんだけど、
エラーページ毎にページを作成するのがまんどくさっ!
って内容です。
基本的には
<error-page>
<error-code>403</error-code>
<location>/403error.jsp</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/404error.jsp</location>
</error-page>
<error-page>
<error-code>405</error-code>
<location>/405error.jsp</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/500error.jsp</location>
</error-page>

と書くと思うのですが、各エラーのJSPページ(HTMLページ)を一つのJSPで書くには
<error-page>
<error-code>403</error-code>
<location>/srverror.jsp</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/srverror.jsp</location>
</error-page>
<error-page>
<error-code>405</error-code>
<location>/srverror.jsp</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/srverror.jsp</location>
</error-page>

として、error.jspファイルを以下のように設定します。

<html>
<head>
<title>エラー画面</title>
</head>
<body>
<!-- サーブレットエラー -->
<%
// ErrorDataクラスを介してエラー情報を出力
ErrorData err = pageContext.getErrorData();
// ステータスコードの取得
int statusCode = err.getStatusCode();
%>

<p>
<font size='5'>&nbsp;エラー画面</font>
</p>
<b>リクエストURI:</b><br>
<%= err.getRequestURI() %><br>
<br>

<b>ステータスコード:</b><br>
<%= statusCode %><br>
<br>

<b>エラーメッセージ:</b><br>
<%
if(statusCode == 403) {
out.print("サーバはリクエストを理解したが、そのリクエストの実行を拒否しました。");
} else if(statusCode == 404) {
out.print("指定したページが見つかりません。");
} else if(statusCode == 405) {
out.print("指定したメソッドは、このURLではサポートされていません。");
} else if(statusCode == 500) {
out.print("サーバ内部に問題が発生しました。");
}
%><br><br>
<%= (String)request.getAttribute("javax.servlet.error.message") %><br>
<br>

</body>
</html>


…かなり、自分メモだな…

ステータスコードについてはコチラを参照。
電気モノ > PC・Network / comments (0) / -

Comments

Comment Form

Counter
Profile
Selected Entries
Recent Comments
Recent Trackback
Categories
Other