日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Servlet中的八大Listener

/Servlet 中的事件處理寫過AWT或Swing程序的人一定對桌面程序的事件處理機(jī)制印象深刻:通過實(shí)現(xiàn)Listener接口的類可以在特定事件(Event)發(fā)生時(shí),呼叫特定的方法來對事件進(jìn)行響應(yīng)。

其實(shí)我們在編寫JSP/Servle程序時(shí),也有類似的事件處理機(jī)制,所不同的是在JSP/Servlet中是在web.xml中注冊Listener,由Container在特定事件發(fā)生時(shí)呼叫特定的實(shí)現(xiàn)Listener的類。

1. Servlet中的Listener和Event:

在JSP 2.0/Servlet 2.4中,共有八個(gè)Listener接口,六個(gè)Event類別。

l ServletContextListener

[接口方法] contextInitialized()與 contextDestroyed()

[接收事件] ServletContextEvent

[觸發(fā)場景] 在Container加載Web應(yīng)用程序時(shí)(例如啟動 Container之后),會呼叫contextInitialized(),而當(dāng)容器移除Web應(yīng)用程序時(shí),會呼叫contextDestroyed ()方法。

l ServletContextAttributeListener

[接口方法] attributeAdded()、 attributeReplaced()、attributeRemoved()

[接收事件] ServletContextAttributeEvent

[觸發(fā)場景] 若有對象加入為application(ServletContext)對象的屬性,則會呼叫attributeAdded(),同理在置換屬性與移除屬性時(shí),會分別呼叫attributeReplaced()、attributeRemoved()。

l HttpSessionListener

[接口方法] sessionCreated()與sessionDestroyed ()

[接收事件] HttpSessionEvent

[觸發(fā)場景] 在session(HttpSession)對象建立或被消滅時(shí),會分別呼叫這兩個(gè)方法。

l HttpSessionAttributeListener

[接口方法] attributeAdded()、 attributeReplaced()、attributeRemoved()

[接收事件] HttpSessionBindingEvent

[觸發(fā)場景] 若有對象加入為session(HttpSession)對象的屬性,則會呼叫attributeAdded(),同理在置換屬性與移除屬性時(shí),會分別呼叫attributeReplaced()、 attributeRemoved()。

l ServletRequestListener

[接口方法] requestInitialized()與 requestDestroyed()

[接收事件] RequestEvent

[觸發(fā)場景] 在request(HttpServletRequest)對象建立或被消滅時(shí),會分別呼叫這兩個(gè)方法。

l ServletRequestAttributeListener

[接口方法] attributeAdded()、 attributeReplaced()、attributeRemoved()

[接收事件] HttpSessionBindingEvent

[觸發(fā)場景] 若有對象加入為request(HttpServletRequest)對象的屬性,則會呼叫attributeAdded(),同理在置換屬性與移除屬性時(shí),會分別呼叫attributeReplaced()、 attributeRemoved()。

l HttpSessionBindingListener

[接口方法] valueBound()與valueUnbound()

[接收事件] HttpSessionBindingEvent

[觸發(fā)場景] 實(shí)現(xiàn)HttpSessionBindingListener接口的類別,其實(shí)例如果被加入至session(HttpSession)對象的屬性中,則會呼叫 valueBound(),如果被從session(HttpSession)對象的屬性中移除,則會呼叫valueUnbound(),實(shí)現(xiàn)HttpSessionBindingListener接口的類別不需在web.xml中設(shè)定。

l HttpSessionActivationListener

[接口方法] sessionDidActivate()與 sessionWillPassivate()

[接收事件] HttpSessionEvent

[觸發(fā)場景] Activate與Passivate是用于置換對象的動作,當(dāng)session對象為了資源利用或負(fù)載平衡等原因而必須暫時(shí)儲存至硬盤或其它儲存器時(shí)(透過對象序列化),所作的動作稱之為Passivate,而硬盤或儲存器上的session對象重新加載JVM時(shí)所采的動作稱之為Activate,所以容易理解的,sessionDidActivate()與 sessionWillPassivate()分別于Activeate后與將Passivate前呼叫。

2. 注冊監(jiān)聽器

除了HttpSessionBindingListener和HttpSessionActivationListener外,必須在web.xml中向容器注冊,容器才會在對應(yīng)的事件發(fā)生時(shí)呼叫對應(yīng)的類別,如:

 
 
 
  1.  
  2.  
  3.  
  4.  
  5. demo.servlet.listener.CustomServletContextListener  
  6.  
  7. listener-class> 
  8.  
  9. listener> 
  10.  

【編輯推薦】

  1. J2ME手機(jī)RSS閱讀器通過NetBeans 4.0也可創(chuàng)建
  2. 深入探究cookie技術(shù)在J2ME平臺的應(yīng)用與實(shí)現(xiàn)
  3. 探究J2ME中cookie庫的管理
  4. MotorolaJ2ME開發(fā)時(shí)需要注意的幾個(gè)細(xì)節(jié)
  5. Java2平臺J2SE、J2EE、J2ME三大版本的區(qū)別

新聞標(biāo)題:Servlet中的八大Listener
當(dāng)前路徑:http://www.5511xx.com/article/djhssop.html