HttpServletResponse sendRedirect permanent

java, servlets

Solution

You need to set the response status and the `Location` header manually.

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

Setting the status before `sendRedirect()` won't work as `sendRedirect()` would overridde it to `SC_FOUND` afterwards.

Problem

This will redirect a request with a temporary 302 HTTP status code: ``` HttpServletResponse response; response.sendRedirect("http://somewhere"); ``` But is it possible to redirect it with a permanent 301 HTTP status code?

Original source