Когда контейнер загружает сервлет, нет, ему будет все равно, откуда он взялся.Тем не менее, разные контейнеры обрабатывают это по-разному, когда речь идет о таких вещах, как динамическая загрузка и тому подобное, но я бы не стал сильно беспокоиться об этом.
Сервлеты низкого уровня.Это базовая абстракция, на которой основаны все остальные веб-фреймворки Java EE.В «реальном мире» большую часть времени люди будут использовать некую платформу более высокого уровня, а не сырой сервлет.
Тем не менее, сервлеты все еще полезны, когда вы действительно хотите добраться до этого «голого металла»Интерфейс для HTTP-запроса (также как и для Servlets).Для простых вещей просто написать сервлет, чем создать кучу фреймворков и т. Д.
Что касается контейнеров, то в основном различие заключается в том, что сервер Java EE отличается от контейнера или сервера сервлетов.Tomcat НЕ является сервером Java EE, он обрабатывает только веб-часть стека Java EE.Чтобы запутать вещи, Java EE 6 теперь имеет «веб-профиль», который по сути является стеком сервлетов, но если раньше контейнер сервлетов нельзя было рассматривать как «сервер Java EE», то теперь он может быть «сервером Java EE».- Веб-профиль ".
Да, я тоже не знаю, что это значит.
Ключевое отличие состоит в том, что контейнеры сервлетов (Tomcat, Jetty, Resin) не поставляются в комплекте состальная часть стека Java EE (в частности, EJB), но имеет несколько других компонентов, которые являются частью общего стека Java EE.
Если вы только переходите к Java EE, я бы выбрал полную лодкуКонтейнер (как Glassfish), так как а) вы можете, б) это легко (GF тривиально настроить) и, в) вам не придется во-вторых угадывать, что входит или не входит в ваш контейнер, по сравнению с тем, что вы читаетео требует.У GF будет «все», что есть Java EE.Например, у него не будет Spring, так как это не Java EE, но если он есть в вашей книге по Java EE или статье на веб-сайте, GF будет иметь его.
Позже вы сможете выбрать, когда вы захотите полный комплектили просто хотите использовать что-то вроде Tomcat или нет.