您的位置:首页 > 编程语言 > Java开发

Java Servlet Filter实现Web页面执行时间过滤器

2009-11-24 09:55 330 查看
以下是本人在项目中用Servlet Filter实现的Web页面执行时间过滤器:

package com.sunfairs.filter;

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.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class TimerFilter implements Filter {
private static final Log log = LogFactory.getLog(TimerFilter.class);
public static final String DEFAULT_TIMER_ATTRIBUTE = "sunfairs.shop.jsp.timer";
private String key;

public void destroy() {

}

public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest httpRequest = (HttpServletRequest) request;
Timer timer = new Timer();
timer.start();
request.setAttribute(key, timer);
chain.doFilter(request, response);
timer.stop();
}

public void init(FilterConfig config) throws ServletException {
if(config.getInitParameter("key")!=null){
this.key = config.getInitParameter("key");
}
else{
this.key = DEFAULT_TIMER_ATTRIBUTE;
}
}

public static class Timer{
private long time;

public Timer(){
this.time = 0l;
}

public long getTime() {
return time;
}

public void start(){
this.time = System.currentTimeMillis();
}

public void stop(){
this.time = System.currentTimeMillis() - this.time;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: