You are right, in the flexible environment a service is provided by a deployed war file, distinguished from the other services by sub-domains, in a way similar to:
https://version-dot-service-dot-app-id.appspot.com
http://version.service.app-id.my-custom-domain.com
Each service enjoys its own app.yaml file, and if there are more services prepared for deployment, all these different app.yaml files can be placed in the same directory. More details on the way these services are accessed in the “How Requests are Routed” online document.
Your questions are covered for the most part in the in the “Quickstart for Java in the App Engine Flexible Environment” document. Related information can be found in “The Java 8 / Jetty 9 Runtime” and “The Java 8 Runtime”.