拦截器,监听器和过滤器比较

拦截器

1.拦截器(通常指的是HandlerInterceptor)

拦截器依赖web框架(spring、Struts),在web框架的配置文件中配置,在请求进入servlet之后且进入对应的controller之前调用,或在出controller之后且出servlet之前调用。,在SpringMVC中就是依赖于SpringMVC框架。在实现上基于Java的反射机制,属于面向切面编程(AOP)面向切面编程的一种运用。由于拦截器是基于web框架的调用,因此可以使用Spring的依赖注入(DI)进行一些业务操作,同时一个拦截器实例在一个controller生命周期之内可以多次调用。但是缺点是只能对controller请求进行拦截,对其他的一些比如直接访问静态资源的请求则没办法进行拦截处理

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

2.过滤器

过滤器依赖web容器存在,在web.xml中配置,会在请求还未进入servlet之前或出servlet之后调用,依赖于servlet容器。在实现上基于函数回调,可以对几乎所有请求进行过滤,但是缺点是一个过滤器实例只能在容器初始化时调用一次。使用过滤器的目的是用来做一些过滤操作,获取我们想要获取的数据

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

3.监听器

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

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

你可能感兴趣的:(随笔)