天天看點

Listenter之使用ServletRequestListener和ServletRequestAttributeListener

ServletRequestListener用于監聽使用者請求的到達,實作該接口的監聽器需要實作如下兩個方法;

1.requestInitialized(ServletRequestEvent sre):使用者請求到達,被初始化時觸發該方法。

2.requestDestroyed(ServletRequestEvent sre):使用者請求結束,被銷毀時觸發該方法。

ServletRequestAttributeListener則用于監聽ServletRequest(request)範圍内屬性的變化,實作該接口的監聽器需要實作attributeAdded(),attributeRemoved(),attributeReplaced()三個方法,由此可見ServletRequestAttributeListener與ServletContextAttributeListener的作用相似,都用于監聽屬性的改變,隻是ServletRequestAttributeListener監聽request範圍内的改變,而ServletContextAttributeListener範圍内屬性的改變。

需要指出的是,應用程式完全可以采用一個監聽器類來監聽多種事件,隻要讓該監聽器實作類同時實作多個監聽器接口即可,如下代碼:

Listenter之使用ServletRequestListener和ServletRequestAttributeListener
Listenter之使用ServletRequestListener和ServletRequestAttributeListener

上面的監聽器實作類同時實作了ServletRequestListener接口和ServletRequestAttributeListener接口,是以它既可以監聽使用者請求的初始化和銷毀,也可監聽request範圍内屬性的變化。

由于實作了ServletRequestListener接口的監聽器可以非常友善監聽到每次請求的建立,銷毀是以web應用可以通過實作該接口的監聽器通路該應用的每個請求,進而實作系統日志。

繼續閱讀