在Java web應用中,listener監聽器彷佛是必不可少的,經常用來監聽servletContext、httpSession、servletRequest等域對象的建立、銷燬以及屬性的變化等等,能夠在這些事件動做先後進行必定的邏輯處理。
比較經常使用的應用場景是利用監聽器來初始化一些數據、統計在線人數、統計web應用瀏覽量等等。
這裏所說的監聽器其實是servlet規範中定義的一種特殊類,須要實現特定的接口。
而我暫時先說其中三個用來監聽域對象的,分別是servletContextListener、httpSessionListener、servletRequestListener。
這三個接口寫法上實際是差很少的,都有兩個分別表明了該域對象建立時調用和銷燬時調用的方法,據個人理解,這三個對象最大的區別應該就是做用域不同。
servletContext在整個應用啓動到結束中生效,啓動系統時建立這個對象,整個過程當中這個對象是惟一的。
httpSession則是在一個session會話中生效,在一個session被建立直到失效的過程當中都起做用,不過一個啓動的應用中httpSession對象能夠有多個,好比同一臺電腦兩個瀏覽器訪問,就會建立兩個httpSession對象。
而servletRequest是在一個request請求被建立和銷燬的過程當中生效,每發起一次請求就會建立一個新的servletRequest對象,好比刷新瀏覽器頁面、點擊應用的內鏈等等。 java