过滤器和拦截器的区别是什么

过滤器和拦截器都是Web应用程序中的常用组件,不过它们的功能和使用方式不同。

1.工作位置不同

过滤器在Servlet容器内部工作
拦截器在SpringMVC框架内部工作

2.触发时间不同

过滤器在客户端向服务器发送请求前触发,在请求到达Servlet容器之前进行处理
拦截器是在进入Controller之前触发,即在请求到达SpringMVC之前进行处理

3.监听对象不同

过滤器可以监听的对象由request、response、session、application、servletContext等。
拦截器只能监听处理器方法,即controller中的方法

4.功能不同

过滤器是servlet规范的一部分,主要用于对请求进行预处理和后处理,如编码转换、敏感信息过滤、防止xss等。

拦截器是SpringMVC框架提供的一种机制,主要用来对请求进行控制,比如权限验证、日志记录等。

你可能感兴趣的:(面试题,面试)