Desenvolva Servlets quando:
1)Precisar de acesso a um servico especifico via protocolo http somente e que o desenvolvimento deste servlet nao se complique muito… ou seja… nao use para coisas mirabolantes como passar uma “rowset” de elementos para o cliente…
Arquitetura que conecta ao seu sistema nao suportar porcaria nenhuma… que é o caso de um Delphi 7 ou VB 6… vc vai precisar de um servlet para conversar com eles… visto que nao entendem WebServices atuais e quase nenhum algoritimo mais bem projetadinho… ae vc fica na base de um XML REST que vc ganha Mais…
Desenvolva EJB quando:
Sua aplicação puder ter a possibilidade de ser distribuida
Sua aplicação tem a possibilidade de usar ou usa WebServices
Sua aplicação cliente é feita em Java
Sua aplicação transmite dados complexos (pojos) e recupera informacoes complexas tmb…