Mega Code Archive

 
Categories / Java Tutorial / Servlet
 

Simple filter for measuring servlet response times

import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; public class ResponseTimerFilter implements Filter {   protected FilterConfig config;   public void init(FilterConfig config) throws ServletException {     this.config = config;   }   public void destroy() {   }   public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)       throws ServletException, IOException {     long startTime = System.currentTimeMillis();     chain.doFilter(request, response);     long elapsed = System.currentTimeMillis() - startTime;     String name = "servlet";     if (request instanceof HttpServletRequest) {       name = ((HttpServletRequest) request).getRequestURI();     }     config.getServletContext().log(name + " took " + elapsed + " ms");   } } <filter>   <filter-name>Timing Filter</filter-name>   <filter-class>com.omh.filters.ResponseTimerFilter</filter-class> </filter> <filter-mapping>   <filter-name>Timing Filter</filter-name>   <url-pattern>/*</url-pattern> </filter-mapping> */