HttpServletResponse.sendError() не перенаправляет на страницу ошибки
У меня есть следующий код в методе doFilter (), где я получаю компонент области приложения.
if (request.getServletContext().getAttribute("resource")==null) {
response.sendError(503);
return;
}
я сопоставил код 503 с определенной страницей ошибок в интернете.XML. И я действительно получаю содержимое страницы ошибок в браузере, если возникает ошибка. Но адрес в адресной строке не изменяется для адреса страницы ошибки: адрес запрошенного сервлета остается там. Это правильное поведение? Я хотел бы сообщить явно о перенаправлении на страницу ошибки. Возможно ли это только с помощью sendRedirect()?
1 ответов
Это правильное поведение. При использовании sendError () он ответит на текущий запрос страницей с ошибкой. Если вы хотите, чтобы URL-адрес изменился на URL-адрес страницы ошибок, вам нужно будет использовать sendRedirect() для ответа с перенаправлением.