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第五課:xml解析JavaServletXML
- java EE開發之Servlet第一課:servlet的建立方式JavaServlet
- java EE開發之Servlet第二課:Servlet的三個hashMapJavaServletHashMap
- java EE開發之Servlet第八課:MVC模式 (基本理解)JavaServletMVC模式
- java EE開發之Servlet第十一課:反射基礎三JavaServlet反射
- day25-Listener監聽器
- 7、listener監聽
- Filter(過濾器)與Listener(監聽器)詳解Filter過濾器
- JavaWeb之Servlet、攔截器、監聽器及程式設計思想JavaWebServlet程式設計
- Servlet監聽器統計線上人數Servlet
- 2.5.2. 監聽程式(listener)配置——2.5.2.3. 手工編輯監聽器配置檔案
- listener_scan1.log、listener.log監聽日誌清理
- JAVA單元測試框架-13-TestNG中的Listener監聽Java框架
- 使用 TypeScript 自定義裝飾器給類的方法增添監聽器 ListenerTypeScript
- ORACLE之手動註冊監聽listener。alter system set local_listener="XXX"Oracle
- 2.5.2. 監聽程式(listener)配置——2.5.2.1. netca
- 2.5.2. 監聽程式(listener)配置——2.5.2.2. netmgr
- java鍵盤監聽之視窗監聽的實現Java
- 使用 TypeScript 自定義裝飾器給類的屬性增添監聽器 ListenerTypeScript
- 監聽發現區域網dropbox客戶端broadcast-dropbox-listener客戶端AST
- 【LISTENER】Oracle通過監聽連線緩慢分析Oracle
- Java之ServletJavaServlet
- SpringBoot如何註冊Servlet、Filter、ListenerSpring BootServletFilter
- JavaWeb三大元件(Servlet、Filter、Listener)JavaWeb元件ServletFilter
- oracle監聽檔案listener.ora for 10g/11gOracle
- AndroidTV開發中所有的遙控器按鍵監聽及注意事項,新增home鍵監聽Android
- Android開發之監聽軟鍵盤狀態(彈出收回)Android
- vue之監聽事件Vue事件
- 一文快速回顧 Servlet、Filter、ListenerServletFilter
- Presto Event Listener開發REST
- JMeter—監聽器(十二)JMeter
- Java_EE企業級開發學習筆記——spring學習筆記第四章Java筆記Spring
- Java 監聽POST請求Java
- Java課堂 第四周Java
- 監聽器和過濾器過濾器
- 第2,8章 servlet 開發技術(12課時)Servlet
- Java匹馬行天下之J2EE框架開發——Spring—>Spring框架知多少Java框架Spring
- 事件和事件監聽器事件