day22支付鞏固知識之項目整合servlet監(jiān)聽器_第1頁
day22支付鞏固知識之項目整合servlet監(jiān)聽器_第2頁
day22支付鞏固知識之項目整合servlet監(jiān)聽器_第3頁
day22支付鞏固知識之項目整合servlet監(jiān)聽器_第4頁
day22支付鞏固知識之項目整合servlet監(jiān)聽器_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、北京傳智播客教育 Servlet事件監(jiān)聽器北京傳智播客教育 監(jiān)聽器監(jiān)聽器就是一個實現(xiàn)特定接口的普通java程序,這個程序?qū)iT用于監(jiān)聽另一個java對象的方法調(diào)用或?qū)傩愿淖?,當被監(jiān)聽對象發(fā)生上述事件后,監(jiān)聽器某個方法將立即被執(zhí)行。被監(jiān)聽對象(俗稱 事件源)開發(fā)人員編寫的監(jiān)聽器對象void doxx(Event e)事件對象Event(封裝事件源和動作)注冊監(jiān)聽器(即在事件源上關(guān)聯(lián)監(jiān)聽器對象)監(jiān)聽器典型案例:監(jiān)聽window窗口的事件監(jiān)聽器調(diào)用監(jiān)聽器對象處理相應的操作處理操作操作事件源北京傳智播客教育 Servlet監(jiān)聽器在Servlet規(guī)范中定義了多種類型的監(jiān)聽器,它們用于監(jiān)聽的事件源分別為 S

2、ervletContext, HttpSession 和 ServletRequest 這三個域?qū)ο?。Servlet規(guī)范針對這三個對象上的操作,又把這多種類型的監(jiān)聽器劃分為三種類型。監(jiān)聽三個域?qū)ο髣?chuàng)建和銷毀的事件監(jiān)聽器監(jiān)聽域?qū)ο笾袑傩缘脑黾雍蛣h除的事件監(jiān)聽器監(jiān)聽綁定到 HttpSession 域中的某個對象的狀態(tài)的事件監(jiān)聽器。(查看API文檔)北京傳智播客教育 監(jiān)聽servletContext域?qū)ο髣?chuàng)建和銷毀ServletContextListener 接口用于監(jiān)聽 ServletContext 對象的創(chuàng)建和銷毀事件。當 ServletContext 對象被創(chuàng)建時,觸發(fā)contextIniti

3、alized (ServletContextEvent sce)方法當 ServletContext 對象被銷毀時,觸發(fā)contextDestroyed(ServletContextEvent sce)方法。提問,servletContext域?qū)ο蠛螘r創(chuàng)建和銷毀:創(chuàng)建:服務器啟動針對每一個web應用創(chuàng)建servletcontext銷毀:服務器關(guān)閉前先關(guān)閉代表每一個web應用的servletContext北京傳智播客教育 編寫 Servlet 監(jiān)聽器和編寫其它事件監(jiān)聽器一樣,編寫servlet監(jiān)聽器也需要實現(xiàn)一個特定的接口,并針對相應動作覆蓋接口中的相應方法。和其它事件監(jiān)聽器略有不同的是,ser

4、vlet監(jiān)聽器的注冊不是直接注冊在事件源上,而是由WEB容器負責注冊,開發(fā)人員只需在web.xml文件中使用標簽配置好監(jiān)聽器,web容器就會自動把監(jiān)聽器注冊到事件源中。一個 web.xml 文件中可以配置多個 Servlet 事件監(jiān)聽器,web 服務器按照它們在 web.xml 文件中的注冊順序來加載和注冊這些 Serlvet 事件監(jiān)聽器。北京傳智播客教育 監(jiān)聽HttpSession域?qū)ο髣?chuàng)建和銷毀HttpSessionListener接口用于監(jiān)聽HttpSession的創(chuàng)建和銷毀創(chuàng)建一個Session時,sessionCreated(HttpSessionEvent se) 方法將會被調(diào)用。

5、銷毀一個Session時,sessionDestroyed (HttpSessionEvent se) 方法將會被調(diào)用。(此處復習session對象,寫多個servlet都去getSession,看session的創(chuàng)建)Session域?qū)ο髣?chuàng)建和銷毀的時機創(chuàng)建:用戶每一次訪問時,服務器創(chuàng)建session銷毀:如果用戶的session 30分鐘沒有使用,服務器就會銷毀session,我們在web.xml里面也可以配置session失效時間北京傳智播客教育 監(jiān)聽HttpRequest域?qū)ο髣?chuàng)建和銷毀ServletRequestListener 接口用于監(jiān)聽ServletRequest 對象的創(chuàng)建和

