code: @Override
  	public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
  		final String methodName = method.getName();
  		// != for perf (strings interned: != is ok)
  		if ("include" != methodName && "forward" != methodName) { // NOPMD
  			return method.invoke(requestDispatcher, args);
  		}
  		boolean systemError = false;
  		try {
  			final String pathWithoutParameters;
  			final int indexOf = path.indexOf('?');
  			if (indexOf != -1) {
  				pathWithoutParameters = path.substring(0, indexOf);
  			} else {
  				pathWithoutParameters = path;
  			}
  			JSP_COUNTER.bindContextIncludingCpu(pathWithoutParameters);
  			return method.invoke(requestDispatcher, args);
  		} catch (final InvocationTargetException e) {
  			if (e.getCause() instanceof Error) {
  				// on catche Error pour avoir les erreurs systèmes
  				// mais pas Exception qui sont fonctionnelles en général
  				systemError = true;
  			}
  			throw e;
  		} finally {
  			// on enregistre la requête dans les statistiques
  			JSP_COUNTER.addRequestForCurrentContext(systemError);
  		}
  	}
docs: Intercepte une exécution de méthode sur une façade.
  @param proxy Object
  @param method Method
  @param args Object[]
  @return Object
  @throws Throwable t