Обмен технологиями

Принцип Tomcat, структура, шаблон проектирования

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1 что

Веб-сервер, на котором работают сервлеты Java и технология JSP, может обеспечивать рабочую среду для веб-сайта Java и обрабатывать запросы клиентов через протокол http. Это tomcat = http-сервер + контейнер сервлетов. Подобные продукты включают причал

  • веб приложение : Веб-приложения — это приложения, доступ к которым осуществляется через веб-браузер, которые используют веб-технологии и стандарты (такие как HTTP, HTML, CSS, JavaScript и т. д.) для предоставления пользовательских интерфейсов и взаимодействия с пользователями. Веб-приложения могут включать в себя интерфейсные и серверные компоненты. Интерфейс отвечает за пользовательский интерфейс и представление, а серверная часть отвечает за бизнес-логику и обработку данных.
  • Сервлет : Сервлет является частью спецификации Java EE. Это программа Java, работающая на стороне сервера. Она используется для получения запросов от клиентов (например, веб-браузеров), обработки этих запросов (включая доступ к базам данных, вызов бизнес-логики и т. д.). ) и верните ответ клиенту. Сервлет — одна из основных технологий создания динамического веб-контента.

2 Структура

разъем разъем+контейнер

Контейнеры — это движок, хост, контекст, сервлет/обертка.

Итак, архитектура — это служба (порт 8080), соединитель, механизм, хост (http:localhost.com), контекст (/mvc, веб-приложение), сервлет/обертка (/add, сервлет).

f090bd57045f4088948e1e7da63585ca.png

 

3 ключевых компонента

3.1 разъем

3.1.1 Конечная точка

Используется для: связи сетевого уровня TCP/IP, например NIONIO2.

3.1.2 Процессор

Используется для: анализа протоколов прикладного уровня, таких как http.

3.1.3 Адаптер

Используется для: унифицированного преобразования. Запрос/ответ Tomcat преобразуется в запрос/ответ сервлета, а затем передается в контейнер-контейнер.

  • Запрос сервлета — это ключевой интерфейс в API сервлетов Java.
  • API сервлетов Java — это набор интерфейсов и классов в Java EE (теперь известный как Jakarta EE) для разработки серверных приложений Java. Сервлет — один из трех основных компонентов JavaWeb (сервлет, фильтр, прослушиватель). Он в основном используется для обработки клиентских запросов и генерации ответов.

3.2 Шаблоны проектирования

3.2.1 Конструктивные идеи точек изменения и постоянных точек

Инвариантные точки реализуются с помощью абстрактных классов и интерфейсов (таких как ProtocolHanlder, AbstractProtocol), а точки изменения реализуются с помощью конкретных классов (таких как Http11NioProtocol, Http11Nio2Protocol).

47fd583736914b5e9911f0e38c739565.png

27e141a1618a4d7b8977cd9fc5a4f24a.png

f646124c6f57416c8648621ea75dbfa3.png

2357e1b0231e4de2b32e8c70f79b00b6.png

6fc9747fa2b14a649d16a3e70e00650d.png

d81414cef6f5481a87660f58599c0e96.png

3.2.2 Режим адаптера

Адаптер, tomcat использует CoyoteAdapter.


3.2 контейнер

3.2.1 Как управлять механизмом, хостом, контекстом и сервлетом и использовать комбинированный режим, чтобы все они могли реализовать Контейнер

  • Составной шаблон — это структурный шаблон проектирования, который позволяет объединять объекты в древовидную структуру для представления иерархии «часть-целое». В этом режиме использование клиентом отдельных объектов и составных объектов является последовательным, то есть клиент может обрабатывать отдельные объекты и их комбинации одинаково.

Проще говоря, класс/интерфейс используется для сборки древовидной структуры (с отношениями родитель-потомок). Это комбинация, и поскольку все они реализуют один и тот же интерфейс, вызовы каждой части одинаковы.Как показано ниже

d785e0ea64ad4fb6952f9460fcbef154.png

3.2.2 Механизм, хост, контекст и сервлет вызываются последовательно с использованием модели цепочки ответственности Pipeline-Valve.

Pipeline — это цепочка ответственности и очередь, а элементы очереди — это клапаны. Клапан может выполнить логику обработки и передать ее на следующее значение.

Разница между клапаном и фильтром: клапан от Tomcat, фильтр от API Java-сервлета. Клапан работает на уровне веб-контейнера и перехватывает все запросы приложений. Фильтр работает на уровне приложения и перехватывает определенный запрос веб-приложения.

08b1200a4585496e98a08c964952573a.png

3635bb9b0a7c46a1997621631c00212c.png

acb7a18568bd41c1b4ded295aeee2060.png

d28296d8ebba41d5acc6c209df8c0538.png

3.2.3 Жизненный цикл управления двигателем и запросы на распределение

Запрос на выделение: компонент сопоставления. Найдите соответствующую обертку слой за слоем по URL-адресу.

Жизненный цикл: отвечает за создание, инициализацию, запуск, уничтожение контейнера и т. д. Каждый контейнер наследует жизненный цикл. Так что это тоже комбинированный режим.

Также используется шаблон наблюдателя (отслеживание изменений статуса жизненного цикла),

Комбинированный режим (деревовидная структура имеет отношения родитель-потомок),

Шаблон проектирования шаблонов (написание универсальных шаблонов (общая логика), вызов новых методов в шаблоне и реализация новых методов конкретными способами)

 

4 Архитектурный дизайн

  1. Перечислите потребности
  2. Класс объектно-ориентированного проектирования
  3. Найдите изменяющиеся и неизменяющиеся точки спроса
  4. Точки изменений реализуются с использованием абстрактных классов, а инвариантные точки реализуются с использованием конкретных классов.