導航:首頁 > 凈水問答 > 過濾器和監聽器執行

過濾器和監聽器執行

發布時間:2021-03-23 01:54:22

① Java中的過濾器、攔截器、監聽器分別是什麼意思

王朝*說的很全面了,翻閱了幾本資料後,從J2EE的角度略作補充吧。
1)首先是攔截器,攔截器是一種面向方面/切面編程(AOP Aspect-Oriented Programming),而面向切面就是將多個模塊的的通用服務進行分離,如許可權管理、日誌服務,他們在多個模塊中都會用到,就可以將其各自封裝為一個可重用模塊。而這些通用服務的具體實現是通過攔截器來完成,比如用戶客戶端訪問一些保密模塊都應先通過許可權審查的攔截器來進行許可權審查,確定用戶是否具有該項操作的許可權後方能向下執行。
2)過濾器,過濾器處於客戶端與Web資源(Servlet、JSP、HTML)之間,客戶端與Web資源之間的請求和響應都要通過過濾器進行過濾。舉例:在過濾器中定義了禁止訪問192.10.10.1這個地址,那麼當客戶端發出訪問192.10.10.1的請求時,經過過濾器後,客戶端得到的響應是出現該IP禁止訪問的提示。再舉個例子,我們J2EE項目中的許可權管理就是通過過濾器實現的,網站有不用身份的用戶(系統管理員、會員級用戶、瀏覽者臨時用戶),不用身份對系統的功能模塊具有不同的訪問許可權,可以將各功能模塊以*.do命名,然後在過濾器中配置過濾*.do,就可以控制不同級別用戶的訪問許可權了
3)監聽器,是針對事件而說的,可以說是事件監聽器,J2EE中事件主要有三類:ServletContext事件、會話事件和請求事件。以ServletContext對象的創建事件為例,利用針對ServletContext對象創建事件的監聽器來監聽,一旦監聽到有ServletContext對象的創建事件(比如項目啟動時的初化),就讀取相應的資料庫連接操作來保存供調用。簡單來說監聽器就是監聽一些對象和屬性等的增加、修改和刪除,一旦監聽到相應事件就會觸發某種活動,做出相應處理。
答案均系在圖書館查閱資料後手敲,不知滿意否,呵呵。

② Servlet、過濾器、監聽器實例化對象的優先順序和銷毀的優先順序

創建: 監聽器-->過濾器-->Servlet.
項目啟動後,容器會首先創建聲明的各種監聽器,為後繼的各個事件監聽做准備,然後創建過濾器,最後是Servlet.

銷毀的時候是反序進行的....

③ java中攔截器、過濾器、監聽器都有什麼區別

1、過濾器,是在java web中,你傳入的request,response提前過濾掉一些信息,或者提前設置一些參數,然回後再傳入servlet或者struts2的。

2、action進行業務邏輯答,比如過濾掉非法url(不是login.do的地址請求,如果用戶沒有登陸都過濾掉),或者在傳入servlet或者struts2的action前統一設置字元集,或者去除掉一些非法字元。

3、攔截器,是在面向切面編程的就是在你的service或者一個方法,前調用一個方法,或者在方法後調用一個方法比如動態代理就是攔截器的簡單實現,在你調用方法前列印出字元串(或者做其它業務邏輯的操作),也可以在你調用方法後列印出字元串,甚至在你拋出異常的時候做業務邏輯的操作。

④ 請分別描述Servlet中監聽器和過濾器的含義,並指出二者之間的區別與聯系。

web開發中會用到,在web.xml中配置監聽和過濾器。在java代碼中實現。
監聽是把滿足監聽條版件的jsp之類的請權求送到監聽服務中去執行,即交給別的代碼託管。可以任意配置*.do,*.jsp。過濾器是排除某些資源的

⑤ spring中怎麼實現過濾器和監聽器

1、延遲載入過濾器

Hibernate 允許對關聯對象、屬性進行延遲載入,但是必須保證延遲載入的操作限於同一個 Hibernate Session 范圍之內進行。如果 Service 層返回一個啟用了延遲載入功能的領域對象給 Web 層,當 Web 層訪問到那些需要延遲載入的數據時,由於載入領域對象的 Hibernate Session 已經關閉,這些導致延遲載入數據的訪問異常。

Spring 為此專門提供了一個 OpenSessionInViewFilter 過濾器,它的主要功能是使每個請求過程綁定一個 Hibernate Session,即使最初的事務已經完成了,也可以在 Web 層進行延遲載入的操作。

<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>*.html</url-pattern>
</filter-mapping>

2、亂碼過濾器

對post亂碼的處理,如下

<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter①Spring編輯過濾器
</filter-class>
<init-param>②編碼方式
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>③強制進行編碼轉換
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>②過濾器的匹配URL
<filter-name>encodingFilter</filter-name>
<url-pattern>*.html</url-pattern>
</filter-mapping>

3、請求跟蹤日誌過濾器

程度調試者可以詳細地查看到有哪些請求被調用,請求的參數是什麼,請求是否正確返回等信息,需要將log4j設為debug

org.springframework.web.filter.: 該過濾器將請求的 URI 記錄到 Common 日誌中


4、WebAppRootListener

可以將 Web 應用根目錄添加到系統參數中,對應的屬性名可以通過名為「webAppRootKey」的 Servlet 上下文參數指定,默認為「webapp.root」,配置如下

<context-param>
<param-name>webAppRootKey</param-name>
<param-value>baobaotao.root</param-value>①Web應用根目錄以該屬性名添加到系統參數中
</context-param>

②負責將Web應用根目錄以webAppRootKey上下文參數指定的屬性名添加到系統參數中
<listener>
<listener-class>
org.springframework.web.util.WebAppRootListener
</listener-class>
</listener>

