2.1 JEE (Java Enterprise Edition)
A especificação JEE foi criada com a finalidade de desenvolver uma API e um ambiente de execução para facilitar o desenvolvimento e o funcionamento de softwares voltados para ambientes distribuídos. A especificação JEE é considerada uma extensão da especificação JSE (Java Standard Edition), uma vez que amplia os seus recursos de modo a tornar o seu uso simplificado.
Todas as linguagens de programação possuem uma API própria que auxilia o desenvolvedor a construir um software. Por exemplo, a linguagem de programação JAVA é uma das mais usadas mundialmente pelo simples fato de possuir uma API extremamente ampla e diversificada. Classes como String, Math, Scanner, System, dentre inúmeras outras ferramentas são exemplos de recursos presentes em sua API.
O ambiente de execução é denominado de Servlet Container (container web) pela especificação JEE.
Um Servlet Container, por exemplo, é capaz de gerenciar o ciclo de vida de um Servlet, o estado de seus objetos, gerenciamento de memória, conexões com banco de dados, transações, serviços de nomes, segurança, tolerância a falhas, integração, clustering, alta disponibilidade, confiabilidade, web services, dentre outros.