在面试中经常会被问到拦截器和过滤器之间的区别,拦截器和过滤器大体有以下几点区别:
1、拦截器是基于java的反射机制,过滤器则是基于函数的回调
2、拦截器只对action请求进行拦截,过滤器则拦截所有页面
3、拦截器可以访问action的上下文,也就是说可以得到请求的数据,值栈中的对象,过滤器不能
4、过滤器依赖servlet容器,而拦截器不依赖servlet容器
5、在action的生命周期中,拦截器可以被多次调用,而过滤器只有在容器初始化的时候被调用
拦截器应用的场合如项目中敏感词拦截
过滤器应用的场合如登录验证