更新時間:2020-12-18 來源:黑馬程序員 瀏覽量:
在程序開發(fā)中,經(jīng)常需要對某些事件進行監(jiān)聽,如監(jiān)聽鼠標點擊事件、監(jiān)聽鍵盤按下事件等,此時就需要使用事件監(jiān)聽器,事件監(jiān)聽器用于對程序中發(fā)生的事件進行監(jiān)聽,在監(jiān)聽的過程中會涉及幾個重要組成部分,具體如下:
● 事件(Event):用戶的一個操作,如點擊一個按鈕、調用一個方法、創(chuàng)建一個對象等。
● 事件源:產生事件的對象。
● 事件監(jiān)聽器(Listener):負責監(jiān)聽發(fā)生在事件源上的事件。
● 事件處理器:監(jiān)聽器的成員方法,當事件發(fā)生的時候會觸發(fā)對應的處理器(成員方法)。
當用戶進行一個操作觸發(fā)事件源上的事件時,就會被事件監(jiān)聽器監(jiān)聽到,當監(jiān)聽器監(jiān)聽到事件發(fā)生時,相應的事件處理器就會對發(fā)生的事件進行處理。
事件監(jiān)聽器在進行工作時,可分為幾個步驟,具體如下:
(1)將監(jiān)聽器綁定到事件源,也就是注冊監(jiān)聽器。
(2)事件發(fā)生時會觸發(fā)監(jiān)聽器的成員方法,即事件處理器,傳遞事件對象。
(3)事件處理器通過事件對象獲得事件源,并對事件源進行處理。
在開發(fā)Web應用程序時,也經(jīng)常會使用事件監(jiān)聽器,這個事件監(jiān)聽器被稱為Servlet事件監(jiān)聽器,Servlet事件監(jiān)聽器就是一個實現(xiàn)特定接口的Java程序,專門用于監(jiān)聽Web應用程序中ServletContext、HttpSession和ServletRequest等域對象的創(chuàng)建和銷毀過程,監(jiān)聽這些域對象屬性的修改以及感知綁定到HttpSession域中某個對象的狀態(tài)。根據(jù)監(jiān)聽事件的不同可以將其分為三類,具體如下:
● 用于監(jiān)聽域對象創(chuàng)建和銷毀的事件監(jiān)聽器(ServletContextListener接口、HttpSessionListener接口、ServletRequestListener接口)。
● 用于監(jiān)聽域對象屬性增加和刪除的事件監(jiān)聽器(ServletContextAttributeListener接口、HttpSessionAttributeListener接口、ServletRequestAttributeListener接口)。
● 用于監(jiān)聽綁定到HttpSession域中某個對象狀態(tài)的事件監(jiān)聽器(HttpSessionBindingListener接口、HttpSessionActivationListener接口)。
在Servlet規(guī)范中,這三類事件監(jiān)聽器都定義了相應的接口,在編寫事件監(jiān)聽器程序時只需實現(xiàn)對應的接口就可以。Web服務器會根據(jù)監(jiān)聽器所實現(xiàn)的接口,把它注冊到被監(jiān)聽的對象上,當觸發(fā)了某個對象的監(jiān)聽事件時,Web容器將會調用Servlet監(jiān)聽器與之相關的方法對事件進行處理。
猜你喜歡:
Java的 io設計模式視頻教程
【AI設計】北京143期畢業(yè)僅36天,全員拿下高薪offer!黑馬AI設計連續(xù)6期100%高薪就業(yè)
2025-09-19【跨境電商運營】深圳跨境電商運營畢業(yè)22個工作日,就業(yè)率91%+,最高薪資達13500元
2025-09-19【AI運維】鄭州運維1期就業(yè)班,畢業(yè)14個工作日,班級93%同學已拿到Offer, 一線均薪資 1W+
2025-09-19【AI鴻蒙開發(fā)】上海校區(qū)AI鴻蒙開發(fā)4期5期,距離畢業(yè)21天,就業(yè)率91%,平均薪資14046元
2025-09-19【AI大模型開發(fā)-Python】畢業(yè)33個工作日,就業(yè)率已達到94.55%,班均薪資20763元
2025-09-19【AI智能應用開發(fā)-Java】畢業(yè)5個工作日就業(yè)率98.18%,最高薪資 17.5k*13薪,全班平均薪資9244元
2025-09-19