熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Web編程 >> 正文

攔截器與過濾器的區別以及他們的執行順序?

2022-06-13   來源: Web編程 

過濾器是在java web中你傳入的requestresponse提前過濾掉一些信息或者提前設置一些參數然後再傳入servlet或者struts的 action進行業務邏輯比如過濾掉非法url(不是logindo的地址請求如果用戶沒有登陸都過濾掉)或者在傳入servlet或者 struts的action前統一設置字符集或者去除掉一些非法字符

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

攔截器與過濾器的區別
攔截器是基於java的反射機制的而過濾器是基於函數回調
攔截器不依賴與servlet容器過濾器依賴與servlet容器
攔截器只能對action請求起作用而過濾器則可以對幾乎所有的請求起作用
攔截器可以訪問action上下文值棧裡的對象而過濾器不能訪問
在action的生命周期中攔截器可以多次被調用而過濾器只能在容器初始化時被調用一次

執行順序過濾前 &#; 攔截前 &#; Action處理 &#; 攔截後 &#; 過濾後個人認為過濾是一個橫向的過程首先把客戶端提交的內容進行過濾(例如未登錄用戶不能訪問內部頁面的處理)過濾通過後攔截器將檢查用戶提交數據的驗證做一些前期的數據處理接著把處理後的數據發給對應的ActionAction處理完成返回後攔截器還可以做其他過程(還沒想到要做啥)再向上返回到過濾器的後續操作


From:http://tw.wingwit.com/Article/program/Web/201405/30789.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.