1. 程式人生 > >攔截器、監聽器、過濾器、動態代理、裝飾

攔截器、監聽器、過濾器、動態代理、裝飾

http://blog.csdn.net/qq_36411874/article/details/53996873

從靈活性上說攔截器功能更強大些,Filter能做的事情,他都能做,而且可以在請求前,請求後執行,比較靈活。Filter主要是針對URL地址做一個編碼的事情、過濾掉沒用的引數、安全校驗(比較泛的,比如登入不登入之類),太細的話,還是建議用interceptor。

可以看到過濾器可以監控url請求,在到達servlet前就進行處理。而攔截器是請求到了 在通過反射去動態代理實現攔截。

 Spring的攔截器與Servlet的Filter有相似之處,比如二者都是AOP程式設計思想的體現,都能實現許可權檢查、日誌記錄等。不同的是:

使用範圍不同:Filter是Servlet規範規定的,只能用於Web程式中。而攔截器既可以用於Web程式,也可以用於Application、Swing程式中。
規範不同:Filter是在Servlet規範中定義的,是Servlet容器支援的。而攔截器是在Spring容器內的,是
Spring框架
支援的。