如何在Spring mvc的拦截器或AOP中终止执行 并返回json
@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;
}
}
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
interceptor 如果要返回json,比较麻烦,比较方便的做法是抛一个异常,然后在@ExceptionHandler里处理。