天天看點

通勤人員可出京,該緊的時候就要緊

“ 疫情橫行,該緊的時候就是要緊。”

最新疫情播報

随着數量的降低,排查的更新,人員的流動已經有了更多的自由。

通勤人員可出京,該緊的時候就要緊
通勤人員可出京,該緊的時候就要緊

過濾器

所謂過濾器顧名思義是用來過濾的,Java的過濾器能夠為我們提供系統級别的過濾,也就是說,能過濾所有的web請求,這一點,是攔截器無法做到的。在Java Web中,你傳入request,response提前過濾掉一些資訊,或者提前設定一些參數,然後再傳入servlet或者struts的action進行業務邏輯,比如過濾掉非法url(不是login.do的位址請求,如果使用者沒有登陸都過濾掉),或者在傳入servlet或者struts的action前統一設定字元集,或者去除掉一些非法字元(聊天室經常用到的,一些罵人的話)。filter 流程是線性的,url傳來之後,檢查之後,可保持原來的流程繼續向下執行,被下一個filter, servlet接收。

通勤人員可出京,該緊的時候就要緊

攔截器

java裡的攔截器提供的是非系統級别的攔截,也就是說,就覆寫面來說,攔截器不如過濾器強大,但是更有針對性。Java中的攔截器是基于Java反射機制實作的,更準确的劃分,應該是基于JDK實作的動态代理。它依賴于具體的接口,在運作期間動态生成位元組碼。攔截器是動态攔截Action調用的對象,它提供了一種機制可以使開發者在一個Action執行的前後執行一段代碼,也可以在一個Action執行前阻止其執行,同時也提供了一種可以提取Action中可重用部分代碼的方式。在AOP中,攔截器用于在某個方法或者字段被通路之前,進行攔截然後再之前或者之後加入某些操作。java的攔截器主要是用在插件上,擴充件上比如 Hibernate Spring Struts2等,有點類似面向切片的技術,在用之前先要在配置檔案即xml,檔案裡聲明一段的那個東西。

通勤人員可出京,該緊的時候就要緊

監聽器

Java的監聽器,也是系統級别的監聽。監聽器随web應用的啟動而啟動。Java的監聽器在c/s模式裡面經常用到,它會對特定的事件産生産生一個處理。監聽在很多模式下用到,比如說觀察者模式,就是一個使用監聽器來實作的,在比如統計網站的線上人數。又比如struts2可以用監聽來啟動。Servlet監聽器用于監聽一些重要事件的發生,監聽器對象可以在事情發生前、發生後可以做一些必要的處理。

通勤人員可出京,該緊的時候就要緊

攔截器和過濾器的差別

•攔截器是基于java的反射機制的,而過濾器是基本函數回調。•攔截器不依賴于servlet容器,過濾器依賴于servlet容器•攔截器隻能對action請求起作用,過濾器可以對幾乎所有的請求起作用•攔截器可以通路action上下文、值棧裡的對象,而過濾器不能通路•在action的生命周期中,攔截器可以被多次調用,而過濾器隻能在容器初始化時被調用過一次。

spring攔截器和filter的差別