java EE開發之Servlet第四課:監聽器(Listener)
1.什麼是Listener
監聽器就像老闆的秘書,那個秘書就是活的監聽器,時時監聽著老闆,當老闆發生一些事情的時候,秘書就會有相應的措施。比如老闆口渴了,秘書就會去端茶;比如老闆要提提神,秘書就會泡一杯咖啡等。
2.介紹java的幾種常用的監聽器
(1)實現ServletRequestListener介面,監聽request(需要在web.xml中配置)
/**
* 當request物件被銷燬的時候,容器就會自動去
* 呼叫這個監聽器的requestDestroyed,產生一個事件物件ServletRequestEvent
*/
public void requestDestroyed(ServletRequestEvent sre) {
System.out.println("request被銷燬");
}
/**
* 當request物件被建立的時候,容器就會自動去
* 呼叫這個監聽器的requestInitialized,產生一個事件物件ServletRequestEvent*/
public void requestInitialized(ServletRequestEvent sre) {
System.out.println("request被建立");
}
配置:
<listener>
<listener-class>com.accp.RequestListener</listener-class>
</listener>
(2)實現HttpSessionListener介面,監聽session (需要在web.xml中配置)
/**
* 當session被建立的時候被呼叫,產生一個事件物件HttpSessionEvent*/
public void sessionCreated(HttpSessionEvent se) { }
/**
* 當session被銷燬的時候被呼叫,產生一個事件物件HttpSessionEvent */
public void sessionCreated(HttpSessionEvent se) { }
配置:
<listener>
<listener-class>com.accp.SessiontListener</listener-class>
</listener>
(3)實現ServletContextListener介面,監聽ServletContext(需要在web.xml中配置)
/**
* 當ServletContext被銷燬的時候,容器就會自動去
* 呼叫這個監聽器的contextDestroyed,產生一個事件物件ServletContextEvent
*/
public void contextDestroyed(ServletContextEvent sce) { }
/**
* 當ServletContext被建立的時候,容器就會自動去
* 呼叫這個監聽器的contextDestroyed,產生一個事件物件ServletContextEvent*/
public void contextInitialized(ServletContextEvent sce) { }
配置:
<listener>
<listener-class>com.accp.ContextListener</listener-class>
</listener>
(4)實現SessionBindingListener介面,監聽Session設值和取值(不需要在web.xml中配置)
/**
* 當向Session裡面設值的時候,容器呼叫此方法,生產一個事件物件 */
public void valueBound(HttpSessionBindingEvent event) { }
/**
* 當向Session裡面移除值的時候,容器呼叫此方法,生產一個事件物件 */
public void valueUnbound(HttpSessionBindingEvent event) { }
哪個類的物件需要監聽,就讓那個類實現該介面
3.應用
應用一
使用 ServletRequestListener ,HttpSessionListener , ServletContextListener
統計訪問量,線上人數,請求次數
應用二
使用SessionBindingListener做購物車:
HttpSessionBindingListener只監聽制定的session
HttpSessionListener:監聽處理所有的session
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69940641/viewspace-2934116/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [摘]Java EE Servlet監聽器JavaServlet
- java EE開發之Servlet第五課:xml解析JavaServletXML
- java EE開發之Servlet第一課:servlet的建立方式JavaServlet
- java EE開發之Servlet第二課:Servlet的三個hashMapJavaServletHashMap
- java EE開發之Servlet第八課:MVC模式 (基本理解)JavaServletMVC模式
- java EE開發之Servlet第十一課:反射基礎三JavaServlet反射
- Web中的監聽器【Listener】Web
- JavaWeb之Servlet、攔截器、監聽器及程式設計思想JavaWebServlet程式設計
- 設定 Oracle 監聽器密碼(LISTENER)Oracle密碼
- 管理監聽器日誌listener.log
- listener監聽監控指令碼指令碼
- Filter(過濾器)與Listener(監聽器)詳解Filter過濾器
- Servlet監聽器統計線上人數Servlet
- 【LISTENER】禁止產生監聽器日誌的方法
- 2.5.2. 監聽程式(listener)配置——2.5.2.3. 手工編輯監聽器配置檔案
- 動態註冊監聽Listener
- 【listener】oracle靜態監聽和動態監聽 【轉載】Oracle
- ORACLE監聽器 The listener supports no services 問題解決方法Oracle
- Web中的監聽器【Listener】與過濾器【Filter】 例項Web過濾器Filter
- 【監聽】listener.ora檔案理解
- ORACLE listener監聽設定密碼Oracle密碼
- Java EE 6之企業應用開發Java
- listener_scan1.log、listener.log監聽日誌清理
- java鍵盤監聽之視窗監聽的實現Java
- JAVA單元測試框架-13-TestNG中的Listener監聽Java框架
- oracle動態和靜態監聽listenerOracle
- 使用 TypeScript 自定義裝飾器給類的方法增添監聽器 ListenerTypeScript
- ORACLE啟動監聽器 The listener supports no services 問題解決方法Oracle
- oracle 監聽器動態與靜態註冊服務_listenerOracle
- oracle listener 靜態監聽與動態監聽的一些小事Oracle
- 關於Servlet中的事件監聽 薦Servlet事件
- 使用 TypeScript 自定義裝飾器給類的屬性增添監聽器 ListenerTypeScript
- 【監聽】配置服務端靜態(動態)監聽/修改監聽埠及引數local_listener作用服務端
- rac scan listener log 清理監聽日誌 oracleOracle
- Oracle資料庫修改LISTENER的監聽埠Oracle資料庫
- 【LISTENER】修改 LISTENER的監聽埠為1526(動態註冊)
- 【LISTENER】修改 LISTENER的監聽埠為1526(靜態註冊)
- Java之ServletJavaServlet