java web中的三大組件分別是servlet listener filter。而其中的listener便就是java web中的監聽器。java
首先介紹一下監聽器就是一個接口,接口的內容由咱們本身實現,並且他須要註冊,其次監聽器的內容會在特殊事件發生時被調用。web
java web中一共有八大監聽器,首先即是事件源(產生事件的源頭)爲三大域的六個監聽器,分別是ServletContext的生命週期監聽和屬性監聽以及HttpSession的生命週期監聽和屬性監聽,還有ServletRequest的生命週期監聽和屬性監聽.服務器
<1> ServletContext:session
生命週期監聽(ServletContextListener):它有兩個方法,一個在servlet建立時被調用,一個在銷燬時調用。ide
屬性監聽(ServletContextAttributeListener):它有三個方法,一個在添加屬性時調用,一個在修改屬性時調用, 還有一個在移除屬性時調用。spa
<2>HttpSession:xml
生命週期監聽(HttpSessionListener)和屬性監聽(HttpSessionAttributeListener);用法同上。接口
<3>ServletRequest:生命週期
生命週期監聽(ServletRequestListener)和屬性監聽(ServletRequestAttributeListener);用法同上。事件
在編寫這六個監聽器時,必須得實現某個對應的監聽器接口,並且要在web.xml中完成註冊;註冊內容爲:
<listener>
<listener-class>中間即爲監聽器的路徑</listener-class>
</listener>
另外兩個監聽器即爲感知監聽:用來添加到javabean上。而不是添加到三大域中,與HttpSession有關,而且無需在web.xml中進行註冊。
<1> HttpSessionBindingListener:添加到javabean上,javabean就知道本身是否添加到session中
<2>HttpSessionActivationListener:監聽javabean是否隨着session鈍化和活化。
-------------------------------------------------------------------------------------------------------------------------------
爲了幫助理解,首先得知道session的鈍化和活化:
即爲當太多的session沒有被使用的時候,服務器會把這些session放到硬盤中,釋放內存,服務器正常運行,若是用戶要使用session,則服務器會把session從硬盤中在放到內存中,以便於用戶使用,便就是session的鈍化和活化。