📄 clickstreamlistener.java
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -