如何在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;
}
}
8 回答6.5k 阅读
4 回答688 阅读✓ 已解决
2 回答3.4k 阅读
3 回答1.9k 阅读✓ 已解决
1 回答2.1k 阅读✓ 已解决
1 回答2.1k 阅读✓ 已解决
1 回答962 阅读✓ 已解决
interceptor 如果要返回json,比较麻烦,比较方便的做法是抛一个异常,然后在@ExceptionHandler里处理。