Отправки, сделанные контейнером во время исключений/ошибок, называются диспетчерами ошибок. Обычно они отправляются на страницы ошибок. Невозможно напрямую отправить сообщение об ошибке, поскольку я это знаю.
Запрос, отправивший сообщение об ошибке, будет иметь тип диспетчера, установленный в DispatcherType.ERROR. (В коде метода службы сервлета вы можете получить тип отправки, используя getDispatcherType())
Следующие шесть атрибутов с охватом запроса также будут установлены при отправке сообщений об ошибках.
"javax.servlet.error.exception"
"javax.servlet.error.exception_type"
"javax.servlet.error.message"
"javax.servlet.error.request_uri"
"javax.servlet.error.servlet_name"
"javax.servlet.error.status_code"
Так что если у вас есть страница с ошибкой, в которой контейнер перенаправляет ошибки, вы знаете, вы можете прочитать эти шесть атрибутов для получения дополнительной информации.
http://docs.oracle.com/javaee/6/api/javax/servlet/DispatcherType.html http://docs.oracle.com/javaee/6/api/javax/servlet/RequestDispatcher.html
Вы можете установить диспетчеризацию ошибка с помощью тега в дескрипторе развертывания (web.xml). Например, если вы добавили тег error-page для кода ошибки 404, то контейнер отправит на эту страницу, когда возникнет ошибка страницы. На этой странице ошибки вы можете использовать код, например request.getAttribute ("javax.servlet.error.message"), чтобы получить сведения об ошибке. Пример ...
web.xml:
<web-app>
<error-page>
<error-code>404</error-code>
<location>/error.jsp</location>
</error-page>
</web-app>
error.jsp:
<!DOCTYPE html>
<html>
<head>
<title>404 Error</title>
</head>
<body>
The page was not found. You requested <%= request.getAttribute("javax.servlet.error.message") %> but it was not found. Sorry.
</body>
</html>
В приведенном выше примере приложения, если клиент запрашиваемая страница не найдена или вы используете response.sendError («404», «...») где-нибудь, контейнер отправит сообщение об ошибке error.jsp.
Также применим механизм обработки ошибок JSP (с использованием директив страницы «errorPage» и «isErrorPage»).
Это все еще туманно для меня! Как настроить/настроить эту отправку ошибок? Кроме того, does not response.sendError() вызывать отправку ошибок? – brainOverflow
Я добавил дополнительную информацию о выполнении отправки ошибок. – manojtc