監聽器的常用接口


這里主要介紹
HttpSessionBindingListener接口
HttpSessionListenner接口

ServletContextListener接口


使用監聽器統計在線人數,以后用到其他的關於監聽器的功能在進行補充。

 

Listener:
 監聽器是Web應用程序事件模型的一部分,當Web應用中的某些狀態發生
      改變時,會產生相應的事件,監聽器可以接收這些事件,並可以在事件發
      生時做相關處理。
 監聽器可以接收事件,並完成相關的處理。

 

HttpSessionBindingListener接口:
 如果一個對象實現了HttpSessionBindingListener接口,當這個對象唄添加
      到Session或者從Session中被刪除時,Servlet容器都能夠進行識別並發出相
      應的信息,在對象接收到信息后,就可以進行一系列的操作。
 Void valueBound(HttpSessionBindingEvent event) 當對象被添加到Session時,容器
       調用該方法來通知對象
 Void valueUnbound(HttpSessionBindingEvent event)當對象從Session刪除時,容器
       調用該方法來通知對象


使用HttpSessionBindingListener接口實現在線用戶統計的步驟:
 1.創建HttpSessionBindingListener接口實現類
 public class User implements HttpSessionBindingListener{}
 2.在valueBound()和valueUnbound()方法中實現用戶數量的統計
 public class User implements HttpSessionBindingListener{
  public void valueBound(HttpSessionBindingEvent arg0) {
   //存入session時自動調用
   Constants.ONLINE_USER_COUNT ++;
      }
     public void valueUnbound(HttpSessionBindingEvent arg0) {
       //從session中刪除時自動調用
       Constants.ONLINE_USER_COUNT --;
      }
 } 
 
 3.在web.xml中配置監聽器
 示例:
 <listener>
      <listener-class>com.pb.news.entity.User</listener-class>
   </listener>

 


HttpSessionListener接口:
 就是監聽HttpSession創建與銷毀的Listener
 sessionCreated(HttpSessionEvent event)
  HttpSession創建時
 sessionDestroyed(HttpSessionEvent event)
  執行session.invalidate()方法
  session會話超時
 
 在web.xml中配置監聽器
 <listener>
      <listener-class>監聽器完全限定名</listener-class>
   </listener>

 

HttpSessionBindingListener接口與HttpSessionListener接口二者的區別:
 HttpSessionListener只需要設置到web.xml就可以監聽整個應用中的所有session
 HttpSessionBindingListener必須實例化后放入某一個session中,才能監聽
 
 監聽范圍:
  HttpSessionListener設置一次就可以監聽所有session
  HttpSessionBindingListener通常是一對一

 


ServletContextListener接口:
 ServletContextListener
  contextInitialized(ServletContextEvent arg)
  contextDestroyed(ServletContextEvent arg)


(未完待續。。。)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM