HttpServletResponse.sendError()不会重定向到错误页面

Gra*_*ade 6 java servlets

我在doFilter()方法中有以下代码,在这里我获得了应用程序作用域bean.

    if (request.getServletContext().getAttribute("resource")==null) {
        response.sendError(503);
        return;
    }
Run Code Online (Sandbox Code Playgroud)

我将503代码映射到web.xml中的特定错误页面.如果发生错误,我真的会在浏览器中获得错误页面的内容.但地址栏中的地址不会因错误页面地址而改变:请求的servlet的地址离开那里.这是正确的行为吗?我想明确告知重定向到错误页面.是否只能使用sendRedirect()?

wor*_*pet 4

这是正确的行为。当您使用 sendError() 时,它将用错误页面响应当前请求。如果您希望将 URL 更改为错误页面 URL,则需要使用 sendRedirect() 来响应重定向。