多个过滤器共同作用的过程
FilterDemo1
System.out.println("11111111 before"); chain.doFilter(request, response); System.out.println("1111111111 after"); |
FilterDemo2
System.out.println("22222222 before"); chain.doFilter(request, response); System.out.println("22222222 after"); |
Index.jsp
<% System.out.println("jsp xxxxxxxxxxxxxxx............"); %> |
输出结果
11111111 before 222222222222 before jsp xxxxxxxxxxxxxxx............ 222222222222 after 1111111111 after |
交换web.xml中两个过滤器的描述代码位置,重新运行,结果为:
222222222222 before 11111111 before jsp xxxxxxxxxxxxxxx............ 1111111111 after 222222222222 after |
过滤器的生命周期
过滤器的生命周期:(一定要实现javax.servlet包的Filter接口的三个方法init()、doFilter()、destroy(),空实现也行)(1)、启动服务器时加载过滤器的实例,并调用init()方法来初始化实例;
(2)、每一次请求时都只调用方法doFilter()进行处理;
(3)、停止服务器时调用destroy()方法,销毁实例。