📄 responsetimefilter.java
字号:
package ch17;
import java.io.IOException;
import javax.servlet.*;
import javax.servlet.http.*;
/**
* 计算并记录请求的响应时间到日志文件
*/
public class ResponseTimeFilter implements Filter {
protected FilterConfig config;
public void init(FilterConfig filterConfig) throws ServletException {
this.config = filterConfig;
}
// 需要重点实现的方法
public void doFilter(
ServletRequest request,
ServletResponse response,
FilterChain chain)
throws IOException, ServletException {
// 响应开始时间
long startTime = System.currentTimeMillis();
// 将请求转发给过滤器链上其他对象
chain.doFilter(request, response);
// 计算请求的响应时间
long elapsed = System.currentTimeMillis() - startTime;
String name = "default";
if (request instanceof HttpServletRequest) {
name = ((HttpServletRequest) request).getRequestURI();
}
// 将请求的响应时间记录到日志文件
config.getServletContext().log(name + " took " + elapsed + " ms");
}
public void destroy() {
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -