Вы можете бросить исключенную исключение в своем слушателе. Из спецификации:
Некоторые исключения не происходят под стек вызовов другого компонента в приложении. Примером этого является SessionListener, который получает уведомление о том, что сеанс имеет время ожидания и выбрасывает необработанное исключение, или из ServletContextListener, который генерирует необработанное исключение во время уведомления о инициализации контекста сервлета или ServletRequestListener, который генерирует необработанное исключение во время уведомления об инициализации или уничтожении объекта запроса. В этом случае у Разработчика нет возможности обработать исключение.
Контейнер может отвечать на все последующие запросы к веб-приложению с кодом состояния HTTP 500, чтобы указать на ошибку приложения. Разработчики, желающие нормальной обработки, должны произойти после того, как слушатель генерирует исключение, должны обрабатывать свои собственные исключения в методах уведомления.
Что это означает, что если вы были бросить, скажем, UnsupportedOperationException
от вашего слушателя (или любого слушателя на самом деле), вы могли бы эффективно остановить приложение с вводом в эксплуатацию. Контейнер всегда будет отвечать HTTP-500 (на который вы можете отобразить страницу с ошибкой)
В Tomcat 8.5 показан статус HTTP 404 – weberjn