10

Tomcat 7 と JSP ページを使用しています。HTTP 500 エラー用のカスタム エラー ページを提供したいと考えています。

私がしたことは、次のようにカスタムエラーページを宣言することですweb.xml:

<error-page>
  <error-code>500</error-code>
  <location>/error.jsp</location>
</error-page>

error.jspそして、次のコードで呼び出される JSP を作成しました。

<%@ page pageEncoding="UTF-8" isErrorPage="true" %>
<!DOCTYPE html>
<html>
  <head>
    <title>500</title>
  </head>
  <body>
    <img src="${pageContext.request.contextPath}/images/500.jpg" />
  </body>
</html>

現在、これはほとんどのブラウザーで機能しますが、Internet Explorer では、標準の「Web サイトはページを表示できません」というページに移動します。

カスタム HTTP 500 エラー ページが Internet Explorer に表示されないのはなぜですか?

4

2 に答える 2

31

これは IE の機能です。サーバーから取得した HTTP エラー ページが 512 バイト未満の場合、IE はデフォルトで、現在表示されているような「フレンドリー」エラー ページを表示します。これは、[ツール] > [インターネット オプション] > [詳細設定] > [[フレンドリー] を表示] のチェックを外すことで構成できます。エラーメッセージ」がブラウザに表示されます。他の (実際の) ブラウザにはこの機能がありません。

HTTP エラー ページを 512 バイトより少し大きくすると、この IE 機能を回避できます。メタ ヘッダーを追加したり、インデント コードに空白を追加したり、サイトの標準レイアウトに従ってセマンティック マークアップを追加したり、大きな HTML コメントを追加したりできます。

于 2012-01-26T18:34:09.680 に答える
-1

追加することがわかりました

<% response.setStatus(200); %>

エラー JSP ページ (つまり、HTML タグの前) に変更すると、問題が修正されます。

于 2017-08-19T19:32:54.410 に答える