更新時間:2024-01-16 來源:黑馬程序員 瀏覽量:
在程序開發中,不僅需要對域對象進行監聽,有時候還需要對某個域對象屬性的變更進行監聽,為了完成這樣的功能,Servlet API專門提供了ServletContextAttributeListener、HttpSessionAttributeListener接口,這三個接口都定義了相同名稱的方法,分別用于處理被監聽對象屬性的增加、刪除和替換,接下來針對這三個接口中的方法進行講解。
當向被監聽的域對象中增加一個屬性時,Web容器就調用事件監聽器的attributeAdded()方法進行響應,該方法接收一個事件類型的參數,監聽器可以通過這個參數來獲取正在增加屬性的域對象和被保存到域中的屬性對象。這個方法在各個域屬性監聽器中的完整語法定義如下。
public void attributeAdded(ServletContextAttributeEvent scab)
上述是ServletContextAttributeListener接口中定義的方法,當向ServletContext對象中增加一個屬性時,Web容器就調用這個方法并傳遞一個ServletContextEvent類型的參數。
public void attributeAdded(HttpSessionBindindEvent se)
上述是HttpSessionAttributeListener接口中定義的方法,當向HttpSession對象中增加一個屬性時,Web容器就調用這個方法并傳遞一個HttpSessionBindindEvent類型的參數。
public void attributeAdded(ServletRequestAttributeEvent srae)
當刪除被監聽對象中的一個屬性時,Web容器調用事件監聽器的attributeRemoved()方法進行響應。這個方法在各個域屬性監聽器中的完整語法定義如下。
public void attributeRemoved(ServletContextAttributeEvent scab) public void attributeRemoved(HttpSessionBindindEvent se) public void attributeRemoved(ServletRequestAttributeEvent srae)
這些方法接收的參數類型與上面講解的attributeAdded()方法一樣,監聽器可以通過這個參數來獲取正在刪除屬性的域對象。
當被監聽器的域對象中的某個屬性被替換時,Web容器會調用事件監聽器的attributereplaced()方法進行響應。這個方法在各個域屬性監聽器中的完整語法定義如下。
public void attributeReplaced(ServletContextAttributeEvent scab) public void attributeReplaced(HttpSessionBindindEvent se) public void attributeReplaced(ServletRequestAttributeEvent srae)
這些方法接收的參數類型與上面講解的attributeAdded()方法一樣,監聽器可以通過這個參數來獲取正在替換屬性的域對象。
本文版權歸黑馬程序員Java培訓學院所有,歡迎轉載,轉載請注明作者出處。謝謝!
作者:黑馬程序員Java培訓學院