过滤器与拦截器的区别
拦截器时Spring容器的
拦截器时JavaSE标准 / 过滤器是JavaEE标准
拦截器是基于Java的反射机制 / 过滤器是基于回调函数
拦截器不依赖与Servlet容器 / 过滤器依赖于Servlet容器
拦截器只能对action请求起作用 / 过滤器可以对几乎所有请求起作用
拦截器可以访问action上下文,值栈里的对象 / 过滤器则不行
在action请求的生命周期中 拦截器多次调用 / 过滤器只能在容器初始化时被调用一次
拦截器可以获取IOC容器的各个Bean 可以在拦截器中注入一个service进行业务调用 / 而过滤器不行
触发时机
过滤器是在请求进入容器后,进入Servlet之前进行预处理,请求结束返回也是在Servlet处理之后,返回前段之前
深度不同
Filter只在Servlet前后起作用,而Interceptor则可以深入到方法前后,异常抛出前后等,拦截器弹性更大