docs: public void include(ServletRequest req, ServletResponse res) throws ServletException, IOException {
  
          if (LOG.isDebugEnabled()) {
              LOG.debug(
                  Messages.get().getBundle().key(
                      Messages.LOG_FLEXREQUESTDISPATCHER_INCLUDING_TARGET_2,
                      m_vfsTarget,
                      m_extTarget));
          }
  
          CmsFlexController controller = CmsFlexController.getController(req);
          CmsResource resource = null;
  
          if ((m_extTarget == null) && (controller != null)) {
              // check if the file exists in the VFS, if not set external target
              try {
                  resource = controller.getCmsObject().readResource(m_vfsTarget);
              } catch (CmsVfsResourceNotFoundException e) {
                  // file not found in VFS, treat it as external file
                  m_extTarget = m_vfsTarget;
              } catch (CmsException e) {
                  // if other OpenCms exception occurred we are in trouble
                  throw new ServletException(
                      Messages.get().getBundle().key(Messages.ERR_FLEXREQUESTDISPATCHER_VFS_ACCESS_EXCEPTION_0),
                      e);
              }
          }
  
          if ((m_extTarget != null) || (controller == null)) {
              includeExternal(req, res);
          } else if (controller.isForwardMode()) {
              includeInternalNoCache(req, res, controller, controller.getCmsObject(), resource);
          } else {
              includeInternalWithCache(req, res, controller, controller.getCmsObject(), resource);
          }
      }