重定向到Java中带有404状态代码的URL

时间:2018-10-24 17:57:42

标签: java spring-mvc redirect http-status-code-404 http-status-code-301

如何将http请求重定向到带有404状态代码的特定URL。我正在使用

Response.sendRedirect("/404userfriendlypage")

请求的URL的响应代码为301,相反,我需要为404。然后重定向到此用户友好的错误页面。

谢谢。

2 个答案:

答案 0 :(得分:0)

使用这种语法在您的spring控制器中重定向

        return "redirect:/urlNotExist";

以上重定向将把404传递给客户端,因为“ / urlNotExist”路由没有映射。

现在,您可以在客户端的任一客户端代码进行重定向,以重定向到用户友好的错误页面。或者,只需设置一个@ControllerAdvice,即可将服务器端重定向到用户友好的错误页面。

纯Java解决方案。

使用简单的Response.sendRedirect(“ path”);

Response.sendRedirect("/404Genratingpage")

并且在staus为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);%>

答案 1 :(得分:0)

我已经通过使用以下代码解决了这个问题。

Response.sendError(HttpServletResponse.SC_NOT_FOUND);

向请求的网址发送404到前端。在应用程序级别,我们有一个配置,其中404代码是否接收到重定向到用户友好页面的重定向。