攔截器和過濾器監聽器的區別執行順序
一:攔截器 :是在面向切面編程的就是在你的service或者一個方法,前調用一個方法,或者在方法後調用一個方法比如動態代理就是攔截器的簡單實現,springmvc的aop中的前置通知和後置通知。
二: 過濾器:是在java web中,你傳入的request,response提前過濾掉一些信息,或者提前設置一些參數,
然後再傳入servlet或者struts的 action進行業務邏輯,比如過濾掉非法url(不是login.do的地址請求,如果用戶沒有登陸都過濾掉),
或者在傳入servlet或者struts的action前統一設置字符集,或者去除掉一些非法字元。主要為了減輕伺服器負載,減少壓力
攔截器和過濾器的區別
1、攔截器是基於java的反射機制的,而過濾器是基於函數回調
2、過濾器依賴與servlet容器,而攔截器不依賴與servlet容器
3、攔截器只能對action請求起作用,而過濾器則可以對幾乎所有的請求起作用
4、攔截器可以訪問action上下文、值棧里的對象,而過濾器不能
5、在action的生命周期中,攔截器可以多次被調用,而過濾器只能在容器初始化時被調用一次
在action的生命周期中,攔截器可以多次被調用,而過濾器只能在容器初始化時被調用一次
執行順序 :過濾前 - 攔截前 - Action處理 - 攔截後 - 過濾後。
個人認為過濾是一個橫向的過程,首先把客戶端提交的內容進行過濾(例如未登錄用戶不能訪問內部頁面的處理);
過濾通過後,攔截器將檢查用戶提交數據的驗證,做一些前期的數據處理,接著把處理後的數據發給對應的Action;
Action處理完成返回後,攔截器還可以做其他過程,再向上返回到過濾器的後續操作。
三:監聽器:Servlet的監聽器Listener,它是實現了javax.servlet.ServletContextListener
介面的伺服器端程序,它也是隨web應用的啟動而啟動,只初始化一次,隨web應用的停止而銷毀。
主要作用是:做一些初始化的內容添加工作、設置一些基本的內容、比如一些參數或者是一些固定的對象等等。
作者: 性情中人1993
原文:https://blog.csdn.net/qq_38765404/article/details/78658585
打開今日頭條,查看更多圖片
※js把屬性具有父子關係的json文件轉變成json樹
※定製Spring和Hibernate系統的審計Audit日誌
TAG:程序員小新人學習 |