@Override
    public void before(Object target, int apiId, Object[] args) {
        if (isDebug) {
            logger.beforeInterceptor(target, args);
        }

        try {
            final HttpServletRequest request = toHttpServletRequest(args);
            if (request.getDispatcherType() == DispatcherType.ASYNC || request.getDispatcherType() == DispatcherType.ERROR) {
                if (isDebug) {
                    logger.debug("Skip async servlet request event. isAsyncStarted={}, dispatcherType={}", request.isAsyncStarted(), request.getDispatcherType());
                }
                return;
            }
            MethodDescriptor methodDescriptor = MethodDescriptorHelper.apiId(apiId);
            this.servletRequestListener.initialized(request, JettyConstants.JETTY_METHOD, methodDescriptor);
            final HttpServletResponse response = toHttpServletResponse(args);
            this.servletResponseListener.initialized(response, JettyConstants.JETTY_METHOD, methodDescriptor); //must after request listener due to trace block begin
        } catch (Throwable t) {
            logger.info("Failed to servlet request event handle.", t);
        }
    }
@author Chaein Jung
@author jaehong.kim
agent-module/plugins/jetty/src/main/java/com/navercorp/pinpoint/plugin/jetty/javax/interceptor/AbstractServerHandleInterceptor.java