The way we have been thinking about application servers is changing. The basics of developing a web application typically involves two steps:
- Building a web project whose final output is a web archive (WAR) file. This WAR file will contain the application code and optionally third party libraries, which are not part of Java EE.
- Deploying the artifact to an environment (local, test, prod) having the Java EE application server. The environment will have all the needed configurations applicable to it. There can be multiple WAR files deployed on a single JVM process.
Here's a logical view of a traditional WAR file deployment on a server: