Filter:
1、概念:
web中的过滤器:当访问服务器的资源时,过滤器可以将请求拦截下来,做一些事。
过滤器的作用:一般用于完成一些通用的操作:登录验证、统一编码处理,敏感字符处理….
2、快速入门:
步骤:
1、定义一个类,实现Filter接口。
2、复写方法。
3、配置拦截路径。
* web.xml
<filter> <filter-name>demo1</filter-name> <filter-class>filter.filter</filter-class> </filter> <filter-mapping> <filter-name>demo1</filter-name> <!-- 拦截路径--> <url-pattern>/*</url-pattern> </filter-mapping>
* 注解:@WebFilter(“/*”)
3、过滤器细节。
1、过滤器执行流程:执行过滤器 —- 执行放行后的资源 —- 回来执行放行代码后面的代码。
2、过滤器的生命周期方法。
1、init :在服务器启动后,会创建Filter对象,条用init方法。只执行一次。用来加载资源。
2、doFilter :每次请求被拦截资源时会执行。执行多次。
3、destroy:在服务器正常关闭时执行,销毁Filter对象。用于释放资源。
4、过滤器配置详解。
1、拦截路径配置。
* 具体资源路径:/index.jsp :只有访问index.jsp资源时过滤器才执行。
* 拦截目录: /user/* :。。。。。
* 后缀名拦截: * . jsp :。。。。
* 拦截所有资源: /*
2、拦截方式配置。
* 注解配置:设置dispatcherTypes属性。
1、REQUEST:默认值,浏览器直接请求资源时过滤。
2、FORWARD:转发访问资源时。。
3、INCLUDE:包含访问资源时。。。
4、ERROR:错误跳转资源。
5、ASYNC:异步访问资源时。
* web.xml 配置 :设置<dispatcher></dispatcher> 标签。
5、过滤器链(配置多个过滤器)
* 执行顺序:两个过滤器:filter1 filter2 :filter1-》filter2-》资源-》filter2 -》filter1.
* 过滤器先后顺序问题:
1、注解配置:比较类名的字符串,小的先执行。
2、web.xml 配置:谁在前面谁先执行。
Listener:
1、概念。
事件监听机制:
* 事件 :一件事情
* 事件源:事件发生的地方
* 监听器 :一个对象
* 注册监听:将事件、事件源、监听器绑定在一起。发生某个事件后,执行监听器代码。
2、ServletContextListener:监听ServletContext对象的创建和销毁。
*