2012-01-26 23 views
7

Estoy usando las páginas Tomcat 7 y JSP. Me gustaría proporcionar una página de error personalizada para errores HTTP 500.La página de error HTTP personalizado no se muestra en Internet Explorer

Lo que hice es declarar la página personalizada de error de la siguiente manera en web.xml:

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

y yo creamos un JSP llamado error.jsp con el siguiente código:

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

Ahora bien, esto funciona en la mayoría navegadores, pero en Internet Explorer me llevan a la página estándar "El sitio web no puede mostrar la página".

¿Por qué mi página de error HTTP 500 no se muestra en Internet Explorer?

Respuesta

21

Esta es una característica de IE. Cuando una página de error HTTP recuperada del servidor es menor que 512 bytes, IE mostrará de forma predeterminada una página de error "amigable" como la que está enfrentando, que se puede configurar Herramientas> Opciones de Internet> Avanzado> Desmarque "Mostrar" Mensaje de error amistoso " en el navegador. Otros navegadores (reales) no tienen esta característica.

La fabricación de su página de error HTTP un poco más grande que 512 bytes deben solucionar esta característica IE. Se podría añadir algunas cabeceras meta extra, añadir un poco de espacio en blanco al código de guión, añadir un poco de margen de beneficio más semántica siguiente distribución estándar de su sitio, añadir un gran comentario HTML, etc.

+1

En serio es la razón por IE tan ... Sí – Worthy7

+0

. Incluso tuve que hacer esto para solucionar mi problema. Pero todos los datos se muestran correctamente excepto el ícono de pestañas. Muestra el ícono de Tomcat predeterminado. El mío es una página html simple. ¿Alguna solución? –

1

encontrado que la adición de

<% response.setStatus(200); %> 

a la la página JSP de error (es decir, antes de la etiqueta HTML) solucionaría el problema.

+0

mi problema con el ícono de pestaña se resolvió estableciendo el estado de respuesta en 200. Gracias –

Cuestiones relacionadas