что такое артефакт tomcat
Русские Блоги
Проект конфигурации идеи, модули, артефакты, Tomcat от Guettp
1. Определенно установить Tomcat на компьютере локально; посетите волосы, посмотрите, можете ли вы посетить
2. Перепечатано из количества, спасибо
Моя идея конфигурация Tomcat Notes :
A. Идея настроила TOMCAT При доступе к домашней странице localhost по умолчанию недопустимо, вам нужно установить (я не знаю, как его настроить); но это не влияет на него.
б. При запуске Tomcat отчет 1099 порта занят:
Обходной путь: закрыть проект; выключить процесс Java в диспетчере ресурсов;
1, первый настроек проекта, модуль, артефакт
Откройте структуру проекта
2) Настроить проект
3) Настройте модули
3) Настроить артефакты
Другие не устанавливаются, прямо в порядке; (в любом случае, я могу бежать)
5) На самом деле, пакет войны также может быть освобожден, непосредственно под Tomcat
Скопируйте пакет WAR в Tomcat Установочный путь WebApps, переименованные в root
Дебаты об отличном сервере приложений Java c Tomcat, Jboss, GlassFish, Jetty и Liberty Profile. Часть вторая
Всем доброго! Как и обещали, вторая часть перевода статьи по теме Java EE. Первую часть можно увидеть тут.
ОПЕРАЦИЯ ПОД ПРИКРЫТИЕМ
Надеемся, вы не только сейчас поняли, что бюджет равен 0, и вообще вас покорил WebLogic 😉 До сих пор, мы рассматривали темы, значимые на начальных этапах, во время изучения серверов приложений. Теперь же посмотрим чуть глубже на каждый сервер, чтобы понять, отвечает ли он реальным задачам разработчика:
Настоящие показатели производительности
Знали ли вы, что Lamborghini Gallardo LP570-4 Superleggra 2011 г. выпуска разгоняется от 0 до 60 км/ч всего за 2.8 с, а Dodge Viper Hennessey Venom GT делает это за целых 2.9 с? Думаю, водителям Viper ооочень скучно ждать, пока их машина разгоняется до 60!
Не будем придираться, 0.1 секунды не изменят мир, и среднестатистический водитель не заметит разницы. Для них всех они будут разгоняться идиотски-супер-быстро.
Аналогично, разработчик не будет выбирать сервер приложений за то, что он запускается на 0.2 секунды быстрее, да или даже на полсекунды — впечатления от этого не изменятся. Поэтому мы будем оценивать серверы на основании полноценного опыта, получаемого разработчиками в этом разделе. Во-первых, приложения, которые мы используем в тестах на производительность, проверены времени: Spring PetClinic, на котором мы показывает демо JRebel, и приложение Jenkins.
PetClinic — веб-приложение, использующее Сервлеты, JSP и кучу POJO. Там же есть Hibernate, JPA, интеграционный код JDBC и HypersonicSQL DB. Приложение весит не больше 20MB. Jenkins в представлении не нуждается, очень популярный CI фреймворк, которым с удовольствием пользуются многие. Веб-приложение занимает чуть меньше 55MB, содержит spring фреймворк и множество веб артефактов.
Все тесты проводились на одном и том же ноутбуке MacBook Air. Характеристики: 8GB RAM (1600 MHz DDR3), 2GHz Intel Core i7 CPU. Сам HDD — 512 GB SSD, OSX 10.8.2. Используемый JRE:
Начнем со скорости запуска и перезапуска Мы тестируем пустой сервер, сервер с развернутым приложением PetClinic и сервер с установленным приложением Jenkins. И вот результаты:
**примечание — все результаты указаны в секундах**
Можно заметить, что серверы Liberty Profile и TomCat в два раза быстрее, чем серверы GlassFish и (на удивление) Jetty. Но все результаты более-менее в рамках приемлемых значений. Когда же мы запускаем сервер с приложением, все становится интересней: Liberty Profile продолжает удерживать низкое значение, а время, необходимое другим серверам, резко увеличивается. По выделенным значениям можно понять, что Liberty Profile всегда запускается в 2-4 раза быстрее конкурентов.
Если сравнивать каждое значение с лучшим в категории, чистую победу одерживает Liberty Profile, а неожиданно разочаровывают Jetty и GlassFish. JBoss старается держать позиции, но запуск приложения jenkins показывает плохой результат — на 11-15 секунд медленнее, чем Liberty Profile.
Посмотрим на скорость развертывания в секундах, на примерах приложений petclinic и jenkins на каждом из серверов.
Можно увидеть разительное отличие Liberty Profile от остальных серверов, некоторые из которых он опережает в 6 раз.
Снова видим, что Liberty Profile опережает своих конкурентов, а JBoss опять не поладил с приложением Jenkins. В остальном, значения серверов схожи.
Что же делает Liberty Profile, чего не удается другим серверам? Даже точнее, чего Liberty Profile не делает… Стоит взглянуть на время инициализации приложений, чтобы лучше в этом разобраться.
Большая часть серверов показывает достойное время, в то время как у Liberty Profile обнаруживается ленивая модель инициализации. Заметно, что при первом использовании очень много усилий по запуску/деплою направлены на более поздние этапы.
В среднем, видим, что JBoss и Tomcat показывают отличные значения, Jetty и GlassFish не отстают, а Liberty Profile поражает невыносимой инициализацией, которая длится на 14.5 секунд дольше среднего! Ай! Очевидно, наши серверы делают разные вещи в разное время, поэтому объединим эти метрики, чтобы увидеть полную картину:
Здесь мы видим, что значения для приложения petclinic, если смотреть в целом, не сильно различаются. Tomcat, Glassfish и Jetty сопоставимы по времени для двух приложений, с разницей всего в несколько секунд, в то время как Liberty Profile и JBoss тратят в два раза больше времени на приложение jenkins. Отметим, что Liberty Profile требуется 25 секунд на задачи, которые выполняются Tomcat за 11-12 секунд.
Значения JBoss не выглядят критичными с jenkins, а Liberty Profile есть к чему стремиться. Tomcat — победитель этой категории, затмивший своих конкурентов почти во всех задачах.
Функционал и соответствие открытым стандартам
Сам Jetty, по большей части, представляет собой контейнер и поэтому в нем отсутствуют многие компоненты, необходимые для работы более серьезных приложений. Но для таких целей существует дистрибутив Jetty под названием “Hightide”. Дистрибутива для Jetty 9 пока нет, но можно воспользоваться Hightide для Jetty 8. Jetty Hightide включает в себя JNDI, JMX, аннотации и интеграции JEE. Даже несмотря на все эти крутые фичи, Hightide весит всего лишь 24MB. Jetty также можно встроить в веб-приложение. Так создается выполняемое веб-приложение, что во многом возможно благодаря размерам кодовой базы Jetty.
Причина: Включает WebSockets, Jetty Continuations, спецификацию Servlet 3.1 (почти готовая), но почти ничего кроме этого.
Функционал Tomcat не богат, и этим вынуждает разработчиков создавать собственные фичи на базе Tomcat. Но теперь появилась новая надежда в виде apache-проекта TomEE, выполняющего всю интеграционную работу и обеспечивая “полный Apache стек, направленный на сертификацию Java EE 6 Web Profile, в которой лидирует Tomcat”. В последней части заключается суть — проект стремится поддерживать опыт и производительность Tomcat на высшем уровне, предоставляя дополнительный функционал, который многие пользователи хотели бы видеть в оригинальной версии.
Из наиболее важных компонентов TomEE Web Profile (35.9MB) стоит отметить поддержку Bean Validation, CDI, EJB, JPA, JSF и JTA. Версия TomEE+ (55.2 MB) дополнительно включает поддержку Connector, JAX-RS, JAX-WS, JMS. Эти функции используют базовую инфраструктуру Tomcat, например, сервлеты теперь имеют доступ к JPA и Transactions, а EJB к Security. Любой ресурс, предоставленный Tomcat, скажем, из context.xml, можно найти любым управляемым компонентом системы. Круто! Как и в Jetty, функционал Tomcat довольно скудный, чтобы соответствовать требования Web Profile, но его достаточно для соответствия обычным веб-спецификациям. Вы можете выбрать добавляемые элементы самостоятельно, например, OpenEJB или Open JBA, но ограничиваться только ими необязательно.
Причина: Бедный функционал, поэтому большинство предпочитает использовать Tomcat только в качестве базы.
Оценка:
Причина: Улучшает Web Profile с помощью оттестированных Open Source компонентов. Здорово!
JBoss AS7 полностью совместим с EE6, и мы имеем в виду Full Profile: EJB, CDI, JPA, JSF, Jax-RS, Bean validation и тд. Он поддерживает OSGI 4.2, а в будущем и 4.3. С точки зрения Open Source совместимости, JBoss полностью совместим с Java EE. Сложно что-то добавить про JAXB, EJB, CDI — в любом случае все будет работать изящно. В то же время он совместим с OSGi версии 4.2, что позволяет использовать лучшее от обоих миров.
Причина: Полный EE6 профиль, поддержка OSGi. Круто!
Liberty Profile
Версия 8.5 поддерживает Web Profile не полностью — не хватает поддержки EJB и CDI. Зато есть поддержка приложений OSGi, на случай, если это ваша любимая технология.
Тем не менее, уже в бета-версии Liberty Profile 2013 года поддержка расширена и включает EJB, CDI, WebSevices и, что интересно, расширения продукта, что позволяет пользователям создавать собственный “функционал” в файле server.xml.
Причина: Поддержка Web Profile, OSGi, возможность добавлять собственный функционал.
Легкий раздел для сравнения для GlassFish — обладателя эталонной имплементации Java EE. Благодаря поддержка Open Source, как и JBoss, он полностью совместим с сервером Java EE, повторимся, это включает полный профиль: EJB, CDI, JPA, JSF, Jax-RS, Bean validation и тд. Кроме того, есть поддержка OSGi.
Причина: Полная поддержка JEE и OSGi. Круто!
Администрирование и Управление/UI
Пожалуй, самый большой недостаток — отсутствие консоли управления, к который вы могли привыкнуть, используя другие серверы, например Tomcat (Tomcat Manager) или JBoss AS. Поэтому управление большими продуктовыми средами может быть слишком сложным, но, конечно, не в случае, когда вы пользуетесь инструментами вроде LiveRebel!
Причина: Управление возможно только с помощью скриптов/прямого изменения xml.
Tomcat предлагает приложение для администрирования под названием manager app. Но для начала Вам нужно настроить файл conf/tomcat-users.xml, чтобы обеспечить доступ к ролям (хорошая фича, которая открывает доступ к разным ролям для разных уровней администрирования). В manager app нет ничего особенного, просто базовый набор действий: от деплоя и изменения приложения до указания свойств ОС и JVM.
Причина: Простой, ограниченный функционал, консоль в стиле 80х, нужно настраивать xml для добавления пользователя еще до использования консоли управления.
Веб-консоль выглядит прилично, особенно в сравнении с приложением Tomcat. В ней можно настраивать источники данных, веб-серверы, OSGi, параметры JVM, JPA с транзакциями и многое другое. Большой выбор и высокая скорость работы консоли. Если JBoss не удалось при перезапуске применить изменения, внесенные в веб-консоль, он выдаст сообщение, оповещающее об этом, чтобы вы не гадали, почему ничего не поменялось.
Причина: Высокое качество администрирования, информация на перезагрузке/перезапуске, нужно настроить пользователей перед использованием, гибкая настройка функционала, современная.
Немного разочаровывает. В Liberty Profile нет административной консоли для обновления конфигурации сервера, установки приложений и тд, так что вы застрянете в редакторе eclipse, обновляя server.xml.
Есть веб-приложение под названием Liberty Profile Admin UI Tech Preview, доступное для бета-загрузки. На первый взгляд, оно обладает только предельно базовым функционалом, выглядит и ощущается как мобильное приложение, что не очень подходит для браузерного доступа.
Причина: Ограниченная поддержка в плохом техническом превью, неподходящий для браузера формат UI, интерфейс инструмента Eclipse значительно лучше, но требует использования Eclipse, что плохо для удаленных серверов.
GlassFish предлагает два способа управления сервером или кластером серверов: утилита asadmin или веб-версия административной консоли, которая по умолчанию доступна в порте 4848 и представляет собой простой и дружелюбный инструмент для внесения серверных изменений. Для изменения значения HTTP порта нужно обновить слушателя сети. GlassFish использует сетевых слушателей для соединения с внешним миром, в том числе для HTTP соединений. Самый простой способ изменить HTTP порт лежит через административную веб-консоль:
Вау, это было просто! Сервер GlassFish выглядит большим и промышленным, но его модульная архитектура позволяет вносить почти все изменения без перезапуска! Мы сохранили новое значение HTTP порта и теперь оно работает. Можно создавать разные конфигурации и применять их на разные серверы или кластеры. Очень DevOps-направленный способ, на мой взгляд.
Причина: Чистая административная консоль, без чрезмерных сложностей, гибкая настройка функционала, возможно чуть устаревшая, но недостаточно для снижения оценки.
Все серверы, о которых здесь идет речь, являются бесплатными для использования в среде разработки. Поэтому не должно удивлять, что стоимость — не просто изначальные затраты в долларах. Нужно помнить о поддержке поставщика и/или сообщества в случаях, когда что-то идет не так, времени и силах, потраченных на инфраструктуру, включая улучшение функционала на сервере приложений, тестирование и будущие обновления. Ниже представлен взгляд на стоимость каждого сервера (минимальные цены взяты с учетом минимальных настроек):
$$$ — эти серверы взимают плату за использование в производстве, но это не та вещь, которую вы покупаете в супермаркете, поэтому их структура ценообразования может вызвать головную боль. Ориентир по цене был добавлен там, где это оказалось возможным, но для тех, у кого остались вопросы по среде, мы добавили ссылки с ценами на продукт, вместо того, чтобы писать вводящие в заблуждение числа.
Jetty совсем невесомый, поэтому все что вы прикрутите к нему будет поддерживаться вашей командой фреймворка. Hightide в Jetty 9 предлагает больше функций, чем может пригодиться. Jetty 9 (так же как и 7 и 8) обладает двойной лицензией Apache License 2.0 и Eclipse Public License 1.0. Он является бесплатным для коммерческого использования и распространяется на условиях любой лицензии, за исключением случаев, указанных в файле NOTICE.
Причина: Лицензия отличная и бесплатная! Что еще можно просить!
JBoss AS — open-source продукт, лицензированный под LGPL, поэтому его можно использовать и в разработке, и в производстве. А в связи с его полным EE6 профилем, многие вещи будут работать лучше, чем самодельный суп из библиотек для поддержки EE стека. А если вы предпочитаете еще более стабильные релизы и наличие поддержки, можно выбрать EAP распространение. Стоимость JBoss EAP зависит от количества CPU в год.
Причина: Бесплатный для разработки, но официальная поддержка платная.
В IBM все давно упаковано, отправлено и оттестировано, поэтому обслуживание необходимо минимальное. А если вы купите и решите развертывать в производство, у вас всегда будет возможность обратиться в поддержку, если что-то пойдет не так. Прочитав лицензию от начала и до конца, во время установки, дважды, вы узнаете, что не существует лицензии, позволяющей использовать Liberty Profile в целях любительской разработки. Запустить сервер приложений для личного проекта не удастся, потому что лицензия Liberty Profile этого не позволяет: о( Тем не менее, это не должно на многое повлиять, потому что в этом обзоре мы смотрим на все с точки зрения разработчика.
Причина: Лицензия недостаточно гибкая для хобби-использования вне некоммерческой разработки, но подходит для разработчиков, бесплатная в этих целях.
GlassFish (Open Source Edition)
GlassFish Open Source Edition обладает лицензией CDDL, то есть он бесплатный для использования в разработке и производстве. CDDL лицензия дает больше свободы, чем лицензии, основанные на GPL и BSD, а значит пользоваться GlassFish безопасно и в серьезных проектах. При желании получить больше поддержки и быстрых багофиксов, можно перейти на Oracle GlassFish Server, обладающий лучшими инструментами управления. GlassFish обладает полной имплементацией JEE, и поэтому не требует чрезмерного обслуживания, как в случаях с Tomcat и Jetty.
Причина: В бесплатной версии есть почти все, что нужно, с дружелюбной лицензией и совершенно бесплаааааатно!
Как всегда ждём комментарии, вопросы тут или на нашем Дне открытых дверей.
Что такое Apache Tomcat?
Введение в Apache Tomcat
Apache tomcat может быть определен как веб-сервер (который также называется веб-контейнером / контейнером сервлетов), который обрабатывает сервлеты, JSP (путем внутреннего преобразования вашего JSP в сервлеты внутри), а также отображает JSP.
Обратите внимание, что веб-сервер отличается от сервера приложений. Давайте поймем, как эти двое отличаются друг от друга.
Почему Tomcat называется веб-сервером, а не сервером приложений?
Почему нам нужно использовать Apache Tomcat?
Как работает Apache Tomcat?
Tomcat широко используется веб-разработчиками при разработке веб-приложений. С точки зрения высокого уровня, Apache Tomcat отвечает за обеспечение среды выполнения для сервлетов. Это обеспечивает среду, в которой можно запустить их Java-код.
В более подробном аспекте tomcat отвечает за:
С момента, когда класс сервлета загружается, до точки, в которой он выгружен, сервлет отвечает за обработку клиентского запроса, выполняя различные методы его жизненного цикла и предоставляя необходимый ответ обратно tomcat в виде страниц JSP. Затем Tomcat возвращает ответ клиенту, отрисовывая JSP.
Что происходит в жизненном цикле сервлетов?
Жизненный цикл сервлета состоит из трех основных методов:
1) init () : этот метод используется для инициализации сервлета. Сервлет инициализируется только один раз, либо при запуске сервера, либо при его вызове клиентом с использованием соответствующего URL-адреса.
2) service () : после создания экземпляра сервлета tomcat вызывает метод обслуживания сервлета. Сервисный метод отвечает за генерацию ответа на входящий запрос, переданный ему tomcat. Этот метод вызывает другие ресурсы на стороне сервера, необходимые для извлечения данных из базы данных и предоставления ответа обратно tomcat.
3) destroy () : метод уничтожения вызывается tomcat в конце для всех действий, связанных с очисткой, таких как закрытие соединений с базой данных, освобождение ресурсов для сбора мусора и т. Д.
Преимущества Apache Tomcat
Apache Tomcat является наиболее широко и часто используемым программным обеспечением среди разработчиков веб-приложений на сегодняшний день. Исследования утверждают, что более 60% Java-приложений используют Apache Tomcat. Существует множество документации и учебных пособий по использованию и настройке Apache Tomcat, что упрощает и делает возможным для новых разработчиков веб-приложений работу с Apache Tomcat.
Рекомендуемые статьи
Русские Блоги
Понять принцип работы Tomcat
Веб сервер
Поскольку веб-серверы называются веб-серверами, разделение труда и задачи, которые они решают, различны, поэтому в зависимости от функций, предоставляемых веб-сервером, имя каждого веб-сервера будет другим.
По функциям веб-сервер можно разделить на:
HTTP-сервер
HTTP-сервер занимается передачей и контролем доступа на уровне протокола HTTP, поэтому вы можете видеть прокси, балансировку нагрузки и другие функции на Apache / Nginx.
Клиент получает доступ к статическим ресурсам (файлам HTML, файлам изображений и т. Д.), Хранящимся на сервере, через HTTP-сервер.
Благодаря технологии CGI / Servlet обработанный динамический контент также может быть распределен через HTTP-сервер, но HTTP-сервер всегда точно передает файлы на сервере клиенту только по протоколу HTTP.
Apache и Nginx часто используются в HTTP-сервере. HTTP-сервер в основном используется для службы статического контента, прокси-сервера, балансировки нагрузки и т. Д. Прямая переадресация внешних запросов в следующие службы приложений (Tomcat, django и т. Д.).
Application Server
Вначале концепция сервлета не появлялась при разработке Apache Server, поэтому Apache не может поддерживать встроенный сервлет. Фактически, помимо Apache, многие другие программы HTTP-серверов не могут напрямую поддерживать сервлет. Для поддержки сервлетов программы обычно разрабатываются отдельно.Такие программы обычно называются контейнером сервлетов или иногда сервлетом. Это часть веб-сервера или сервера приложений, используемая для предоставления сетевых услуг поверх отправленных запросов и ответов, декодирования запросов на основе MIME и форматирования ответов на основе MIME. Он содержит и управляет сервлетами в жизненном цикле сервлетов. Это программа-оболочка, работающая в реальном времени. Общий запрос обрабатывается программным обеспечением веб-сервера во время выполнения, а вызов сервлета передается в «контейнер» для обработки.
Например, для Tomcat необходимо предоставить стандартные библиотеки классов, интерфейс и т.д., необходимые для работы JSP / Sevlet. Для удобства серверы приложений часто объединяют функции HTTP-сервера, но они не так мощны, как профессиональный HTTP-сервер, поэтому сервер приложений часто работает за HTTP-сервером, выполняет приложения и преобразует динамический контент в статический. HTTP-сервер распространяется среди клиентов.
Tomcat работает на JVM. Как и HTTP-сервер, он связывает IP-адреса и отслеживает TCP-порты. Он также содержит следующие обвинения:
Tomcat работает
Структура Tomcat очень сложна, но Tomcat также очень модульный.Если вы найдете основной модуль Tomcat, вы захватите «семь дюймов» Tomcat. Ниже приводится общая структура Tomcat:
Как видно из рисунка выше, ядро Tomcat состоит из двух компонентов:КоннекторсКонтейнер (Контейнер). Компонент Connector отвечает за создание объектов запроса и объектов ответа. Tomcat по умолчанию использует HttpConnector, который отвечает за создание объектов запроса и ответа в соответствии с полученным сообщением запроса Http и передачу этих двух объектов в контейнер, а затем в соответствии с содержимым в ответе Сгенерируйте соответствующее HTTP-сообщение.
Контейнер является родительским интерфейсом контейнера, и все дочерние контейнеры должны реализовывать этот интерфейс.Проще говоря, проект, развернутый сервером, запускается в контейнере. Элементы в контейнере получают соответствующие объекты запроса и ответа, передаваемые соединителем для выполнения соответствующих операций.
Разъем можно заменить в зависимости от конструкции и сценария применения. Один контейнер может соответствовать нескольким соединителям. Несколько коннекторов и один контейнер образуют службу. С помощью службы вы можете предоставлять услуги внешнему миру.
Чтобы предоставлять услуги для запроса сервлета, Tomcat должен сделать четыре вещи:
Теперь, когда мы захватили «семь дюймов» Tomcat, два основных компонента: Connector и Container, давайте начнем с Connector и посмотрим, как Tomcat обрабатывает HTTP-запросы.
Многие серверы приложений с открытым исходным кодом интегрируют tomcat в качестве веб-контейнера, и есть несколько изменений в коде контейнера сервлетов tomcat. Таким образом, производительность этих серверов приложений в основном зависит от производительности модуля коннектора, который Tomcat обрабатывает HTTP-запросы.
Модуль архитектуры Tomcat
Tomcat запущенный процесс
Предположим, запрос от клиента: http://localhost:8080/test/index.jsp
Запрос отправляется на локальный порт 8080, и он получается прослушивающим его соединителем Coyote HTTP / 1.1;
Коннектор передает запрос механизму службы, где он находится для обработки, и ожидает ответа модуля;
Движок получает запрос localhost: 8080 / test / index.jsp, соответствующий всем его виртуальным хостам Host;
Механизм соответствует Хосту с именем localhost (даже если он не соответствует, запрос будет передан Хосту для обработки, потому что Хост определен как хост по умолчанию для Механизма);
localhost Хост получает запрос /test/index.jsp, соответствующий всему контексту, которым он владеет;
Хост соответствует контексту, путь которого равен / test (если он не соответствует, передайте запрос контексту, имя пути которого «» для обработки);
Контекст с path = «/ test» получает запрос /index.jsp и ищет соответствующий сервлет в своей таблице отображения;
Создайте объект HttpServletRequest и объект HttpServletResponse и вызовите метод doGet или doPost JspServlet в качестве параметров;
Контекст возвращает объект HttpServletResponse после выполнения хосту;
Хост возвращает объект HttpServletResponse в Engine;
Engine возвращает объект HttpServletResponse в Connector;
Connector возвращает объект HttpServletResponse клиентскому браузеру;
Компонент соединителя
Из-за сложности этого процесса общий процесс можно объяснить следующей диаграммой последовательности:
Когда коннектор инкапсулирует соединение сокета в объекты запроса и ответа, следующие вещи остается обработать Контейнеру.
Контейнер сервлетов «Контейнер»
Контейнер является родительским интерфейсом контейнера, и все дочерние контейнеры должны реализовывать этот интерфейс. Конструкция контейнера контейнера использует типичный шаблон проектирования цепочки ответственности. Он состоит из четырех дочерних компонентов контейнера: Engine, Host, Context, Wrapper, Эти четыре компонента не параллельны, а являются родительско-дочерними отношениями: Engine содержит Host, Host содержит Context, а Context содержит Wrapper. Обычно класс сервлета соответствует оболочке. Если существует несколько сервлетов, можно определить несколько оболочек. Если имеется несколько оболочек, необходимо определить контейнер более высокого уровня. Например, контекст, контекст обычно соответствует следующей конфигурации:
Общий дизайн контейнера
Контекст также может быть определен в родительском контейнере Host, Host не требуется, но для запуска военной программы вы должны разместить, потому что в war должен быть файл web.xml, а для анализа этого файла требуется Host. Если есть несколько Хост собирается определить движок верхнего контейнера. Движок больше не имеет родительского контейнера. Движок представляет собой законченный движок сервлетов.
Когда коннектор получает запрос на соединение, он передает его контейнеру. Как контейнер обрабатывает запрос? Как разделены эти четыре компонента и как они передают запросы в определенные подконтейнеры? Как передать последний запрос сервлету для обработки. Ниже представлена временная диаграмма этого процесса: