Перенаправление на URL с кодом состояния 404 в Java - PullRequest
0 голосов
/ 24 октября 2018

Как перенаправить запрос http на определенный URL с кодом состояния 404.Я использую

Response.sendRedirect("/404userfriendlypage")

Код ответа на запрошенный URL-адрес - 301, вместо этого мне нужно быть 404. И затем перенаправить на эту удобную страницу ошибок.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 27 октября 2018

Я решил эту проблему с помощью приведенного ниже кода.

Response.sendError(HttpServletResponse.SC_NOT_FOUND);

, который отправляет 404 на передний конец для запрошенного URL.На уровне приложения у нас есть конфигурация, где, если код 404 получает перенаправление на удобную для пользователя страницу.

0 голосов
/ 24 октября 2018

Перенаправление в вашем контроллере пружины с использованием этого синтаксиса

        return "redirect:/urlNotExist";

При вышеупомянутом перенаправлении клиент получит 404, поскольку маршрут "/ urlNotExist" не имеет сопоставления.

Теперь вы можете кодировать на стороне клиента на стороне клиента для перенаправления на дружественную страницу ошибок.Или просто настройте @ControllerAdvice для перенаправления на стороне сервера на удобную страницу ошибок.

Решение в простой Java.

Перенаправление с использованием простого Response.sendRedirect ("путь");

Response.sendRedirect("/404Genratingpage")

И для перенаправления на пользовательскийСтраница ошибки, когда статус 404 или по другим критериям.Вам необходимо переопределить метод Response.sendRedirect.

 public class CustomResponseWrapper extends HttpServletResponseWrapper {

     @Override
    public void sendRedirect(String location) {

      //custom logic to redirect to a user friendly error page.
  super.sendRedirect(request.getContextPath()+"/404userfriendlypage.jsp");
    }

}

А для вашего 404 или любого другого статуса попробуйте установить статус ответа, как показано ниже в вашем 404userfriendlypage.jsp.

<%response.setStatus(404);%>
...