Серверы приложений предоставляют более широкие возможности по сравнению с контейнерами сервлетов. Они включают в себя:
- Поддержку распределенных транзакций (JTA): Управление транзакциями, охватывающими несколько ресурсов (базы данных, очереди сообщений).
- Управление жизненным циклом EJB (Enterprise JavaBeans): Компоненты для создания масштабируемых, распределенных и надежных корпоративных приложений.
- Поддержку JMS (Java Message Service): Интеграция систем через асинхронные сообщения.
- Интеграцию с JNDI (Java Naming and Directory Interface): Централизованное управление именованием и доступом к ресурсам.
- Управление безопасностью (JAAS - Java Authentication and Authorization Service): Единая модель аутентификации и авторизации для всех компонентов приложения.
- Поддержку других технологий корпоративного уровня, таких как JCA (Java EE Connector Architecture) для интеграции с legacy-системами, и Websocket для двунаправленной связи.
Контейнеры сервлетов в основном отвечают за обработку HTTP-запросов и управление жизненным циклом сервлетов и JSP. Сервер приложений включает в себя контейнер сервлетов, добавляя к нему другие необходимые сервисы для построения полноценных корпоративных приложений.