javaWeb中的監聽器
事件源:三大域
ServletContext
生命週期監聽:①ServletContextListener 有兩個方法——一個在出生時(服務啟動時)呼叫,一個在死亡前(伺服器關閉前 )呼叫
- void contextInitialized(ServletContextEvent sce) :服務啟動時
- void contextDestroyed(ServletContextEvent sce) :伺服器關閉前
屬性監聽:②ServletContextAttributeListener 有3個方法——一個在新增屬性時呼叫,一個在替換屬性時呼叫,一個在移除屬性時呼叫
- void attributeAdded(ServletContextAttributeEvent scab)
- void attributeRemovewd(ServletContextAttributeEvent scab)
- void attributeReplaced(ServletContextAttributeEvent scab)
HttpSession
生命週期監聽:③HttpSessionListener 有兩個方法——一個在出生時(session建立時)呼叫,一個在死亡前(session消亡前)呼叫
- sessionCreated(HttpSessionEvent event):session建立時
- void sessionDestroyed(HttpSessionEvent event) :session消亡前
屬性監聽:④HttpSessionAttributeListener 有3個方法——一個在新增屬性時呼叫,一個在替換屬性時呼叫,一個在移除屬性時呼叫
-
void attributeAdded(ServletSessionBindingEvent event)
-
void attributeRemovewd(ServletSessionBindingEvent event)
-
void attributeReplaced(ServletSessionBindingEvent event)
ServletRequest
生命週期監聽:⑤ServletRequestListener 有兩個方法——一個在出生時(request建立時)呼叫,一個在死亡時(request消亡時)呼叫
- void requestCreated(ServletRequestEvent se) :request建立時
- void requestDestroyed(ServletRequesEvent se):request消亡時
屬性監聽:⑥ServletRequestAttributeListener 有3個方法——一個在新增屬性時呼叫,一個在替換屬性時呼叫,一個在移除屬性時呼叫
- void attributeAdded(ServletRequestAttributeEven srae)
- void attributeRemovewd(ServletRequestAttributeEven sra
e)
- void attributeReplaced(ServletRequestAttributeEven srae)
事件物件:
- ServletContextEvent 中的方法 getServletContext()
- HttpSessionEvent 中的方法 getHttpSession()
- ServletRequestEvent 中的的方法 getServletRequest()和getServletContext()
- ServletContextAttributeEvent 中的方法getServletContext()、getName()、getValue() 注意這裡獲取的是老值
- ServletSessionBindingEvent 中的方法getServleSession()、getName()、getValue() 意這裡獲取的是老值
- ServletRequestAttributeEvent 中的方法getServleREquest()、getName()、getValue() 意這裡獲取的是老值
上述已經介紹了6個監聽器(介面)了,及其方法已經方法中引數的方法
下面,再來介紹另兩個監聽器
感知監聽器:事件源:Javabean
⑦HttpSessionBindingListener 這個監聽器是監聽javaBean的,他的作用是用來檢視javabean是否被session新增或移除
用法:讓javaBean去實現HttpSessionBindingListener ,並實現其中的兩個方法
- void valueBound(HttpSessionBindingEvent event) :Javabean被繫結到 Session
的時候呼叫 - void valueUnbound(HttpSessionBindingEvent event) : Javabean從 Session
解綁的時候呼叫。
⑧HttpSessionActiveationListener(瞭解)
Tomcat會在session從時間不被使用時鈍化session物件,所謂鈍化session,就是把session通過序列化的方式儲存到硬碟檔案中。
當使用者再使用session時,Tomcat還會把鈍化的物件再活化session,所謂活化就是把硬碟檔案中的session在反序列化回記憶體。
當session被Tomcat鈍化時,session中儲存的物件也被純化,當session被活化時,也會把session中儲存的物件活化。如果某個類實現了HttpSessionActiveationListener介面後,當物件隨著session被鈍化和活化時,下面兩個方法就會被呼叫:
- public void sessionWillPassivate(HttpSessionEvent se):當物件感知被活化時呼叫本方法;
- public void sessionDidActivate(HttpSessionEvent se):當物件感知被鈍化時呼叫本方法;
相關文章
- 【JavaWeb】EL表示式&過濾器&監聽器JavaWeb過濾器
- JavaWeb之Servlet、攔截器、監聽器及程式設計思想JavaWebServlet程式設計
- Springboot中自定義監聽器Spring Boot
- Spring中如何優雅的使用監聽器模式Spring模式
- JMeter—監聽器(十二)JMeter
- Oracle監聽器中的XDB、XPT和PLSExtProc服務Oracle
- Spring Data JPA中事務監聽器TransactionExecutionListenerSpring
- Spring Boot 中動態管理 Kafka 監聽器Spring BootKafka
- 監聽器和過濾器過濾器
- springBoot的過濾器,監聽器,攔截器Spring Boot過濾器
- 如何移除事件監聽器事件
- 事件和事件監聽器事件
- (譯文)swift中的監聽者Swift
- jfinal中如何使用過濾器監控Druid監聽SQL執行?過濾器UISQL
- 監聽瀏覽器的後退事件瀏覽器事件
- flutter中監聽鍵盤Flutter
- Netty中自定義事件處理程式和監聽器Netty事件
- day25-Listener監聽器
- 【spring原始碼】十二、監聽器Spring原始碼
- jmeter監聽器(Transactions per Second)JMeter
- SpringBoot 攔截器、過濾器、監聽器Spring Boot過濾器
- 過濾器和監聽器總結過濾器
- 監聽 watch props物件屬性監聽 或深度監聽物件
- web app 中物理返回鍵的監聽WebAPP
- Spring5原始碼解析-Spring框架中的事件和監聽器Spring原始碼框架事件
- 多IP伺服器上監聽器的設定伺服器
- JavaWeb 中 Filter過濾器JavaWebFilter過濾器
- flutter 中監聽滑動事件Flutter事件
- 自定義元件-資料監聽器元件
- SpringBoot事件監聽器原始碼分析Spring Boot事件原始碼
- Spring框架(一):配置&注入&監聽器Spring框架
- 安卓使用物理鍵監聽器安卓
- python使用裝飾器實現的事件中心(監聽器)Python事件
- vue中如何監聽vuex中的資料變化Vue
- Vue 中 MathJax 的使用與渲染的監聽 (下)Vue
- java鍵盤監聽之視窗監聽的實現Java
- 2.5.2. 監聽程式(listener)配置——2.5.2.3. 手工編輯監聽器配置檔案
- FreeSwtich的監聽功能