1.Filter
过滤器,拦截资源访问。
1.配置
①web.xml
<filter>
<filter-name>FilterDemo1</filter-name>
<filter-class>cn.ming.filter.FilterDemo1</filter-class>
</filter>
<filter-mapping>
<filter-name>FilterDemo1</filter-name>
<!--拦截的资源目录-->
<url-pattern>/*</url-pattern>
</filter-mapping>
②注解
@WebFilter("/*") //拦截资源目录
2.设置拦截目录
- /* 拦截该项目下所有的访问路径
- *.jsp 拦截所有的jsp格式的文件
- /filename/name 拦截该目录下的文件
3.设置拦截方式(根据访问方式)
1. REQUEST 默认值 浏览器直接请求
2. FORWORD 转发访问资源
3. INCLOUD 包含访问资源
4. ERRROR 错误访问资源
5. ASYNC 异步访问资源
都可以单选或者多选
注解:
@WebFilter("/*",dispatcherTypes = {DispatcherType.REQUEST,DispatcherType.ASYNC})
web.xml
<dispatcher>ASYNC</dispatcher>
<dispatcher>FORWARD</dispatcher>
3.声明周期
当服务器启动时执行开始执行init方法
当访问要拦截的目录时执行doFilter方法
当服务器正常关闭时执行destroy方法
4.拦截顺序
有两个过滤器:
FilterA -> FilterB -> Source -> FilterB ->FilterA
多个需要过滤文件:
值小的先执行
web.xml:先执行上方的
2.Listener
监听器 WEB三大组件之一
将事件源、监听器、事件绑定在一块;事件源上的某个事件发生时执行监听器代码。