Servlet事件監聽器

Servlet事件監聽器
         今天學了Servlet事件監聽器,張老師對每個知識研究都非常詳細,讓人學起來容易理解,效果自然就好,先大概的說一下Servlet事件監聽器吧。
監聽器是專門用於對其他對象身上發生的事件或狀態改變進行監視和響應處理對象。Servlet事件監聽器是Servlet規範中定義的一種特殊的類,它用於監聽Web應用程序中的ServletContext,HttpSession,和ServletRequest等域對象的創建和銷燬事件,以及監聽這些域對象發生修改的事件。這是非常有用的,例如網站的在線人數統計,當一個新用戶進入本網站時,就發生了一個HttpSession對象被創建的事件,在事件處理程序中將當前在線統計人數加1,當一個用戶離開本網站時,就發生了一個HttpSession對象被銷燬的事件,在事件處理程序中將當前在線統計人數減1,這樣就實現了網站的在線人數統計。
  Servlet規範中定義了3種事件監聽器:
     1,用於監聽web應用程序對象(ServletContext)的事件監聽器。
      2.用於監聽用戶會話對象(HttpSession)的事件監聽器。
     3. 用於監聽請求消息對象(ServletRequest)的事件監聽器。
還可以按照監聽的事件類型進行劃分
    1.監聽域對象自身的創建和銷燬的事件監聽器。
    2.監聽域對象中屬性的增加和刪除的事件監聽器。
    3.監聽綁定到域的某個對象的狀態的事件監聽器
在Servlet規範中爲每種事件監聽器都定義了相應的接口,在編寫Servlet事件監聽器的程序時,只需實現這些接口就可以了,web服務器根據用戶編寫的事件監聽器所實現的接口,把它註冊到響應的被監聽對象上。其中一些Servlet事件監聽器需要在web應用程序的部署描述文件中(web.xml)中進行註冊,一個web.xml文件可以註冊多個Servlet事件監聽器,Web服務器按照他們在web.xml文件中的註冊順序來加載和註冊這些Servlet事件監聽器。Servlet事件監聽器的註冊和調用過程都是有web容器自動完成的,被監聽的對象被創建,修改和銷燬時,web容器將調用與之相關的Servlet事件監聽器對象的相應方法。在這些方法中編寫的事件處理代碼即被執行。實際應用中有可能出現多個線程同時調用同一個事件監聽器對象的情況,在編寫事件監聽器類時,要考慮多線程安全的問題。
         監聽域對象的創建與銷燬

  在一個web應用程序的整個運行週期內,web容器會創建和銷燬三個對象,ServletContext,HttpSession和ServletRequest對象。
  1.ServletContext對象的創建和銷燬
每個web應用程序分別對應一個ServletContext對象,web服務器在啓動時將創建其中的每個web應用程序對應的ServletContext對象,web服務器關閉時銷燬每個web應用程序對應的的ServletContext對象。
   2.HttpSession對象的創建與銷燬
每個瀏覽器與服務器的會話狀態分別對應一個HttpSession對象,每個HttpSession對象在瀏覽器與服務器會話是創建,在瀏覽器與服務器結束會話時銷燬。
3 ServletRequest對象的創建與銷燬
   瀏覽器的每次訪問請求分別對應一個ServletRequest對象,ServletRequest對象在訪問請求開始時創建,訪問請求結束後銷燬。
在Servlet規範中定義了三個接口,ServletContextListener接口,HttpSessionListener接口,ServletRequestListener接口。他們分別用於監聽上述三個對象的創建和銷燬事件。
還沒有學完,明天繼續學習。

發佈了24 篇原創文章 · 獲贊 3 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章