<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-124  評論-49  文章-56  trackbacks-0

    servlet監聽器
    在WEB應用中響應特定對象的特定事件
    好處:更方便的控制application,session,request對象的發生的特定事件
         可以集中處理特定的事件
    -------------------------------------------------------------------
    HttpSession監聽器接口
    1 HttpSessionListener(需要配web.xml)
    2 HttpSessionAttributeListener(需要配web.xml)
    3 HttpSessionBindingListener
    4 HttpSessionActivationListener(需要配web.xml)
    -------------------------------------------------------------------
    HttpSessionListener
    1 sessionCreated()//當session對象產生的時候調用的方法
    2 sessionDestroyed()//當session對象消滅的時候調用的方法
    web.xml配置
    <listener>
     <listener-class>webbook.chapter14.CounterListener(對應的實現類)
     </listener-class>
    </listener>
    ---------------------------------------------------------------------
    HttpSessionAttributeListener
    1 attributeAdded()//添加時調用
    2 attributeReplaced()//替換時調用
    3 attributeRemoved()//刪除時調用
    產生事件的代碼
    session.setAttribute("username","wangwu");
    session.setAttribute("username","lisi");
    session.removeAttribute("username");
    -----------------------------------------------------------------
    HttpSessionBindingListener
    1 valueBound();
    2 vaoueUnbound();
    調用機制
    如果一個類實現了HttpSessionBindingListener接口,則當這個類的對象通過session.setAttribute()被綁定到Session對象中時,
    則該對象的valueBound()方法被自動調用,當這個對象從Session中刪除時(調用session.invalidate()和session.removeAtrribute()
    方法,或Session對象過期)valueUnbound()方法將被自動調用.
    --------------------------------------------------------------------------------------------------------
    HttpSessionActivationListener
    1 sessionDidActivate();
    2 sessionWillPassivate();
    ---------------------------------------------------------------------------------
    例子:
    1 建立CounterListener處理類
    import javax.servlet.http.HttpSessionEvent;
    import javax.servlet.http.HttpSessionListener;
    public class CounterListener implements HttpSessionListener {

     private static long onlineNumber=0;
     public void sessionCreated(HttpSessionEvent se) {
      onlineNumber++;
     }

     public void sessionDestroyed(HttpSessionEvent se) {
      onlineNumber--;
     }
     
     public static long getOnlineNumber(){
      return onlineNumber;
     }
    }
    2 配置web.xml
    <listener>
        <listener-class>com.tags.CounterListener</listener-class>
    </listener>
    3 JSP頁面
    <%@page import="com.tags.CounterListener;"%>
    <body>
        當前的在線人數:<%=CounterListener.getOnlineNumber() %> <br>
    </body>
    ----------------------------------------------------------------------------
    ServletContext監聽器接口
    ServletContextListener
    1 contextInitialized()
    2 contextDestroyed()
    調用機制
    當在web應用中部署了實現該接口的實現類后,在WEB容器加載WEB應用時(如:啟動服務器)就會自動調用contextInitialized()方法,
    而當WEB容器銷毀WEB應用時(如:關閉服務器),會自動調用contextDestroyed()方法.
    -----------------------------------------------------------------------------------
    ServletContextAttributeListener
    1 attributeAdded()
    2 attributeReplaced()
    3 attributeRemoved()
    觸發事件的代碼
    context.setAttribute("counter",new Integer(0));
    context.setAttribute("counter",new Integer(100));
    context.removeAttribute("counter");
    -----------------------------------------------------------
    HttpServletRequest監聽器
    ServletRequestListener
    1 requestInitialized();
    2 requestDestroyed()
    調用機制
    與ServletContextListener接口類似,在web應用中部署實現該接口的實現類扣,在HttpServletRequest對象(JSP中的request對象)建立
    或者被銷毀時,由web容器自動調用requestInitialized()或者requestDestroyed()方法.
    --------------------------------------------------------------------------------------
    ServletRequestAttributeListener
    1 attributeAdded();
    2 attributeReplaced();
    3 attributeRemoved();
    觸發事件的代碼
    request.setAttribute("username","lisi");
    request.setAttribute("username","wangwu");
    request.removeAttribute("username");

    ******************************************************************
    public class ListenerOnline implements HttpSessionLinstener,ServletContext{
      private  application;
      public void sessionCreated(HttpSessionEvent event){
        Integer n=(Integer)application.getAttrabute("z",1000);
        application.setAttrabute("z",n.IntValue()+1);
       
      }
       public void sessionDestroyed(HttpSessionEvent event){
      }
      public void contextInitialized(ServletContextEvent event){
        application=event.getServletContext();
        application.setAttrabute("z",1000);
      }
       public void contextDestroyed(ServletContextEvent event){
      }
    }

    <listener>
        <listener-class>com.tags.ListenerOnline</listener-class>
    </listener>

    <meta http-equiv="refresh" content="3"/>

    posted on 2009-11-29 22:47 junly 閱讀(329) 評論(0)  編輯  收藏 所屬分類: jsp/servlet
    主站蜘蛛池模板: 成人免费ā片在线观看| 亚洲a级片在线观看| 色一情一乱一伦一视频免费看| 在线v片免费观看视频| 亚洲精品中文字幕无乱码| 1000部啪啪未满十八勿入免费| 亚洲国产日韩一区高清在线| 一级毛片免费观看不卡视频| 亚洲a在线视频视频| 亚洲AV中文无码字幕色三| a级毛片免费高清毛片视频| 亚洲中文字幕无码久久精品1| 亚洲五月综合网色九月色| 麻豆一区二区免费播放网站| 香蕉大伊亚洲人在线观看| 国产美女精品视频免费观看| 国产综合激情在线亚洲第一页 | 人妖系列免费网站观看| 亚洲国产综合精品一区在线播放| 人与动性xxxxx免费| 亚洲国产日韩在线视频| 99免费观看视频| 亚洲日韩国产AV无码无码精品| 国产伦精品一区二区三区免费迷| 一级特级aaaa毛片免费观看| 亚洲av最新在线网址| 日日麻批免费40分钟日本的| 亚洲AV成人无码久久WWW| 久久精品夜色噜噜亚洲A∨| 玖玖在线免费视频| 性xxxx黑人与亚洲| 亚洲精品97久久中文字幕无码| 久久青草免费91线频观看不卡| 亚洲av无码专区在线| 亚洲高清无码在线观看| 最好免费观看高清在线| 亚洲伦理中文字幕| 亚洲人成网站观看在线播放| 91精品国产免费入口| 免费人妻精品一区二区三区| 麻豆亚洲AV永久无码精品久久|