Я не работал с ATG в течение нескольких лет, и вы, возможно, работаете с другой версией, чем я, но простой способ ответить на это - сказать, что сервлеты - это скорее концепция J2EE MVC, контроллер в этом случае, в то время как капли являются «контроллером» ATG. Шаблоны проектирования ATG не совсем MVC (в представлении, как правило, немного больше логики в представлении), но капли предназначены для многократного использования компонентов, которые представление (ваши JSP) используют для получения данных из модели (ваш xxxManager, xxxService, классы уровня репозитория и т. д.)
Например, если я работаю над страницей, предназначенной для отображения корзины покупок, я могу зарегистрировать сервлет "/ Cart" в моем файле web.xml в J2EE. Когда doGet вызывается для этого сервлета, я вызываю все компоненты модели, которые мне нужны для сбора данных о корзине, и использую RequestDispatcher для отправки этих данных в JSP. Вся моя логика модели / контроллера выполняется здесь, а затем отправляется для визуализации представлением.
В ATG вы склонны меньше полагаться на конфигурации web.xml и больше на компоненты, зарегистрированные и созданные Nucleus. Таким образом, вы можете создать свой cart.jsp и использовать такие теги, как, например, для захвата нужных вам данных. У вас может быть капелька, чтобы рассчитать текущую цену и отобразить ее, или применить рекламные акции к профилю и перечислить их. Каждый фрагмент данных, необходимый для страницы, можно использовать для сбора и отображения тега капли.
Можно сказать, что капли, как правило, находятся "на странице", а сервлеты - "между страницами".