5、Log4jConfigListener監聽器

包括了 WebAppRootListener 的功能,也就是說,Log4jConfigListener 會自動完成將 Web 應用根目錄以 webAppRootKey 上下文參數指定的屬性名添加到系統參數中,在log4j.xml可以直接使用


6、Introspector 緩存清除監聽器

負責處理由 JavaBean Introspector 功能而引起的緩存泄露。IntrospectorCleanupListener 監聽器在 Web 應用關閉的時會負責清除 JavaBean Introspector 的緩存,在 web.xml 中注冊這個監聽器可以保證在 Web 應用關閉的時候釋放與其相關的 ClassLoader 的緩存和類引用。

⑥ java中攔截器 過濾器 監聽器都有什麼區別尤其是攔截器和過濾器

過濾器,是在java web中,你傳入的request,response提前過濾掉一些信息,或者提前設置一些參數,然後再傳入servlet或者struts2的
action進行業務邏輯,比如過濾掉非法url(不是login.do的地址請求,如果用戶沒有登陸都過濾掉),或者在傳入servlet或者
struts2的action前統一設置字元集,或者去除掉一些非法字元
攔截器,是在面向切面編程的就是在你的service或者一個方法,前調用一個方法,或者在方法後調用一個方法比如動態代理就是攔截器的簡單實現,在你調用方法前列印出字元串(或者做其它業務邏輯的操作),也可以在你調用方法後列印出字元串,甚至在你拋出異常的時候做業務邏輯的操作。

攔截器與過濾器的區別 :
攔截器是基於java的反射機制的,而過濾器是基於函數回調。
攔截器不依賴與servlet容器,過濾器依賴與servlet容器。
攔截器只能對action請求起作用,而過濾器則可以對幾乎所有的請求起作用。
攔截器可以訪問action上下文、值棧里的對象,而過濾器不能訪問。
在action的生命周期中,攔截器可以多次被調用,而過濾器只能在容器初始化時被調用一次
執行順序 :過濾前 - 攔截前 - Action處理 - 攔截後 -
過濾後。個人認為過濾是一個橫向的過程,首先把客戶端提交的內容進行過濾(例如未登錄用戶不能訪問內部頁面的處理);過濾通過後,攔截器將檢查用戶提交數
據的驗證,做一些前期的數據處理,接著把處理後的數據發給對應的Action;Action處理完成返回後,攔截器還可以做其他過程,再向上返回到過濾器的後續操作。

監聽器:這個東西在c/s模式裡面經常用到,他會對特定的事件產生產生一個處理。監聽在很多模式下用到。比如說觀察者模式,就是一個監聽來的。又比如struts2可以用監聽來啟動。Servlet監聽器用於監聽一些重要事件的發生,監聽器對象可以在事情發生前、發生後可以做一些必要的處理。
好比如果說Servlet的監聽器Listener,它是實現了javax.servlet.ServletContextListener
介面的伺服器端程序,它也是隨web應用的啟動而啟動,只初始化一次,隨web應用的停止而銷毀。主要作用是:
做一些初始化的內容添加工作、設置一些基本的內容、比如一些參數或者是一些固定的對象等等。

⑦ Java攔截器 過濾器 監聽器有何區別 都是什麼

暈~不是一回事啊~應用的地方不同~攔截器是在strusts2框架裡面會使用到~攔截請求用的~監聽器大多用於監聽人機交互控制項

⑧ Struts2中過濾器,攔截器,監聽器他們之間有什麼區別

1、攔截器是基於抄java反射機制的,而過濾器是基於函數回調的。
2、過濾器依賴與servlet容器,而攔截器不依賴與servlet容器。
3、攔截器只能對Action請求起作用,而過濾器則可以對幾乎所有請求起作用。
4、攔截器可以訪問Action上下文、值棧里的對象,而過濾器不能。

5、在Action的生命周期中,攔截器可以多次調用,而過濾器只能在容器初始化時被調用一次。

⑨ listener和filter的區別

Filter是過濾器,過濾一些你不想要的東西,
Listener是Servlet的監聽器,可以監聽客戶端的請求、服務端的操作等。
通過監聽器,可以自動激發一些操作。
Filter可以實現對請求的過濾和重定向等,也就是說可以操作request和response,session等對象,listner只能監聽到以上對象的屬性的修改。
是struts的核心控制器,負責攔截所有用戶請求。
listener是監聽器,通常都是監聽並載入一些插件用的,比如spring。log4j等

閱讀全文

與過濾器和監聽器執行相關的資料

熱點內容
液相用溶劑過濾器 瀏覽:674
納濾水導電率 瀏覽:128
反滲透每小時2噸 瀏覽:162
做一個純凈水工廠需要多少錢 瀏覽:381
最終幻想4回憶技能有什麼用 瀏覽:487
污水提升器采通 瀏覽:397
反滲透和不發滲透凈水器有什麼區別 瀏覽:757
提升泵的揚程 瀏覽:294
澤德提升泵合肥經銷商 瀏覽:929
飲水機後蓋漏水了怎麼辦 瀏覽:953
小型電動提升器 瀏覽:246
半透膜和細胞膜區別 瀏覽:187
廢水拖把池 瀏覽:859
十四五期間城鎮污水處理如何提質增效 瀏覽:915
怎麼測試空氣凈化器的好壞 瀏覽:519
提升泵是幹嘛的 瀏覽:744
布油做蒸餾起沫咋辦 瀏覽:252
廣州工業油煙凈化器一般多少錢 瀏覽:204
喜哆哆空氣凈化器效果怎麼樣 瀏覽:424
油煙凈化器油盒在什麼位置 瀏覽:582