使用Filter记录日志、来访IP、URL和页面执行时间

12/23/2007来源:J2EE/J2ME教程人气:7863

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public final class LoggingFilter implements Filter 
{
  PRivate FilterConfig filterConfig = null;

  public void doFilter(ServletRequest request, ServletResponse response,
    FilterChain chain)
    throws IOException, ServletException 
  {

    long start = System.currentTimeMillis();
    String address =  request.getRemoteAddr();
    String file = ((HttpServletRequest) request).getRequestURI();
    chain.doFilter(request, response);

    filterConfig.getServletContext().log(
        "User access! " +      
        " User ip: " + address +      
        " Resource: " + file + 
        " Milliseconds used: " + (System.currentTimeMillis() - start) 
    );
  }

  public void destroy() { }

  public void init(FilterConfig filterConfig) {
    this.filterConfig = filterConfig;
  }
}

(出处:http://www.knowsky.com)