HttpServletResponse sendRedirect永久

时间:2012-01-27 13:47:12

标签: java servlets

这将使用临时 302 HTTP状态代码重定向请求:

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

但是可以使用永久 301 HTTP状态代码重定向它吗?

2 个答案:

答案 0 :(得分:93)

您需要手动设置响应状态和Location标题。

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

sendRedirect()赢得sendRedirect()之前的状态设置为SC_FOUND后会将其覆盖为{{1}}。

答案 1 :(得分:-1)

我使用了以下代码,但对我没有用。

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);

这对我有用,我有同样的问题

how to set status to 301 while redirecting