The key takeaway is that with _Filter_s, we can manipulate requests before they reach our controllers and outside of Spring MVC. Otherwise, _HandlerInterceptor_s are a great place for application-specific cross-cutting concerns. By providing access to the target Handler and ModelAndView objects, we have more fine-grained control.