首頁(yè)常見問題正文

監(jiān)聽對(duì)象屬性變更的接口

更新時(shí)間:2024-01-16 來(lái)源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

  在程序開發(fā)中,不僅需要對(duì)域?qū)ο筮M(jìn)行監(jiān)聽,有時(shí)候還需要對(duì)某個(gè)域?qū)ο髮傩缘淖兏M(jìn)行監(jiān)聽,為了完成這樣的功能,Servlet API專門提供了ServletContextAttributeListener、HttpSessionAttributeListener接口,這三個(gè)接口都定義了相同名稱的方法,分別用于處理被監(jiān)聽對(duì)象屬性的增加、刪除和替換,接下來(lái)針對(duì)這三個(gè)接口中的方法進(jìn)行講解。

1705376022428_監(jiān)聽對(duì)象屬性變更的接口.jpg

  1.attributeAdded()方法

  當(dāng)向被監(jiān)聽的域?qū)ο笾性黾右粋€(gè)屬性時(shí),Web容器就調(diào)用事件監(jiān)聽器的attributeAdded()方法進(jìn)行響應(yīng),該方法接收一個(gè)事件類型的參數(shù),監(jiān)聽器可以通過這個(gè)參數(shù)來(lái)獲取正在增加屬性的域?qū)ο蠛捅槐4娴接蛑械膶傩詫?duì)象。這個(gè)方法在各個(gè)域?qū)傩员O(jiān)聽器中的完整語(yǔ)法定義如下。

public void attributeAdded(ServletContextAttributeEvent scab)

  上述是ServletContextAttributeListener接口中定義的方法,當(dāng)向ServletContext對(duì)象中增加一個(gè)屬性時(shí),Web容器就調(diào)用這個(gè)方法并傳遞一個(gè)ServletContextEvent類型的參數(shù)。

public void attributeAdded(HttpSessionBindindEvent se)

  上述是HttpSessionAttributeListener接口中定義的方法,當(dāng)向HttpSession對(duì)象中增加一個(gè)屬性時(shí),Web容器就調(diào)用這個(gè)方法并傳遞一個(gè)HttpSessionBindindEvent類型的參數(shù)。

public void attributeAdded(ServletRequestAttributeEvent srae)

  2.attributeRemoved()方法

  當(dāng)刪除被監(jiān)聽對(duì)象中的一個(gè)屬性時(shí),Web容器調(diào)用事件監(jiān)聽器的attributeRemoved()方法進(jìn)行響應(yīng)。這個(gè)方法在各個(gè)域?qū)傩员O(jiān)聽器中的完整語(yǔ)法定義如下。

public void attributeRemoved(ServletContextAttributeEvent scab)
public void attributeRemoved(HttpSessionBindindEvent se)
public void attributeRemoved(ServletRequestAttributeEvent srae)

  這些方法接收的參數(shù)類型與上面講解的attributeAdded()方法一樣,監(jiān)聽器可以通過這個(gè)參數(shù)來(lái)獲取正在刪除屬性的域?qū)ο蟆?/p>

  3.attributeReplaced()方法

  當(dāng)被監(jiān)聽器的域?qū)ο笾械哪硞€(gè)屬性被替換時(shí),Web容器會(huì)調(diào)用事件監(jiān)聽器的attributereplaced()方法進(jìn)行響應(yīng)。這個(gè)方法在各個(gè)域?qū)傩员O(jiān)聽器中的完整語(yǔ)法定義如下。

public void attributeReplaced(ServletContextAttributeEvent scab)
public void attributeReplaced(HttpSessionBindindEvent se)
public void attributeReplaced(ServletRequestAttributeEvent srae)

  這些方法接收的參數(shù)類型與上面講解的attributeAdded()方法一樣,監(jiān)聽器可以通過這個(gè)參數(shù)來(lái)獲取正在替換屬性的域?qū)ο蟆?/p>

  本文版權(quán)歸黑馬程序員Java培訓(xùn)學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明作者出處。謝謝!

  作者:黑馬程序員Java培訓(xùn)學(xué)院

  首發(fā):https://java.itheima.com

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!