clickstreamlistener.java

来自「clickstream是开源的JAVA项目」· Java 代码 · 共 56 行

JAVA
56
字号
package com.opensymphony.clickstream;import com.opensymphony.util.Logger;import com.opensymphony.clickstream.logger.ClickstreamLoggerFactory;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;import javax.servlet.http.HttpSession;import javax.servlet.http.HttpSessionEvent;import javax.servlet.http.HttpSessionListener;import java.util.HashMap;import java.util.Map;/** * The listener that keeps track of all clickstreams in the container as well * as the creating new Clickstream objects and initiating logging when the * clickstream dies (session has been invalidated). * * @author <a href="plightbo@hotmail.com">Patrick Lightbody</a> */public class ClickstreamListener implements ServletContextListener, HttpSessionListener {    private static Logger log = new Logger(ClickstreamListener.class);    private Map clickstreams = new HashMap();    public ClickstreamListener() {        log.debug("ClickstreamLogger constructed");    }    public void contextInitialized(ServletContextEvent sce) {        log.debug("ServletContext Initialised");
        sce.getServletContext().setAttribute("clickstreams", clickstreams);    }    public void contextDestroyed(ServletContextEvent sce) {        sce.getServletContext().setAttribute("clickstreams", null);
        log.debug("ServletContext Destroyed");    }    public void sessionCreated(HttpSessionEvent hse) {        log.debug("Session Created");
        HttpSession session = hse.getSession();        Clickstream clickstream = new Clickstream();        session.setAttribute("clickstream", clickstream);        clickstreams.put(session.getId(), clickstream);    }    public void sessionDestroyed(HttpSessionEvent hse) {        log.debug("Session Destroyed");
        HttpSession session = hse.getSession();        Clickstream stream = (Clickstream) session.getAttribute("clickstream");        ClickstreamLoggerFactory.getLogger().log(stream);        clickstreams.remove(session.getId());    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?