Custom HTTP error page is not displayed in Internet Explorer

☆樱花仙子☆ 提交于 2019-11-30 06:59:42

问题


I am using Tomcat 7 and JSP pages. I would like to provide a custom error page for HTTP 500 errors.

What I did is to declare the custom error page as following in web.xml:

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

And I created a JSP called error.jsp with the following code:

<%@ 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>

Now this works in most browsers, but in Internet Explorer I am taken to the standard "The website cannot display the page" page.

Why is my custom HTTP 500 error page not being displayed in Internet Explorer?


回答1:


This is an IE feature. When an HTTP error page retrieved from the server is smaller than 512 bytes, then IE will by default show a "Friendly" error page like the one you're facing, which is configureable by Tools > Internet Options > Advanced > Uncheck "Show Friendly Error Message" in the browser. Other (real) browsers does not have this feature.

Making your HTTP error page a little larger than 512 bytes should workaround this IE feature. You could add some extra meta headers, add some whitespace to indent code, add some more semantic markup following your site's standard layout, add a large HTML comment, etc.




回答2:


Found that adding

<% response.setStatus(200); %>

to the error JSP page (i.e. before HTML tag) would fix the issue.



来源:https://stackoverflow.com/questions/9022932/custom-http-error-page-is-not-displayed-in-internet-explorer

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!