1. 程式人生 > 實用技巧 >Filter&&Listener

Filter&&Listener

Filter

  1. 概念:filter是對客戶端訪問資源的過濾,符合條件放行,不符合條件不放行,並且可以對目標資源訪問前後進行邏輯處理

  2. 設定步驟

    1. 建立類實現Filter介面

    2. 在doFilter方法中編寫放行和攔截的程式碼

    3. 配置攔截路徑

  3. url­pattern

    1. 目錄匹配和副檔名匹配不能同時使用,會造成伺服器無法啟動

    2. 沒有預設配置

    3. @WebFilter("/*")//訪問所有資源之前,都會執行該過濾器

  4. dispatcher:訪問的方式

    1. REQUEST:預設值,代表直接訪問某個資源時執行filter

    2. FORWARD:轉發時才執行filter

    3. INCLUDE: 包含資源時執行filter

    4. ERROR:發生錯誤時 進行跳轉是執行filter

  5. 案例

     案例:敏感詞彙過濾 
    * 需求:
    1. 對day17_case案例錄入的資料進行敏感詞彙過濾
    2. 敏感詞彙參考《敏感詞彙.txt》
    3. 如果是敏感詞彙,替換為 ***
    * 分析:
    1. 對request物件進行增強。增強獲取引數相關方法
    2. 放行。傳遞代理物件
    * 增強物件的功能:
    * 設計模式:一些通用的解決固定問題的方式
    1. 裝飾模式
    2. 代理模式
    * 概念:
    1. 真實物件:被代理的物件
    2. 代理物件:
    3. 代理模式:代理物件代理真實物件,達到增強真實物件功能的目的
    * 實現方式:
    1. 靜態代理:有一個類檔案描述代理模式
    2. 動態代理:在記憶體中形成代理類
    * 實現步驟:
    1. 代理物件和真實物件實現相同的介面
    2. 代理物件 = Proxy.newProxyInstance();
    3. 使用代理物件呼叫方法。
    4. 增強方法
    * 增強方式:
    1. 增強引數列表
    2. 增強返回值型別
    3. 增強方法體執行邏輯

Listener

  • 概念:web的三大元件之一。

    • 事件監聽機制

      • 事件 :一件事情

      • 事件源 :事件發生的地方

      • 監聽器 :一個物件

      • 註冊監聽:將事件、事件源、監聽器繫結在一起。 當事件源上發生某個事件後,執行監聽器程式碼

  • 監聽器就是監聽某個物件的的狀態變化的元件,其主要是監聽三個域物件(ServletContext域,HttpSession域,ServletRequest域)的建立和銷燬以及域物件內的屬性的改變,一共有6+2個

  • Add to Phrasebook
    • No word lists for English -> ...
    • Create a new word list...
  • Copy