過濾器鏈的執行順序:
代碼展示:
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 }
結果: