servlets

HttpServletResponse sendRedirect permanent


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?


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.