2012-01-26 13 views
7

Używam stron Tomcat 7 i JSP. Chciałbym podać niestandardową stronę błędu dla błędów HTTP 500.Niestandardowa strona błędu HTTP nie jest wyświetlana w przeglądarce Internet Explorer

Co zrobiłem jest zadeklarować niestandardowej strony błędu w następujący sposób w web.xml:

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

I stworzył JSP nazywa error.jsp z następującego kodu:

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

Teraz działa to w większości przeglądarki, ale w Internet Explorerze zabieram się do standardu "Strona nie może wyświetlić strony".

Dlaczego moja niestandardowa strona błędu HTTP 500 nie jest wyświetlana w przeglądarce Internet Explorer?

Odpowiedz

21

To jest funkcja IE. Gdy strona błędu HTTP pobrana z serwera jest mniejsza niż 512 bajtów, wówczas IE domyślnie wyświetli stronę błędu "Przyjazny", taką jak ta, którą widzisz, która jest konfigurowalna przez Narzędzia> Opcje internetowe> Zaawansowane> Usuń zaznaczenie "Pokaż Przyjazny komunikat o błędzie " w przeglądarce. Inne (prawdziwe) przeglądarki nie mają tej funkcji.

Ustawienie strony błędu HTTP nieco większej niż 512 bajtów powinno rozwiązać tę funkcję IE. Można dodać kilka dodatkowych nagłówków meta, dodać białe znaki do kodu akapit, dodać trochę więcej semantycznych znaczników następujące standardowym układzie witryny, dodać dużą komentarz HTML, itp

+1

Poważnie, dlaczego IE jest tak ... – Worthy7

+0

Tak. Nawet musiałem to zrobić, aby naprawić mój problem. Ale wszystkie dane zostały poprawnie wyświetlone z wyjątkiem ikony tabulatora. Pokazuje domyślną ikonę tomcat. Mine to prosta strona html. Jakieś rozwiązanie? –

1

Stwierdzono, że dodanie

<% response.setStatus(200); %> 

do błąd strony JSP (tj. przed tagiem HTML) naprawiłby problem.

+0

mój problem z ikoną tab został rozwiązany przez ustawienie statusu odpowiedzi na 200. Thanx –

Powiązane problemy