6、銷毀。Request 對象被創(chuàng)建時,監(jiān)聽器的requestInitialized方法將會被調(diào)用。Request對象被銷毀時,監(jiān)聽器的requestDestroyed方法將會被調(diào)用。(此處復習request對象,在瀏覽器窗口中多次刷新訪問servlet,看request對象的創(chuàng)建和銷毀,并寫一個servlet,然后用sendRedirect、forward方式跳轉(zhuǎn)到其它servlet,查看request對象的創(chuàng)建和消耗)servletRequest域?qū)ο髣?chuàng)建和銷毀的時機:創(chuàng)建:用戶每一次訪問,都會創(chuàng)建一個reqeust銷毀:當前訪問結(jié)束,request對象就會銷毀北京傳智播客教育 監(jiān)聽三個域?qū)ο?/p>

7、屬性變化Servlet規(guī)范定義了監(jiān)聽 ServletContext, HttpSession, HttpServletRequest 這三個對象中的屬性變更信息事件的監(jiān)聽器。這三個監(jiān)聽器接口分別是ServletContextAttributeListener, HttpSessionAttributeListener ServletRequestAttributeListener這三個接口中都定義了三個方法來處理被監(jiān)聽對象中的屬性的增加,刪除和替換的事件,同一個事件在這三個接口中對應的方法名稱完全相同,只是接受的參數(shù)類型不同。 北京傳智播客教育 attributeAdded 方法當向被監(jiān)聽器對

8、象中增加一個屬性時,web容器就調(diào)用事件監(jiān)聽器的 attributeAdded 方法進行相應,這個方法接受一個事件類型的參數(shù),監(jiān)聽器可以通過這個參數(shù)來獲得正在增加屬性的域?qū)ο蠛捅槐4娴接蛑械膶傩詫ο蟾鱾€域?qū)傩员O(jiān)聽器中的完整語法定義為:public void attributeAdded(ServletContextAttributeEvent scae) public void attributeAdded (HttpSessionBindingEvent hsbe) public void attributeAdded(ServletRequestAttributeEvent srae)北京

9、傳智播客教育 attributeRemoved 方法當刪除被監(jiān)聽對象中的一個屬性時,web 容器調(diào)用事件監(jiān)聽器的這個方法進行相應各個域?qū)傩员O(jiān)聽器中的完整語法定義為:public void attributeRemoved(ServletContextAttributeEvent scae) public void attributeRemoved (HttpSessionBindingEvent hsbe) public void attributeRemoved (ServletRequestAttributeEvent srae)北京傳智播客教育 attributeReplaced 方法當

10、監(jiān)聽器的域?qū)ο笾械哪硞€屬性被替換時,web容器調(diào)用事件監(jiān)聽器的這個方法進行相應各個域?qū)傩员O(jiān)聽器中的完整語法定義為:public void attributeReplaced(ServletContextAttributeEvent scae) public void attributeReplaced (HttpSessionBindingEvent hsbe) public void attributeReplaced (ServletRequestAttributeEvent srae)北京傳智播客教育 感知 Session 綁定的事件監(jiān)聽器保存在 Session 域中的對象可以有多種狀態(tài)

11、:綁定到 Session 中;從 Session 域中解除綁定;隨 Session 對象持久化到一個存儲設(shè)備中(鈍化);隨 Session 對象從一個存儲設(shè)備中恢復(活化)Servlet 規(guī)范中定義了兩個特殊的監(jiān)聽器接口來幫助 JavaBean 對象了解自己在 Session 域中的這些狀態(tài):HttpSessionBindingListener接口和HttpSessionActivationListener接口 ,實現(xiàn)這兩個接口的類不需要 web.xml 文件中進行注冊北京傳智播客教育 HttpSessionBindingListener接口實現(xiàn)了HttpSessionBindingListe

12、ner接口的 JavaBean 對象可以感知自己被綁定到 Session 中和從 Session 中刪除的事件當對象被綁定到 HttpSession 對象中時,web 服務器調(diào)用該對象的 void valueBound(HttpSessionBindingEvent event) 方法當對象從 HttpSession 對象中解除綁定時,web 服務器調(diào)用該對象的 void valueUnbound(HttpSessionBindingEvent event)方法北京傳智播客教育 HttpSessionActivationListener接口實現(xiàn)了HttpSessionActivationListener接口的 JavaBean 對象可以感知自己被活化和鈍化的事件當綁定到 HttpSession 對象中的對象將要隨 HttpSessi

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論