servlet監聽器過濾器
① 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對象的創建事件(比如項目啟動時的初化),就讀取相應的資料庫連接操作來保存供調用。簡單來說監聽器就是監聽一些對象和屬性等的增加、修改和刪除,一旦監聽到相應事件就會觸發某種活動,做出相應處理。
答案均系在圖書館查閱資料後手敲,不知滿意否,呵呵。
② java中servlet,filter,listener為什麼優先順序listener>filter>servlet,面試時候怎麼回答
個人感覺哈,我也是新手一枚。
listener是監聽本servlet的,那麼既然是監聽,那麼應該是可以第一時間響專應servlet,所屬以它第一個。
而filter是過濾,這個過濾樓主應該也學過怎麼用,那麼就是在跳轉servlet之前他需要過濾一遍,servlet返回的時候還是得從它的類走一遍,所以它優先順序比servlet也是要高的。
而上面兩個都排除了,就只剩下servlet了,SO,不用我講了吧?
以上內容純屬個人瞎掰,懇請了解的大大給予更精準的正確的回答。
③ Struts2中過濾器,攔截器,監聽器他們之間有什麼區別
1、攔截器是基於java反射機制的,而過濾器是基於函數回調的。
2、過濾器依賴與回servlet容器,而攔截答器不依賴與servlet容器。
3、攔截器只能對Action請求起作用,而過濾器則可以對幾乎所有請求起作用。
4、攔截器可以訪問Action上下文、值棧里的對象,而過濾器不能。
5、在Action的生命周期中,攔截器可以多次調用,而過濾器只能在容器初始化時被調用一次。
④ 編寫servle過濾器時,下面哪個介面用於調用過濾器鏈中的下一個過濾器
監聽抄器介面ServletAPI中定義了8個監聽器,根據監聽對象的類型和范圍可以分為3類:ServletContext事件監聽器、HTTPSession事件監聽器和ServletRequest事件監聽器。8個監聽器介面如表13-2所示。13.2.2ServletContextListener介面在Web應用程
⑤ java中攔截器、過濾器、監聽器都有什麼區別
1、過濾器,是在java web中,你傳入的request,response提前過濾掉一些信息,或者提前設置一些參數專,然後再傳入屬servlet或者struts2的。
2、action進行業務邏輯,比如過濾掉非法url(不是login.do的地址請求,如果用戶沒有登陸都過濾掉),或者在傳入servlet或者struts2的action前統一設置字元集,或者去除掉一些非法字元。
3、攔截器,是在面向切面編程的就是在你的service或者一個方法,前調用一個方法,或者在方法後調用一個方法比如動態代理就是攔截器的簡單實現,在你調用方法前列印出字元串(或者做其它業務邏輯的操作),也可以在你調用方法後列印出字元串,甚至在你拋出異常的時候做業務邏輯的操作。
⑥ Servlet、過濾器、監聽器實例化對象的優先順序和銷毀的優先順序
創建: 監聽器-->過濾器-->Servlet.
項目啟動後,容器會首先創建聲明的各種監聽器,為後繼的各個事件監聽做准備,然後創建過濾器,最後是Servlet.
銷毀的時候是反序進行的....
⑦ 請分別描述Servlet中監聽器和過濾器的含義,並指出二者之間的區別與聯系。
web開發中會用抄到,在web.xml中配置監聽和過濾器。在java代碼中實現。
監聽是把滿足監聽條件的jsp之類的請求送到監聽服務中去執行,即交給別的代碼託管。可以任意配置*.do,*.jsp。過濾器是排除某些資源的
⑧ Web容器中Servlet,listener和filter有什麼區別以及作用
servlet:小服務,處理request和response,是核心;
listener:監聽器,主要用於監聽事件,如容器啟動,小服版務裝載,會話事件之類的;權
filter:過濾器,可以在請求到達實際URI之前攔截,並作出修改;同時可以在response返回客戶端之前攔截處理。
⑨ 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語言中攔截器、過濾器、監聽器都是什麼意思
過濾器,是在java web中,你傳入的,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應用的停止而銷毀。主要作用是:
做一些初始化的內容添加工作、設置一些基本的內容、比如一些參數或者是一些固定的對象等等。