springboot:如何在HandlerInterceptor

时间:2016-09-18 06:17:31

标签: java spring spring-boot

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

1 个答案:

答案 0 :(得分:13)

如果不满足条件,您可以使用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;
} 

希望这会有所帮助。