« 小さな姉と大きな妹と姉妹デュオ | Home | 初動捜査の大切さ »

2006年12月13日

Tomcatのカスタムエラーページ

[問題]
web.xmlの設定でカスタムエラーページ設定したが、IEのエラーメッセージが表示されて、
用意したカスタムエラーページが表示されない。

web.xmlの設定
  <error-page>
    <error-code>400</error-code>
    <location>/error.jsp?code=400</location>
  </error-page>
  <error-page>
    <error-code>404</error-code>
    <location>/error.jsp?code=404</location>
  </error-page>
  <error-page>
    <exception-type>java.lang.Exception</exception-type>
    <location>/error.jsp</location>
  </error-page>

[原因]
Internet Explorerの設定で、「HTTP エラーメッセージを簡易表示する」という設定の
オプションがONになっている場合、カスタムエラーページの表示byteが少ないと
Internet Explorer標準のエラーページが表示される。

[対応その1]
利用者全員にオプションをOFFにしてもらう
→非現実的

[対応その2]
エラーページを512byte以上にすると、簡易表示されず、
用意したカスタムエラーページが表示される。
エラーのステートによっては256byte以上だが512byte以上にするのが無難。

[他]
Apatchの.httaccessの設定みたいに、全アプリについて同じエラー
ページを使用したいのだけど、web.xmlはwar単位。
Tomcatではどのようにしたら全アプリに対するカスタムページの
実装できるのだろうか。

[関連]
Web屋のネタ帳:「ページが見つかりません」 - IEのHTTPエラーメッセージの簡易表示をサーバー側で無効化する方法
http://support.microsoft.com/default.aspx?scid=kb;ja;JP294807

Microsoftサポートオンライン:[HOWTO] Internet Explorer 5.x および 6.x の "HTTP エラー メッセージの簡易表示" 機能をサーバー側で無効にする方法
http://neta.ywcafe.net/000558.html

コメントする