Пользовательская страница ошибки HTTP не отображается в Internet Explorer - PullRequest
8 голосов
/ 26 января 2012

Я использую страницы Tomcat 7 и JSP. Я хотел бы предоставить пользовательскую страницу ошибок для ошибок HTTP 500.

Я объявил пользовательскую страницу ошибки следующим образом в web.xml:

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

И я создал JSP с именем error.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 меня перенаправили на стандартную страницу "Веб-сайт не может отобразить страницу".

Почему моя пользовательская страница ошибки HTTP 500 не отображается в Internet Explorer?

Ответы [ 2 ]

24 голосов
/ 26 января 2012

Это функция IE.Если страница ошибки HTTP, полученная с сервера, имеет размер менее 512 байт, то IE по умолчанию отобразит страницу ошибки «Friendly», подобную той, с которой вы сталкиваетесь, и которую можно настроить с помощью Сервис> Свойства обозревателя> Дополнительно> Снять«Показать дружественное сообщение об ошибке» в браузере.Другие (настоящие) браузеры не имеют этой функции.

Чтобы страница ошибок HTTP была немного больше 512 байт, нужно обойти эту функцию IE.Вы можете добавить дополнительные мета-заголовки, добавить пробел в код отступа, добавить дополнительную семантическую разметку в соответствии со стандартным макетом вашего сайта, добавить большой HTML-комментарий и т. Д.

1 голос
/ 19 августа 2017

Обнаружено, что добавление

<% response.setStatus(200); %>

к странице ошибки JSP (т. Е. До HTML-тега) исправит проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...