1、过程
如图filter(过滤器) -> interceptor(拦截器)->ControllerAdvice(自定义异常处理机制)->Aspect(切面)->Controoler(控制器)
2、过滤器
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
只能拿到请求和相应,拿不到具体的控制器信息
3、拦截器
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
能拿到控制器,但拿不到方法参数
//成功执行后
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
ModelAndView modelAndView)
//finally
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
4、切面
通过@Around,ProceedingJoinPoint可以获取控制器的相应信息
public Object handleControllerMethod(ProceedingJoinPoint pjp)