Filter:和框架无关,可以控制最初的http请求,但是更细一点的类和方法控制不了。
可以拦截到方法的请求和响应(ServletRequest request, ServletResponse response)
可以对请求响应进行处理,比如设置字符编码,鉴权操作等
Interceptor:可以控制请求的控制器和方法,但控制不了请求方法里的参数
可以设置为方法执行之前(preHandle)和方法执行之后(afterCompletion)
回调操作(postHandle),可以获取执行的方法的名称/请求(HttpServletRequest)等
常用于处理页面提交的请求响应并进行处理,例如做国际化,做主题更换,过滤等
Aspect : 可以自定义切入的点,能拿到方法的参数,但是拿不到http请求,可以通过其他方式如RequestContextHolder获得。
可以对操作进行横向的拦截,可以获取执行方法的参数,对方法进行统一的处理
常见使用日志,事务,请求参数安全验证等