HttpServletResponse sendRedirect постоянный - PullRequest
57 голосов
/ 27 января 2012

Это перенаправит запрос с временным 302 кодом состояния HTTP:

HttpServletResponse response;
response.sendRedirect("http://somewhere");

Но возможно ли перенаправить его с постоянным 301 HTTP-статусомкод

Ответы [ 2 ]

95 голосов
/ 27 января 2012

Вам необходимо установить статус ответа и заголовок Location вручную.

response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
response.setHeader("Location", "http://somewhere/");

Установка статуса до sendRedirect() не будет работать, так как sendRedirect() впоследствии переопределит его на SC_FOUND.

0 голосов
/ 28 сентября 2017

Я использовал следующий код, но у меня ничего не вышло.

String newURL = res.encodeRedirectURL("...");
response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
response.sendRedirect(newURL);

Затем я попробовал этот кусок кода, он работал для меня

String newURL = res.encodeRedirectURL("...");
response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
response.setHeader("Location", newURL);

это сработало для меняУ меня была такая же проблема

как установить статус на 301 при перенаправлении

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...