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

Redirect to a URL with 404 status code in Java

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

Response.sendRedirect("/404userfriendlypage")

请求的 URL 的响应代码是 301,而我需要它是 404。然后重定向到这个用户友好的错误页面。

提前致谢。

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

        return "redirect:/urlNotExist";

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

现在您可以在客户端编写代码以重定向到用户友好的错误页面。或者简单地设置一个 @ControllerAdvice 用于服务器端重定向到用户友好的错误页面。

简单的解决方案java.

使用简单的重定向 Response.sendRedirect("path");

Response.sendRedirect("/404Genratingpage")

并在状态为 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);%>

我已经使用下面的代码解决了这个问题。

Response.sendError(HttpServletResponse.SC_NOT_FOUND);

为请求的 url 向前端发送 404。在应用程序级别,我们有一个配置,如果 404 代码收到重定向到用户友好的页面。