code: @Override
      public void init(ServletConfig pServletConfig) throws ServletException {
          super.init(pServletConfig);
  
          Configuration config = initConfig(pServletConfig);
  
          // Create a log handler early in the lifecycle, but not too early
          String logHandlerClass =  config.get(ConfigKey.LOGHANDLER_CLASS);
          logHandler = logHandlerClass != null ?
                  (LogHandler) ClassUtil.newInstance(logHandlerClass) :
                  createLogHandler(pServletConfig,Boolean.valueOf(config.get(ConfigKey.DEBUG)));
  
          // Different HTTP request handlers
          httpGetHandler = newGetHttpRequestHandler();
          httpPostHandler = newPostHttpRequestHandler();
  
          if (restrictor == null) {
              restrictor = createRestrictor(config);
          } else {
              logHandler.info("Using custom access restriction provided by " + restrictor);
          }
          configMimeType = config.get(ConfigKey.MIME_TYPE);
  
          addJsr160DispatcherIfExternallyConfigured(config);
          backendManager = new BackendManager(config, logHandler, restrictor);
  
          requestHandler = new HttpRequestHandler(config, backendManager, logHandler);
          allowDnsReverseLookup = config.getAsBoolean(ConfigKey.ALLOW_DNS_REVERSE_LOOKUP);
          streamingEnabled = config.getAsBoolean(ConfigKey.STREAMING);
  
          initDiscoveryMulticast(config);
      }
docs: Initialize the backend systems, the log handler and the restrictor. A subclass can tune
  this step by overriding {@link #createRestrictor(Configuration)}} and {@link #createLogHandler(ServletConfig, boolean)}
  
  @param pServletConfig servlet configuration