MVC基礎知識2 過濾器的使用(Filter)

2022-09-16 21:54:40 字數 1991 閱讀 8226

過濾器(filter)

四種 filter:

例項:

定義的類可以在global 中globalfilters.filters.add(new ***filter()); 的方式新增為全域性的

過濾器。

2 、iauthorizationfilter 案例 : 只有登入後才能訪問除了 logincontroller 之外的 controller 。

1) ) 編寫乙個類 checkauthorfilter ,實現 iauthorizationfilter 介面

2) ) 在 在 global 中註冊這個 filter :globalfilters.filters.add(new checkauthorfilter());

3) ) checkauthorfilter 中實現 onauthorization 方法。filtercontext.actiondescriptor 可以獲得

action 的資訊:filtercontext.actiondescriptor.actionname 獲得要執行的 action 的名字;

filtercontext.actiondescriptor.controllerdescriptor.controllername 為要執行的 controller

的名字;filtercontext.actiondescriptor.controllerdescriptor.controllertype 為要執行的

controller 的 的 type ;filtercontext.httpcontext 的 獲得當前請求的 httpcontext ; 如果給

「 「 filtercontext.result 」 賦值 了, 那麼 就不 會再執 行的 要 執行 的 action , 而是 以

「 「 filtercontext.result 」 的 值 作 為 執 行 結 果 ( 注 意 如 果 是 執 行 的

filtercontext.httpcontext.response.redirect() ,那麼目標 action 還會執行的)。

4) ) 則 檢查當前使用者是否登入,如果沒有登入則 filtercontext.result = new contentresult()

; 或者 filtercontext.result = new redirectresult("/login/index");

(最好不要 filtercontext.httpcontext.response.redirect("/login/index"); )

5) ) a 使用者有一些 action 執行許可權,b 使用者有另外一些 action 的執行許可權;

3 、iactionfilter 案例: 日誌記錄,記錄登入使用者執行的 action 的記錄,方便跟蹤責任。

4 、iexceptionfilter:記錄未捕獲異常

public

class

exceptionfilter : iexceptionfilter;}

}globalfilters.filters.add(new exceptionfilter());//

然後

總結好處:一次編寫,其他地方預設就執行了。 可以新增多個同乙個型別的全域性 filter ,

按照新增的順序執行。

非全域性 filter :自 只要讓實現類繼承自 filterattribute 類,然後該實現哪個 filter 介面就

到 實現哪個(四個都支援)。不新增到 globalfilters 中,而是義 把這個自定義 attribute 新增到

controller 類上這樣就只有這個 controller 中操作會用到這個 filter 。如果新增到 action 方法

上,則只有這個 action 執行的時候才會用到這個 filter

過濾器基礎知識

filter 技術是servlet 2.3 新增加的功能。servlet2.3是sun公司與2000年10月發布的,它的開發者包括許多個人和公司團體,充分體現了sun公司所倡導的 開放性原則。由於眾多的參與者的共同努力,servlet2.3比以往功能都強大了許多,而且效能也有了大幅提高。filter...

MVC的過濾器

過濾器分類 action過濾器 view結果渲染過濾器 全域性錯誤異常過濾器 身份驗證過濾器 1.action過濾器 在action執行之前和執行之後分別幹一些事 介面 iactionfilter 2.view結果渲染過濾器 介面 iactionfilter attributeusage attri...

route和過濾器的基礎知識

過濾器 1.區域性過濾器 在當前元件內部使用過濾器 對某些資料進行裝飾 宣告 filters 使用 管道符 資料 過濾器的名字 will william 2.全域性過濾器 只要過濾器一建立,在任何元件中都能使用 vue.filter 過濾器的名字 function val,a,b 在各個元件中都能使...