springboot拦截器,在返回true的情况下后面的任务继续执行。
在第一步的拦截中,如果返回false会继续处理后面的请求。
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
return true;
}
在返回false的情况中,后面的任务将不在执行,中断执行链。目前网上多数没有说在返回false情况下应该如何处理。
在我的开发中,因为需要返回的是json数据,我设置返回的json数据。
private void handleFalseResponse(HttpServletResponse response)
throws Exception {
response.setStatus(200);
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write("{\"name\":\"chenrui\"}");
response.getWriter().flush();
}
response.setStatus(200);
设置返回的编码,比如200,404,401啥的;
response.getWriter().write("{\"name\":\"chenrui\"}")
设置返回的数据;其他的设置都是很容易理解的。
设置代码的格式
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
if(失败条件成立) {
handleFalseResponse(response);
return false;
}
return true;
}
在拦截处理返回的false请求后返回的内容是
{
"name":"chenrui"
}
如果您有其他更好的处理方式,希望指出,谢谢!