Listen监听器

背景:统计某个网站的在线人数

//统计网站在线人数,也就是统计session的数量,一个浏览器对应一个session(浏览器)
//关闭后session销毁
public class OnlineListen implements HttpSessionListener{
    /**     
    * 监听session新创建时执行的方法     
    * @param se     
    */
    @Override 
    public void sessionCreated(HttpSessionEvent se){
        //ServletContext()最高作用域
        ServletContext sc = se.getSession().getServletContext();
        System.out.println("sessionId:"+ se.getSession().getId());
        Integer onlineCount =(Integer)sc.getAttribute("onlineCount");
        if(onlineCount ==null){            
            onlineCount =1;
        }else{            
            onlineCount++;
        }        
        sc.setAttribute("onlineCount",onlineCount);
    }
    /**     
    * 监听session销毁时执行方法     
    * @param se     
    */
    @Override
    public void sessionDestroyed(HttpSessionEvent se){
        ServletContext sc = se.getSession().getServletContext();
        Integer onlineCount =(Integer); 
        sc.getAttribute("onlineCount");
        if(onlineCount ==null){            
            onlineCount =0;
        }else{            
            onlineCount--;
    }
    System.out.println("销毁session了--监听到");                      
    sc.setAttribute("onlineCount",onlineCount);
    } 
}

web.xml中的映射配置

<!--监听器-->
<listener>
    <!--监听类的路径-->
    <listener-class>com.bug.listener.OnlineListen</listener-class>
</listener>

上一篇:How is new Appoinment id generated in my task followup scenario


下一篇:“Rogue“ Events in BTC