Custom HTTP error page is not displayed in Internet Explorer
Asked Answered
J

2

10

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?

Janie answered 26/1, 2012 at 18:1 Comment(0)
P
31

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.

Pie answered 26/1, 2012 at 18:34 Comment(1)
Yes. Even I had to do this to fix my issue . But all the data got displayed properly except tab icon. It is showing default tomcat icon. Mine is a simple html page. Any solution?Alfano
D
-1

Found that adding

<% response.setStatus(200); %>

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

Diaphysis answered 19/8, 2017 at 19:32 Comment(2)
my problem with tab icon got solved by setting response status to 200. ThanxAlfano
So this solution to IE not rendering a custom 500 response page… is to return all 500 response pages as 200. That will definitely cause issues for anything that expects a meaningful status code to indicate an error.Flyte

© 2022 - 2024 — McMap. All rights reserved.