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

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

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

    無線&移動互聯網技術研發

    換位思考·····
    posts - 19, comments - 53, trackbacks - 0, articles - 283
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    Listener 監聽器的整理

    Posted on 2009-09-01 22:47 Gavin.lee 閱讀(442) 評論(0)  編輯  收藏 所屬分類: web 積累(前端 + 后臺)
    package com.Gavin.tools.sessioncount;

    import java.util.ArrayList;
    import java.util.List;
    import javax.servlet.ServletContext;
    import javax.servlet.http.HttpSession;
    import javax.servlet.http.HttpSessionBindingEvent;
    import javax.servlet.http.HttpSessionBindingListener;

    /**
     * 不需要在web.xml中部署
     * 向session綁定一個屬性時調用。
     * 每一個會話過程均啟動一個監聽器
     * HttpSessionBindingListener必須實例化后放入某一個session中,才可以進行監聽。 
     * session.setAttribute("listener",sessionListener);  將監聽器植入HttpSession,這將激發監聽器調用valueBound方法
     * 
     *         session.removeAttribute("listener")
     *         Session Time Out
     *         session.invalidate()
     *         session.setAttribute("onlineUserListener", "其他對象"); 即可自動調用監聽器的valueUnbound方法。
     
    */


    public class HttpSessionBindingEventTest implements HttpSessionBindingListener {

        
    public String username;
        
        
    public HttpSessionBindingEventTest(String username) {
            
    this.username = username;
        }

        
        List onlineUserList 
    = null;
        
        
    public void valueBound(HttpSessionBindingEvent event) {
            HttpSession session 
    = event.getSession();
            ServletContext application 
    = session.getServletContext();
            
    // 把用戶名放入在線列表
            List onlineUserList = (List) application.getAttribute("onlineUserList");
            
    // 第一次使用前,需要初始化
            if (onlineUserList == null{
                onlineUserList 
    = new ArrayList();
                application.setAttribute(
    "onlineUserList", onlineUserList);
            }

            onlineUserList.add(
    this.username);
            
            
    //username已經通過構造方法傳遞給 listener,在數據綁定時,可以直接把它放入用戶列表。
        }


        
    public void valueUnbound(HttpSessionBindingEvent event) {
            HttpSession session 
    = event.getSession();
            ServletContext application 
    = session.getServletContext();// 從在線列表中刪除用戶名  
            List onlineUserList = (List) application.getAttribute("onlineUserList");
            onlineUserList.remove(
    this.username);
        }

        
        
    public List getOnlineCount() {
            
    return onlineUserList;
        }

    }


    //把用戶名放入在線列表
    //session.setAttribute("onlineUserList", new HttpSessionBindingEventTest(username));



    HttpSessionListener:一旦,進入一個網站,這個網站就自動為瀏覽器分配一個session,調用sessionCreated(),當session過期或銷毀時候,調用sessionDestroyed,這時候有兩種方法:session.invalidate();和等待session自動過期。

    <session-config>      
         
    <session-timeout>1</session-timeout>   
    </session-config> 

    #session過期時間,時間單位是一分鐘,并且只能是整數,如果是零或負數,那么會話就永遠不會超時。    
     public void sessionCreated(HttpSessionEvent arg0) {}
     public void sessionDestroyed(HttpSessionEvent arg0) {} 
    例:http://m.tkk7.com/jzone/articles/284193.html

    HttpSessionAttributeListener:在向session增加、刪除和修改屬性時調用
     public void attributeAdded(HttpSessionBindingEvent arg0) {}
     public void attributeRemoved(HttpSessionBindingEvent arg0) {}
     public void attributeReplaced(HttpSessionBindingEvent arg0) {}


    HttpSessionActivationListener:分布式環境下Session激活和失活時調用
     public void sessionDidActivate(HttpSessionEvent arg0) {}
     public void sessionWillPassivate(HttpSessionEvent arg0) {}


    ServletContextListener:在一個application啟動和結束時調用 
     public void contextDestroyed(ServletContextEvent arg0) {}
     public void contextInitialized(ServletContextEvent arg0) {}
    例:http://www.cnblogs.com/jackyrong/archive/2006/09/04/494759.html
    http://www.qqgb.com/Program/Java/JavaBlog/Program_145756.html


    ServletContextAttributeListener:在向application增加、刪除和修改 Attributes時調用
     public void attributeAdded(ServletContextAttributeEvent arg0) {}
     public void attributeRemoved(ServletContextAttributeEvent arg0) {}
     public void attributeReplaced(ServletContextAttributeEvent arg0) {}

    主站蜘蛛池模板: 免费在线观看黄网| 亚洲欧洲精品在线| 999任你躁在线精品免费不卡| 亚洲国产电影在线观看| 午夜亚洲国产成人不卡在线| 中文字幕无线码中文字幕免费| 久久亚洲精品国产精品| 日韩免费高清视频| 久久久高清日本道免费观看| 色天使亚洲综合一区二区| 亚洲AV无码专区国产乱码4SE | 97se亚洲国产综合自在线| 免费在线观看中文字幕| 永久在线免费观看| ssswww日本免费网站片| 国产精品亚洲综合五月天| 中文字幕在线亚洲精品| 夜夜嘿视频免费看| 三年片在线观看免费观看大全动漫 | 亚洲AV无码第一区二区三区| 女人18毛片水真多免费看| 任你躁在线精品免费| 亚洲AV成人无码网站| 亚洲另类自拍丝袜第1页| 综合亚洲伊人午夜网 | 成人网站免费观看| 免费看男人j放进女人j免费看| 亚洲成在人线在线播放无码 | 无码毛片一区二区三区视频免费播放 | 国产乱子影视频上线免费观看| 最近中文字幕免费完整| 在线观看人成视频免费无遮挡| 综合一区自拍亚洲综合图区| 亚洲国产精品综合一区在线| 亚洲AV永久无码精品成人| 免费一级黄色毛片| 国产无遮挡裸体免费视频| 免费无码A片一区二三区 | 久久成人国产精品免费软件| 国产在线播放线91免费| 一边摸一边爽一边叫床免费视频|