SpringMVC 拦截器或Aop终止执行 并返回结果?

如何在Spring mvc的拦截器或AOP中终止执行 并返回json

阅读 8.1k
2 个回答

interceptor 如果要返回json,比较麻烦,比较方便的做法是抛一个异常,然后在@ExceptionHandler里处理。

@Component
public class ManagerInterceptor extends HandlerInterceptorAdapter {
    
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws IOException {
        LOGGER.info("begin ManagerInterceptor");
        if (request.getMethod().equals("OPTIONS")) {
            return true;
        }
        String user = request.getHeader("user");
        String password = request.getHeader("password");
        if (StringUtils.isEmpty(user) || StringUtils.isEmpty(password) || !user.equals("giraffe") || !password.equals("tree")) {
            response.setContentType("application/json;charset=utf-8");
            ReturnObject returnObject = ReturnObject.fail("就不告诉你什么错误 (๑╹◡╹)ノ");
            response.getWriter().print(JSON.toJSONString(returnObject));

            return false;
        }

        return true;
    }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题