KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > javabb > infra > CustomClickstreamFilter


1 package org.javabb.infra;
2
3 import java.io.IOException JavaDoc;
4 import java.util.Map JavaDoc;
5
6 import javax.servlet.FilterChain JavaDoc;
7 import javax.servlet.ServletException JavaDoc;
8 import javax.servlet.ServletRequest JavaDoc;
9 import javax.servlet.ServletResponse JavaDoc;
10 import javax.servlet.http.HttpServletRequest JavaDoc;
11 import javax.servlet.http.HttpSession JavaDoc;
12
13 import com.opensymphony.clickstream.Clickstream;
14 import com.opensymphony.clickstream.ClickstreamFilter;
15 import com.opensymphony.clickstream.ClickstreamListener;
16
17 /**
18  * The filter that keeps track of a new entry in the clickstream for <b>every request </b>.
19  * @author <a HREF="plightbo@hotmail.com">Patrick Lightbody </a>
20  */

21 public class CustomClickstreamFilter extends ClickstreamFilter {
22     /**
23      * Processes the given request and/or response.
24      * @param request The request
25      * @param response The response
26      * @param chain The processing chain
27      * @throws IOException If an error occurs
28      * @throws ServletException If an error occurs
29      */

30     public void doFilter(ServletRequest JavaDoc request, ServletResponse JavaDoc response, FilterChain JavaDoc chain)
31         throws IOException JavaDoc,
32             ServletException JavaDoc {
33
34         HttpSession JavaDoc session = ((HttpServletRequest JavaDoc) request).getSession();
35         Map JavaDoc clickstreams = (Map JavaDoc) session.getServletContext()
36             .getAttribute(ClickstreamListener.CLICKSTREAMS_ATTRIBUTE_KEY);
37         if (!clickstreams.containsKey(session.getId())) {
38             Clickstream clickstream = new Clickstream();
39             session.setAttribute(ClickstreamListener.SESSION_ATTRIBUTE_KEY, clickstream);
40             clickstreams.put(session.getId(), clickstream);
41         }
42
43         super.doFilter(request, response, chain);
44     }
45 }
Popular Tags