J2EE のアプリケーションモデルでは、エンタープライズアプリケーションを 3 つの基本部品 (コンポーネント、コンテナ、およびコネクタ) に分割します。アプリケーション開発者が主に扱うのはコンポーネントであり、システムベンダーは、複雑さを隠蔽し移植性を促進するコンテナおよびコネクタを実装します。コンテナはクライアントとコンポーネントの間を仲介し、トランザクションサポートやリソースプーリングなどのサービスをその両者に透過的に提供します。コンテナの仲介により、コンポーネントの動作の多くを、プログラムコードで指定するのではなく配備時に指定することが可能になります。
Application Server では、各サーバーインスタンスには 2 種類のコンテナ (Web コンテナと EJB コンテナ) が含まれます。コンテナは、J2EE コンポーネントのセキュリティーやトランザクション管理などのサービスを提供する実行時環境です。JavaServer Pages (JSP) やサーブレットなどの Web コンポーネントは、Web コンテナ内で実行されます。Enterprise JavaBeans は EJB コンテナ内で実行されます。