springboot:如何在HandlerInterceptor的预处理中返回错误状态代码

san*_*mar 4 java spring spring-boot

HandlerInterceptor在Spring Boot中使用它来处理常见的请求类型.但是在执行时preHandle,如果不满足条件,我想将错误状态代码返回给用户.如果我preHandle在响应中抛出异常将具有所有异常堆栈.如何使用preHandle的响应代码发送自定义正文作为响应

Ars*_*yan 15

如果不满足条件,则可以使用response.setStatus(someErrorCode)设置响应状态代码并返回false以停止执行.要发送自定义正文,您可以使用以下方法: response.getWriter().write("something");

这是完整的例子.

@Override
public boolean preHandle(HttpServletRequest request,
    HttpServletResponse response, Object handler) throws Exception {

    if (conditionsNotMet()) {
        response.getWriter().write("something");
        response.setStatus(someErrorCode);

        return false;
    }

    return true;
} 
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.