最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java listener簡介_動力節(jié)點Java學院整理

 更新時間:2017年07月31日 10:25:54   作者:CBDoctor  
這篇文章主要介紹了Java listener簡介,可以用于統(tǒng)計用戶在線人數(shù)等,有興趣的可以了解一下

1: 監(jiān)聽器的定義:

監(jiān)聽器實際上是一個類,這個類實現(xiàn)了特定的接口,然后將這個類在 web.xml 文件中進行描述,這樣服務器在啟動的時候就可以實例化這個類,啟動監(jiān)聽器。當范圍對象的狀態(tài)發(fā)生變化的時候,服務器自動調用監(jiān)聽器對象中的方法。例如統(tǒng)計用戶在線人數(shù)。

web監(jiān)聽器是Servlet規(guī)范中定義的一種特殊類,用于監(jiān)聽ServletContext,HttpSession,ServletRequest等域對象的創(chuàng)建、銷毀、以及屬性的變化等,可以在事件發(fā)生前、發(fā)生后進行一些處理。

2、監(jiān)聽器的用途

  • 統(tǒng)計在線人數(shù)和在線用戶
  • 系統(tǒng)加載時進行信息的初始化工作
  • 統(tǒng)計網站的訪問量
  • 跟Spring結合

3、實例

在web.xml文件中進行配置

listenr-class中是自己定義的Listener的類路徑

public class MyRequestListener implements ServletContextListener{
  public void contextInitialized(ServletContextEvent event){
    System.out.println("啟動監(jiān)聽器");
  }
 
  public void contextDestroy(ServletContextEvent event){
    System.out.println("結束監(jiān)聽器");
  }
}

編譯器會為我們自動生成contextInitialized和contextDestroy兩個函數(shù)

監(jiān)聽器>過濾器>serlvet,在 web.xml 文件中配置的時候注意順序

4 監(jiān)聽器的分類

按監(jiān)聽的對象劃分,可以分為監(jiān)聽

  • ServletContext對象
  • HttpSession對象
  • ServletRequest對象

按監(jiān)聽的事件劃分

  • 域對象自身的創(chuàng)建和銷毀
  • 域對象中屬性的創(chuàng)建和消除
  • 綁定到session中的某個對象的狀態(tài)

由于很多監(jiān)聽的方式一致,因此我們只考慮其中的HttpSession對象:

在web.xml中配置session超時

<session-config>
  <session-timeout> 30 </session-timeout>
</session-config>

當超過30秒后,session會自動過期

public class MyRequestListener implements HttpSessionListener{
  public void sessionCreate(HttpSessionEvent event){
    System.out.println("event 創(chuàng)建:");
  }
 
  public void sessionDestroy(HttpSessionEvent event){
    System.out.println("event 銷毀:");
  }
}

另外,我們可以實現(xiàn)HttpSessionAttributeListener來實現(xiàn)session對象屬性的增加(added)、刪除(removed)、替換(replaced)的功能

public class MyRequestListener implements HttpSessionAttributeListener{
  public void attributeAdded(HttpSessionBindEvent event){
     
  }
 
  public void attributeRemoved(HttpSessionBindEvent event){
     
  }
 
  public void attributeReplaced(HttpSessionBindEvent event){
     
  }
}

5、Servlte3.0下的使用

在Servlet3.0下通過注解@WebListener("")就可以實現(xiàn)了,不需要在web.xml中進行配置

6、實戰(zhàn)(偽代碼)

public class MyRequestListener implements HttpSessionListener{
  private int counts = 0;//用于統(tǒng)計在線人數(shù)
  public void sessionCreate(HttpSessionEvent event){
    counts++;
    event.getSession().getServletContext.setAttribute("name",counts); //用戶人數(shù)+1
  }
 
  public void sessionDestroy(HttpSessionEvent event){
    counts--;
    event.getSession().getServletContext.setAttribute("name",counts);//用戶人數(shù)-1
  }
}
 
@WebListener
public class MyRequestListener2 implements ServletRequestListener{
  private ArrayList<User>list; //創(chuàng)建一個在線用戶的列表
  public void requestCreate(ServletRequestEvent event){
    HttpServletRequest request = (HttpServletRequest) request.getServletContext();
    String sessionId = request.getSession().getSessionId();
    if(sessionId ...){
      ....
      list.add(...);
    }
  }
 
  public void requestDestroy(ServletRequestEvent event){
 
  }
}
 
public class User{
  private int sessionId;
   
}

相關文章

  • Java程序中Doc文檔注釋示例教程

    Java程序中Doc文檔注釋示例教程

    這篇文章主要為大家介紹了Java程序中Doc文檔注釋的示例教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2021-10-10
  • java圖形驗證碼生成工具類 web頁面校驗驗證碼

    java圖形驗證碼生成工具類 web頁面校驗驗證碼

    這篇文章主要為大家詳細介紹了java圖形驗證碼生成工具類,web頁面校驗驗證碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • mybatis-plus批處理IService的實現(xiàn)示例

    mybatis-plus批處理IService的實現(xiàn)示例

    這篇文章主要介紹了mybatis-plus批處理IService的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • Java實現(xiàn)List反轉的方法總結

    Java實現(xiàn)List反轉的方法總結

    在Java中,反轉一個List意味著將其元素的順序顛倒,使得第一個元素變成最后一個,最后一個元素變成第一個,依此類推,這一操作在處理數(shù)據(jù)集合時非常有用,所以本文給大家總結了Java實現(xiàn)List反轉的方法,需要的朋友可以參考下
    2024-04-04
  • Java8之Stream流代替For循環(huán)操作

    Java8之Stream流代替For循環(huán)操作

    這篇文章主要介紹了Java8之Stream流代替For循環(huán)操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • Java ScheduledExecutorService的具體使用

    Java ScheduledExecutorService的具體使用

    ScheduledExecutorService有線程池的特性,也可以實現(xiàn)任務循環(huán)執(zhí)行,本文主要介紹了Java ScheduledExecutorService的具體使用,具有一定的參考價值,感興趣的可以了解一下
    2023-05-05
  • Java發(fā)送post方法詳解

    Java發(fā)送post方法詳解

    這篇文章主要介紹了Java發(fā)送post方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • Java+Windows+ffmpeg實現(xiàn)視頻轉換功能

    Java+Windows+ffmpeg實現(xiàn)視頻轉換功能

    這篇文章主要為大家詳細介紹了Java+Windows+ffmpeg實現(xiàn)視頻轉換功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • Java 如何解決跨域問題

    Java 如何解決跨域問題

    這篇文章主要介紹了Java 如何解決跨域問題,幫助大家更好的理解和學習使用Java,感興趣的朋友可以了解下
    2021-03-03
  • java實現(xiàn)消息隊列的兩種方式(小結)

    java實現(xiàn)消息隊列的兩種方式(小結)

    本文主要介紹了兩種java實現(xiàn)消息隊列的方式,利用Spring消息模板發(fā)送消息和Apache ActiveMQ官方實例發(fā)送消息,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-12-12

最新評論

永德县| 拜泉县| 曲沃县| 阜新市| 郁南县| 永年县| 洞头县| 章丘市| 彰武县| 河津市| 兴化市| 宾阳县| 仁寿县| 滕州市| 桃园市| 容城县| 安宁市| 响水县| 普陀区| 金山区| 唐海县| 石嘴山市| 云南省| 广德县| 玛纳斯县| 海原县| 桂东县| 淮安市| 哈尔滨市| 波密县| 吉水县| 称多县| 务川| 嘉鱼县| 廊坊市| 自贡市| 花垣县| 广东省| 海林市| 年辖:市辖区| 皋兰县|