创建一个,
javax.servlet.Filter
并将其映射到所有其他过滤器上方的web.xml中。在doFilter(..)
您的客户代码周围chain.doFilter(request, response)
使用
System.currentTimeMillis
或System.nanoTime()
(更准确)或perf4j。
这将显示服务器生成响应花费了多少时间。如果要在客户端看到页面的完整加载时间,请在firefox上安装FireBug。
关于a
Filter操作方式的注释。请求 进来 ,并作为参数传递给传递 第一过滤器
中的链。现在,筛选器可以决定继续执行或停止执行。如果选择继续,它将调用
.chain.doFilter(..)。现在,针对该资源的所有定义的过滤器都会发生同样的情况,最终流到达目标
Servlet(在本例中为
DispatcherServlet)。当
doGet(..)/
doPost(..)方法完成后,程序流,在逻辑上,返回给调用者-即,在链中的最后一个过滤器。完成后,程序流程将返回上面的流程,直到到达第一个已调用的过滤器为止
chain.doFilter(..)。那是您进行时序计算的那一行。当第一个过滤器返回时,流程进入servlet容器内部,不久响应被发送到浏览器。因此,您的代码将是:
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) { long start = System.nanoTime(); chain.doFilter(request, response); long end = System.nanoTime(); // log end-start}


