1. 程式人生 > 資訊 >中國廣電 5G 核心網重慶節點開工

中國廣電 5G 核心網重慶節點開工

1  概念:

    當訪問伺服器的資源時,過濾器可以將請求攔截下來,完成一些特殊的功能

    過濾器的作用:

      一般用於完成通用的操作,如:登入驗證、統一編碼處理、敏感字元過濾...

2  快速入門:

  1  步驟:

    1  定義一個類,實現介面filter

    2  複寫方法

    3  配置攔截路徑

      1  web.xml

      2  註解

@WebFilter("/*")//訪問所有資源之前,都會執行該過濾器
public class filter implements Filter{

    @Override
    public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)
            
throws IOException, ServletException { // TODO Auto-generated method stub System.out.println("demo1被執行了"); //放行 arg2.doFilter(arg0, arg1); } }

 

3  過濾器細節

  1  過濾器執行流程

    1  執行過濾器

    2  執行放行後的資源

    3  回來執行過濾器放行程式碼下邊的程式碼

  2  過濾器生命週期方法

    1  init:再伺服器啟動之後,會建立Filter物件,然後呼叫init方法。只執行一次,用於載入資源

    2  doFilter:每一次請求被攔截時,會執行。執行多次

    3  destroy:在伺服器關閉後,Filter物件被銷燬。如果伺服器是正常關閉,則會執行destroy方法

  3  過濾器配置詳解

    1  攔截路徑配置:

      1  具體資源路徑:   /index.jsp  只有訪問index.jsp時,才會被執行

      2  攔截目錄:   /user/*    訪問/user下的所有資源時,過濾器都會被執行

      3  字尾名攔截:   *.jsp   訪問所有後綴名為jsp的資源時,過濾器都會被執行

      4  攔截所有資源   /*

    2  攔截方式配置:資源被訪問的方式

      註解配置

        設定dispatcherTypes屬性

          1  REQUEST:預設值        瀏覽器直接請求資源   

             @WebFilter(value="/index.jsp",dispatcherTypes=DispatcherType.REQUEST)                                                          

          2  FORWORD:轉發訪問資源    

          3  INCLUDE:包含訪問資源

          4  ERROR:錯誤跳轉資源

          5  ASYNC:非同步訪問資源

        web.xml配置

  4  過濾器鏈(配置多個過濾器)

    執行順序:如果有兩個過濾器:過濾器1和過濾器2

      1  過濾器1

      2  過濾器2

      3  資源執行

      4  過濾器2

      5  過濾器1

    過濾器先後順序問題:

      1  註解配置:按照類名的字串比較規則比較,值小的先執行

        如:AFilter和BFilter    AFilter先執行

      2  web.xml配置:誰定義在上面,誰先執行