HttpServletResponse.sendError() не перенаправляет на страницу ошибки

У меня есть следующий код в методе doFilter (), где я получаю компонент области приложения.

    if (request.getServletContext().getAttribute("resource")==null) {
        response.sendError(503);
        return;
    }

я сопоставил код 503 с определенной страницей ошибок в интернете.XML. И я действительно получаю содержимое страницы ошибок в браузере, если возникает ошибка. Но адрес в адресной строке не изменяется для адреса страницы ошибки: адрес запрошенного сервлета остается там. Это правильное поведение? Я хотел бы сообщить явно о перенаправлении на страницу ошибки. Возможно ли это только с помощью sendRedirect()?

1 ответов


Это правильное поведение. При использовании sendError () он ответит на текущий запрос страницей с ошибкой. Если вы хотите, чтобы URL-адрес изменился на URL-адрес страницы ошибок, вам нужно будет использовать sendRedirect() для ответа с перенаправлением.