Apache Tomcat

Apache Tomcat — это комплект серверных программ от Apache Software Foundation, предназначенный для тестирования, отладки и исполнения веб-приложений на основе Java. Его обычно называют контейнером сервлетов — дополнительных компонентов, которые расширяют функциональность веб-сервера и позволяют ему выполнять приложения на языке Java.

Название Tomcat («кот») выбрал Джеймс Дункан Дэвидсон, архитектор разработки. Выбор названия связан с традицией издательства O’Reilly помещать изображения животных на обложки книг. Зная, что первый учебник по Tomcat будет опубликован именно им, Дэвидсон решил назвать ПО в честь какого-нибудь особенного животного — независимого, находчивого и способного за себя постоять.

Официальный логотип Apache Tomcat

Apache Tomcat не следует путать с Apache HTTP-сервером — функциональность продуктов различается. Apache HTTP-сервер поставляет браузеру статические и динамические веб-страницы, которые, как правило, генерируются приложениями на языке PHP, например WordPress. При этом Apache HTTP-сервер не поддерживает Java-сервлеты и JSP-страницы. Контейнер Tomcat, напротив, изначально был создан для работы с контентом, который генерируют Java-приложения.

Как и другие контейнеры сервлетов, Tomcat обладает тремя характерными особенностями:

  1. Обрабатывает HTTP-запросы клиента. Для этого в состав включен собственный HTTP-сервер.
  2. Поставляет страницы другому веб-серверу. Tomcat обычно используют в связке с Nginx или Apache.
  3. Является частью серверов приложений WildFly и GlassFish — платформ, на которых запускаются веб-приложения. 

Функции контейнера сервлетов

Apache Tomcat упрощает разработку и развертывание веб-приложений. Он проверяет папки проекта, чтобы мгновенно находить и вводить в действие новые сервлеты. Если во время исполнения приложения сервлет обновляется, Tomcat обновляет все зависимые компоненты. Если сервлет удаляется, сервер останавливает обработку запросов и удаляет элемент. В качестве контейнера сервлетов Tomcat выполняет несколько важных функций:

  • создает среду для запуска сервлетов;
  • задает параметры сессий;
  • обеспечивает обмен данными между сервлетами и клиентами;
  • проводит идентификацию и авторизацию клиентов;
  • управляет метаданными.

Компоненты Tomcat

В состав Apache Tomcat входят три основных компонента: Catalina, Jasper и Coyote.

Catalina. Это контейнер сервлетов, который представляет собой командный интерфейс и реализует спецификации сервлетов, которые называются Servlet API. Они лежат в основе веб-технологий Java. Catalina обеспечивает взаимодействие с библиотеками Java. Это позволяет динамически создавать любой веб-контент.

Jasper. Обрабатывает JSP-страницы. Они могут содержать как статические (HTML, XML, WML), так и динамические компоненты (скрипты, директивы, действия).

Пример страницы c JSP-элементами для обработки данных пользователя онлайн-магазина

С помощью компонента Jasper контейнер Tomcat выполняет функцию шаблонизатора, автоматически генерируя нужный HTML-код с использованием JSP-компонентов. Jasper отслеживает все изменения в динамических фрагментах страниц и выполняет компиляцию JSP-элементов. При этом JSP-страница преобразуется в статическую — в таком виде она может быть отправлена HTTP-серверу на дальнейшую обработку.

Coyote. Встроенный веб-сервер для обработки HTTP-запросов. Он прослушивает TCP-порты, отвечает на запросы клиента самостоятельно или передает запрос в Catalina для обработки JSP-элементов.

Схема взаимодействия компонентов

Установка Tomcat

Установка актуальной версии виртуальной машины JRE или комплекта разработчика JDK. Это необходимо для работы Apache Tomcat. Скачать вариант для Linux, MacOS или Windows можно на официальном сайте.

Проверка корректности переменных окружения. После установки пакета Java JDK следует проверить корректность переменных окружения. Для этого в Windows нужно:

  1. Нажать комбинацию клавиш Win + R.
  2. Ввести в строке cmd.
  3. Выполнить в терминале команду echo %JAVA_HOME%.

Если переменная установлена правильно, в качестве ответа появится версия пакета, например C:\Program Files\Java\jdk-17.0.2. Эта же строка должна появиться в конце ответа на запрос echo %PATH% в cmd.

Если переменные не установились автоматически, их добавляют вручную. Для этого нужно:

  1. Перейти в Панель управления.
  2. Выбрать Система Дополнительные параметры системы.
  3. Нажать Переменные среды.
  4. Найти PATH и кликнуть Изменить.
  5. Ввести путь к пакету JDK в директории Program Files.

Загрузка и установка Tomcat. После настройки переменных необходимо скачать последнюю версию Tomcat. В среде Windows сервер устанавливают так же, как и любое другое приложение. Во время инсталляции есть возможность выбрать опцию «Установить как сервис Windows», в этом случае сервер будет запускаться автоматически при загрузке ОС. Для оптимальной безопасности лучше выбрать запуск под именем другого пользователя, с ограниченными правами.

После установки стартовая страница сервера будет доступна по адресу http://localhost:8080.

Как создать первое веб-приложение

Для этого можно использовать интегрированную среду разработки IntelliJ IDEA, которая автоматически создает нужную структуру Java-проекта: в папке src размещаются файлы с исходным кодом, в папку web выгружаются готовые файлы web.xml и index.jsp. В файле web.xml перечислены инструкции для сервера Tomcat, а index.jsp представляет собой главную страницу веб-приложения, доступную по адресу http://localhost:8080.

По традиции первая программа на любом языке должна отображать приветствие «Hello, world!» Для вывода этой фразы нужно отредактировать файл index.jsp, как показано ниже:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

 
   Мое первое приложение
 
 
   

Здравствуй, мир!

Приложение работает на сервере Apache Tomcat

Приложение выводит традиционное приветствие

Сборка war-файлов для запуска на Tomcat

Tomcat обрабатывает веб-приложения Java с расширением war — в них содержатся сервлеты, JSP-файлы, статические ресурсы и другие данные. При работе в IntelliJ IDEA нужная структура файлов war создается автоматически. Для создания структуры проекта нужно:

  1. Перейти из Project Structure (Структуры проекта) в Artifacts (Артефакты).
  2. Нажать Web Application: Archive (Веб-приложение: архив).
  3. Кликнуть по кнопке Create manifest (Создать манифест) под полем для ввода названия веб-приложения.
  4. Указать путь к директории проекта — в ней будет создана папка META-INF с файлом манифеста внутри.
  5. Нажать кнопки Apply (Применить) и ОК.

Для упаковки проекта в war-файл необходимо:

  1. Перейти на вкладку Build (Сборка).
  2. Выбрать пункт Build Artifact (Сборка артефакта).
  3. Нажать на название проекта.

Во время процесса сборки среда создаст директорию out с вложенной папкой artifacts и поместит в нее файл готового веб-приложения с расширением war, которое можно запускать на сервере Tomcat.

Tomcat — незаменимый инструмент для разработчика веб-приложений на Java. Он может работать в качестве независимого сервера или служить контейнером сервлетов в составе более крупного веб-сервера. 

Освойте новую профессию

(рейтинг: 5, голосов: 2)
Добавить комментарий