一、servlet过滤器
在服务器接受请求并进入servlet之前和服务器处理完并返回到页面前进行过滤。如spring的字符集过滤器,用于设置服务器编码和解码的字符集
二、spring拦截器
在进入controller之前或者进入某方法之前,之后,返回页面前执行,AOP思想的一个体现。主要包括prehandle(),posthandle(),afterCompletion()方法。
三、监听器
随web应用的启动而启动,只初始化一次,随web应用的停止而销毁。
主要作用是:做一些初始化的内容添加工作、设置一些基本的内容、比如一些参数或者是一些固定的对象等等
四、过滤器和拦截器的不同
- 过滤器基于函数回调,拦截器基于java反射机制
- 过滤器在容器启动时候初始化时调用一次,拦截器可以多次调用
- 过滤器在servlet前后起作用,拦截器能够深入到方法的前后进行作用
附:springMVC图