我一直在研究Grails很長一段時間了。並且對過濾器和攔截器進行一些掃描。兩者都具有跟蹤會話或在特定控制器中重定向未授權用戶的功能。Grails過濾器vs攔截器
但我很困惑何時以及爲什麼我應該使用Filter而不是Interceptor,反之亦然。 鑑於Inceptors有兩個控制器方法beforeInterceptor
和afterInterceptor
以及過濾器a三個常用關閉before
,after
和afterView
。
我的問題是使用Filter對攔截器有什麼優缺點,反之亦然。以這種方式,我們開發者可以決定何時,何地以及爲什麼我們應該在特定控制器中使用濾波器或攔截器來執行一些跟蹤,重定向等。
我明白了。但是,你不可以創建一個抽象控制器來保存類似的攔截邏輯,並讓這個控制器成爲所有其他控制器的父代? 在什麼情況下,我們可以說我們需要在其閉包中使用'Filters'聲明filterering邏輯,'afterView'? – 2012-07-26 06:11:35
然後你需要一點不同的邏輯,所以需要創建另一個抽象控制器。過濾器可以幫助您將代碼集中在一個地方,並跳過您不需要的依賴關係。 – 2012-07-26 08:44:53