Программно установить ‹страницу ошибок›, используя код, а не web.xml

Я видел:

Как установить время ожидания сеанса, страницы ошибок программно без web.xml

и

Как программно установить error- страница и другие параметры web.xml весной

Первый, однако, специфичен для tomcat, а второй не имеет хорошего ответа, плюс для него требуется Spring.

Итак, возможно ли установить страницу ошибок, обычно определенную в web.xml, возможно, в ServletListener или аналогичном.


person mmm    schedule 22.11.2015    source источник
comment
Используйте сервлет Filter для перехвата исключения и/или проверьте код состояния ответа и при необходимости перенаправьте.   -  person Andreas    schedule 22.11.2015
comment
@Андреас Как бы ты это сделал? Установите фильтр, сопоставленный с /*, а затем?   -  person    schedule 03.04.2017
comment
@niklabaz Затем напишите некоторый код в фильтре, чтобы поймать исключение и / или проверить код состояния ответа, и перенаправить при необходимости. Какая часть моего первоначального комментария вам непонятна? Как поймать исключение? Используйте оператор try-catch. Как проверить код статуса ответа? Используйте оператор if. Как перенаправить? Вызовите forward() для перенаправления формирования ответа на выбранную страницу ошибки.   -  person Andreas    schedule 04.04.2017


Ответы (1)


Я столкнулся с аналогичным требованием для моего стороннего проекта. Я использовал настраиваемые непроверенные исключения, которые имеют код состояния и поля сообщения. В конечном итоге эти поля будут использоваться для установки кода состояния HTTP и самого сообщения. Я тестировал проект на встроенном tomcat 9. Проверьте мой репозиторий https://github.com/tugrulaslan/BankingAPI

person Tugrul ASLAN    schedule 24.02.2020