过滤器链的执行顺序:
代码展示:
1 //一定要实现javax.servlet.Filter这个接口 2 //导入这个包:import javax.servlet.*; 3 4 //urlPatterns = "/*" 过滤所有的资源 5 //@WebFilter 说明我们这个是个过滤器 6 //按照全类名的字典表来比较过滤器执行的顺序 7 @WebFilter(filterName = "FirstFilter",urlPatterns = "/*") 8 public class FirstFilter implements Filter { 9 10 //初始化的方法 11 @Override 12 public void init(FilterConfig filterConfig) throws ServletException { 13 14 } 15 16 //真正实现过滤的功能:doFilter 17 @Override 18 public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { 19 20 //所有的请求都有向下类型转换一下,因为我们的所有请求都是HTTP请求 21 //一般要用到request的时候才转,不用的时候就不转 22 HttpServletRequest request=(HttpServletRequest)servletRequest; 23 HttpServletResponse response=(HttpServletResponse)servletResponse; 24 25 System.out.println("FirstFilter 之前。。。。"); 26 27 //执行下一个过滤器或者资源 28 filterChain.doFilter(request,response); 29 30 System.out.println("FirstFilter 之后+++++++++"); 31 32 } 33 34 //销毁的方法 35 @Override 36 public void destroy() { 37 38 } 39 }
结果: