您的位置:首页 > 其它

servlet 的filter,日志文件记录执行时间

2014-12-07 21:59 363 查看
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;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* 执行时间过滤器
*/
public class ProcessTimeFilter implements Filter {
protected final Logger log = LoggerFactory
.getLogger(ProcessTimeFilter.class);
/**
* 请求执行开始时间
*/
public static final String START_TIME = "startTime";

public void destroy() {
}

public void doFilter(ServletRequest req, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
long time = System.currentTimeMillis();
request.setAttribute(START_TIME, time);
chain.doFilter(request, response);
time = System.currentTimeMillis() - time;
log.debug("process in {} ms: {}", time, request.getRequestURI());
}

public void init(FilterConfig arg0) throws ServletException {
}
}

web.xml配置
<filter>
<filter-name>processTime</filter-name>
<filter-class>ProcessTimeFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>processTime</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