java 監聽器

最開始理解java監聽器的時候我有這些疑問!

java監聽器監聽的內容是什麼?監聽器作用在哪個事件上?是在哪配置的監聽內容的?

就帶着這些問題理解一下java監聽器吧!

首先,監聽器要怎麼實現?
Java事件由事件類和監聽接口組成,自定義一個事件前,必須提供一個事件的監聽接口以及一個事件類。JAVA中監聽接口是繼承java.util.EventListener的類,事件類繼承java.util.EventObject的類。很多基本的事件系統已經爲我們定義好了,我們只要學會調用即可,但是爲了更加靈活地滿足特定的需求,我們有時候也需要自定義事件。


監聽器的實質是什麼?
一個類實現某個監聽器接口,然後實現接口對應的方法,達到監聽具體事項的動作。

監聽器的接口有哪些?

監聽器接口分三類:ServletContext,HttpSession,ServletRequest。


ServletContext
----ServletContextListener監聽ServletContext對象
----ServletContextAttributeListener監聽對ServletContext屬性的操作,比如說增加,刪除,修改


HttpSession
----HttpSessionListener監聽Session對象
----HttpSessionAttributeListener監聽Session的屬性操作
----HttpSessionActivationListener監聽HTTP會話的active和passivate情況,passivate是指非活動的session被寫入持久設備(如硬盤),active相反。
----HttpSessionBindingListener監聽器感知Session綁定的事件監聽器

Servlet 規範中定義了兩個特殊的監聽器接口"HttpSessionBindingListener和HttpSessionActivationListener"來幫助JavaBean
對象瞭解自己在Session域中的這些狀態: ,實現這兩個接口的類不需要 web.xml 文件中進行註冊。

ServletRequest
----ServletRequestListener監聽Requst對象
----ServletRequestAttributeListener監聽Request中的屬性操作。

怎麼知道我到底要實現哪個監聽器?
看需求,看要監聽的東西是什麼,比如說監聽上下文的有:ServletContextListener,ServletContextAttributeListener
監聽request的有:ServletRequestListener,ServletRequestAttributeListener


監聽器是怎樣被調用的?爲什麼直接在web.xml裏面配置一個listerner,程序就會自動去監聽?
因爲監聽器是需要實現監聽器接口的,接口的底層應該是封裝好了怎樣去監聽的邏輯的,所以說直接實現監聽器接口,程序啓動後就能直接去監聽。

監聽器在web.xml的配置:

監聽器的實現:

 

 

本文參考自:https://blog.csdn.net/menghuanzhiming/article/details/79042182

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章