Java 拦截Web应用程序中的AD端

Java 拦截Web应用程序中的AD端,java,multithreading,jakarta-ee,Java,Multithreading,Jakarta Ee,给定下面的代码,我如何在线程结束时记录重新请求时间,以获得最后一次请求时间 @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException { new ClientRequestContextHolder(); logger.info("request filt

给定下面的代码,我如何在线程结束时记录重新请求时间,以获得最后一次请求时间

@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException {
    new ClientRequestContextHolder();
    logger.info("request filter ("+ ClientRequestContextHolder.getContext().getAttribute("uniqueId") +") started");
    filterChain.doFilter(request, response);
    logger.info("request filter ("+ ClientRequestContextHolder.getContext().getAttribute("uniqueId") +") finished");
    long st = (long)ClientRequestContextHolder.getContext().getAttribute("request_start");
    logger.info("RequestTime: " + customFormat("###,###.###",(System.nanoTime() - st)) + "ns");

}
我当前的输出如下所示

INFO : com.app.context.ClientRequestContextHolder - initialized
INFO : com.app.filters.ClientRequestFilter - request filter (34) started
INFO : com.app.filters.ClientRequestFilter - request filter (34) started
INFO : com.app.filters.ClientRequestFilter - request filter (34) finished
INFO : com.app.filters.ClientRequestFilter - RequestTime: 7,958,694ns
INFO : com.app.filters.ClientRequestFilter - request filter (34) started
INFO : com.app.filters.ClientRequestFilter - request filter (34) started
INFO : com.app.filters.ClientRequestFilter - request filter (34) started
INFO : com.app.filters.ClientRequestFilter - request filter (34) finished
INFO : com.app.filters.ClientRequestFilter - RequestTime: 12,657,404ns
INFO : com.app.filters.ClientRequestFilter - request filter (34) started
INFO : com.app.filters.ClientRequestFilter - request filter (34) finished
INFO : com.app.filters.ClientRequestFilter - RequestTime: 13,942,554ns
INFO : com.app.filters.ClientRequestFilter - request filter (34) finished
INFO : com.app.filters.ClientRequestFilter - RequestTime: 14,579,297ns
INFO : com.app.filters.ClientRequestFilter - request filter (34) started
INFO : com.app.filters.ClientRequestFilter - request filter (34) finished
INFO : com.app.filters.ClientRequestFilter - RequestTime: 16,428,276ns
INFO : com.app.filters.ClientRequestFilter - request filter (34) started
INFO : com.app.filters.ClientRequestFilter - request filter (34) finished
INFO : com.app.filters.ClientRequestFilter - RequestTime: 17,329,786ns
INFO : com.app.filters.ClientRequestFilter - request filter (34) started
INFO : com.app.filters.ClientRequestFilter - request filter (34) finished
INFO : com.app.filters.ClientRequestFilter - RequestTime: 42,787,490ns
INFO : com.app.filters.ClientRequestFilter - request filter (34) finished
INFO : com.app.filters.ClientRequestFilter - RequestTime: 43,226,233ns
INFO : com.app.filters.ClientRequestFilter - request filter (34) finished
INFO : com.app.filters.ClientRequestFilter - RequestTime: 45,455,568ns
明白了


因为filterchaing是递归的,所以我在它上面添加了一个深度控件。最后,如果deep为0,则我计算打印结果。

您是说此代码的一次执行导致以下输出?这些是正在轮询的其他web资源