用途

过滤器:用于设置字符编码、URL级别的权限控制,敏感词汇的过滤

拦截器:拦截未登录的用户,拦截器和过滤器的功能相近

监听器:监听器主要监听对应事件的发生。主要有ServletContext、httpSession、ServletRequest对象的创建和销毁,属性的增加、删除,HTTPSession中对象的绑定和解绑。

执行顺序

过滤器:过滤器依赖web容器存在,在web.xml中配置,会在请求还未进入servlet之前或出servlet之后调用

拦截器:拦截器依赖web框架(spring、Struts),在web框架的配置文件中配置,在请求进入servlet之后且进入对应的controller之前调用,或在出controller之后且出servlet之前调用。

监听器:依赖web容器存在,在web.xml中配置,在事件触发时调用

从执行顺序上来看 :

chain.doFilter()之前的代码-> interceptor.preHandle() -> service() -> interceptor.postHandler() -> interceptor.afterCompletion() -> chain.doFilter()之后的代码 


Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