01: package com.jamonapi;
02:
03: /**
04: *
05: * The following should be put in the Web Application's web.xml file to enable servlet monitoring.
06: * This servlet filter will enable any file access to html, jpg, jsp, servlet or any other file
07: * resource that is part of the web application. You can change the filter-mapping element below
08: * in the web.xml file in include/not include different files from monitoring. Use JAMonAdmin.jsp
09: * to display any collected data.
10: *
11: <?xml version="1.0" encoding="UTF-8"?>
12:
13: <!DOCTYPE web-app
14: PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
15: "http://java.sun.com/dtd/web-app_2_3.dtd">
16:
17: <web-app>
18: <display-name>fdsapi</display-name>
19: <filter>
20: <filter-name>JAMonFilter</filter-name>
21: <filter-class>com.jamonapi.JAMonFilter</filter-class>
22: </filter>
23:
24: <filter-mapping>
25: <filter-name>JAMonFilter</filter-name>
26: <url-pattern>/*</url-pattern>
27: </filter-mapping>
28:
29: <!--
30: <servlet>
31: <servlet-name>demo</servlet-name>
32: <jsp-file>/demo.jsp</jsp-file>
33: </servlet>
34: -->
35:
36: </web-app>
37: */
38:
39: import java.io.IOException;
40: import javax.servlet.*;
41: import javax.servlet.http.*;
42:
43: public class JAMonFilter extends HttpServlet implements Filter {
44:
45: private static final long serialVersionUID = 1L;
46:
47: public void doFilter(ServletRequest request,
48: ServletResponse response, FilterChain filterChain)
49: throws IOException, ServletException {
50: Monitor allPages = MonitorFactory.start(new MonKeyImp(
51: "com.jamonapi.allPages", getURI(request), "ms."));
52: Monitor monitor = MonitorFactory.start(getURI(request));
53:
54: try {
55: filterChain.doFilter(request, response);
56: } finally {
57: monitor.stop();
58: allPages.stop();
59: }
60: }
61:
62: protected String getURI(ServletRequest request) {
63: if (request instanceof HttpServletRequest) {
64: return ((HttpServletRequest) request).getRequestURI();
65: } else {
66: return "Not an HttpServletRequest";
67: }
68: }
69:
70: private FilterConfig filterConfig = null;
71:
72: public void init(FilterConfig filterConfig) throws ServletException {
73: this .filterConfig = filterConfig;
74: }
75:
76: public void destroy() {
77: this.filterConfig = null;
78: }
79: }
|