过滤器实现Filter接口javax.servlet.Filter
package com.henau.example; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public class FilterDemo1 implements Filter { @Override public void destroy() { System.out.println("过滤器1销毁了"); } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { System.out.println("调用过滤器1"); chain.doFilter(request, response); System.out.println("调用过滤器1"); } @Override public void init(FilterConfig arg0) throws ServletException { System.out.println("过滤器初始化1"); } }
配置web.xml(表示过滤所有目录)
<filter-name>FilterDemo1</filter-name> <filter-class>com.henau.example.FilterDemo1</filter-class> </filter> <filter-mapping> <filter-name>FilterDemo1</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
配置两个Filter
调用一个页面,输出的结果为
调用过滤器1 调用过滤器2 输出 调用过滤器2 调用过滤器1
调用的顺序是web.xml中的Filter-mapping的配置先后顺序而先后执行