У меня есть страница JSP (в Tomcat), которая использует теги JSP для получения некоторых данных.Но эти JSP-теги могут генерировать исключения (например, когда значения параметров недопустимы).Теперь я хочу реализовать более качественную обработку ошибок для этих ситуаций.Мне не удалось найти способ ГЛОБАЛЬНО указать обработчик исключений (определения страниц ошибок в web.xml не работают для исключений, генерируемых в JSP).Единственный способ, который я нашел до сих пор, - это указать атрибут errorPage в заголовке страницы ВСЕХ JSP-файлов.
<% page errorPage="/WEB-INF/jsp/errors/500.jsp" %>
Довольно раздражает это для ВСЕХ JSP, но это приемлемо.Но недопустимым является тот факт, что страница ошибки всегда доставляется с кодом состояния HTTP 200. Я хочу вместо 500.Я попытался использовать сервлет в качестве errorPage вместо JSP и попытался установить response.setStatus (500), а также response.sendError (500), но оба вызова, кажется, игнорируются.Таким образом, этот код печатает «200» два раза, и я понятия не имею, почему:
System.out.println(response.getStatus());
response.setStatus(500);
System.out.println(response.getStatus());
Итак, вопрос: как я могу установить код состояния HTTP в обработчиках ошибок JSP?