Tomcat не перенаправляет на страницу с ошибкой 400 неверных запросов - PullRequest
0 голосов
/ 15 октября 2018

У нас запущен веб-сервер tomcat 9.Проблема, с которой мы сталкиваемся, заключается в том, что мы хотим показать пользовательскую страницу ошибки для нашего приложения, если tomcat получает какой-либо неверно сформированный URL, как показано ниже

http://URL/|

или

http://URL/[

Я добавил тег страницы ошибки в web.xml сервера приложений tomcat следующим образом

<error-page>
   <error-code>400</error-code>
   <location>/error.html</location>
 </error-page>
 <error-page>
   <error-code>404</error-code>
   <location>/error.html</location>
 </error-page>

, и у нас есть файл error.html в папке ROOT нашего приложения в каталоге webapps tomcat.

Всякий раз, когда пользователь пытается запросить любую несуществующую веб-страницу, он получает страницу ошибки, соответствующую коду ошибки 404, как указано выше.

Реальная проблема - tomcat не может перенаправить в error.html, когда пользователь вводит некорректно сформированныйURL-адрес в браузере, например http://URL/|

Tomcat показывает страницу ошибки 400 неверных запросов по умолчанию вместо пользовательской страницы ошибок.

1 Ответ

0 голосов
/ 16 апреля 2019

Это не ошибка, это проблема конфигурации.

Tomcat 9 улучшил обработку ошибок, так что больше ошибок, особенно тех, которые возникают до начала обработки запроса, передаются стандартному механизму обработки ошибок.вместо того, чтобы просто возвращать код ошибки.

В случае неправильно сформированных URI Tomcat не сможет проанализировать URI, поэтому URI не может быть сопоставлен с веб-приложением.Поэтому Tomcat не может инициировать обработку ошибок на уровне приложения, поскольку не может идентифицировать приложение.В этом случае ошибка обрабатывается ErrorReportValve , который можно настроить в файле server.xml.

Недавнее (ish) дополнение к ErrorReportValve - это возможность определять статические веб-страницы (т.е. никаких сервлетов или JSP, только HTML) для кода состояния и / или типа исключения аналогично конфигурации страницы ошибок для каждого веб-приложения.

...