Введение

Окружающая среда HTTP-веб-сервера на основе Java. Apache Tomcat (часто называемый просто "Tomcat") – это бесплатная реализация с открытым исходным кодом технологий Jakarta Servlet, Jakarta Expression Language и WebSocket. Он предоставляет среду HTTP-веб-сервера, полностью написанную на Java, в которой может выполняться Java-код. Таким образом, Tomcat является Java-сервером веб-приложений, хотя и не полноценным JEE-сервером приложений. Tomcat разрабатывается и поддерживается открытым сообществом разработчиков под эгидой Apache Software Foundation и распространяется под лицензией Apache License 2.0.

Компоненты

Tomcat 4.x был выпущен вместе с Catalina (контейнером сервлетов), Coyote (HTTP-коннектором) и Jasper (JSP-движком).

Каталина

Каталина — это контейнер сервлетов Tomcat. Catalina реализует спецификации Sun Microsystems для сервлетов и JavaServer Pages (JSP). В Tomcat элемент Realm представляет собой "базу данных" имён пользователей, паролей и ролей (аналогичных группам Unix), присвоенных этим пользователям. Различные реализации Realm позволяют интегрировать Catalina в окружения, где эта информация для аутентификации уже создаётся и поддерживается, а затем использовать её для реализации безопасности, управляемой контейнером, как описано в спецификации сервлетов.

Койота

Coyote — это компонент Connector для Tomcat, который поддерживает протоколы HTTP 1.1 и 2 в качестве веб-сервера. Это позволяет Catalina, по сути являясь контейнером для Java Servlet или JSP, также функционировать как обычный веб-сервер, обслуживающий локальные файлы как HTTP-документы. Coyote прослушивает входящие соединения к серверу на определенном TCP-порту и перенаправляет запрос в Tomcat Engine для обработки и отправки ответа клиенту, сделавшему запрос. Другой Connector Coyote, Coyote JK, прослушивает аналогичным образом, но перенаправляет запросы на другой веб-сервер, например Apache, используя протокол JK. Это обычно обеспечивает более высокую производительность.

Кластер

Этот компонент добавлен для управления крупными приложениями. Он используется для балансировки нагрузки, которая может быть реализована различными способами. В настоящее время поддержка кластеризации требует версии JDK 1.5 или более поздней.

Высокая доступность

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

Особенности

Tomcat 9.x реализует спецификации Servlet 4.0 и JSP 2.3. Tomcat 10.0.x реализует спецификации Servlet 5.0 и JSP 3.0. Инструмент автоматизации сборки программного обеспечения Apache Ant был разработан как побочный продукт создания Tomcat как проекта с открытым исходным кодом. Дэвидсон изначально надеялся, что проект станет проектом с открытым исходным кодом, и, поскольку многие проекты с открытым исходным кодом сопровождались книгами издательства O'Reilly с изображением животного на обложке, он хотел назвать проект в честь животного. Ему пришел в голову Tomcat, поскольку он рассуждал, что это животное символизирует способность постоять за себя. Хотя название "Tomcat" уже использовалось для другой книги O'Reilly, его желание увидеть обложку с животным в итоге сбылось, когда O'Reilly издала свою книгу о Tomcat со снежным барсом на обложке в 2003 году.

Релизы

Серия Объявлена стабильной Описание Последний выпуск Дата последнего выпуска Дата окончания поддержки 1998 Tomcat начал свою деятельность в ноябре 1998 года как эталонная реализация сервлетов, разработанная Джеймсом Дунканом Дэвидсоном, архитектором программного обеспечения Sun Microsystems. 1999 Первоначальный выпуск. Объединение пожертвованного кода Sun Java Web Server и ASF, реализация спецификаций Servlet 2.2 и JSP 1.1. 3.3.2 2004 03 09 2002 09 06 Первый выпуск Apache Tomcat с поддержкой спецификаций Servlet 2.3 и JSP 1.2. 4.1.40 2009 06 25 2003 12 03 Поддержка Servlet 2.4, JSP 2.0 и EL 1.1. 2004 11 10 Разработан для J2SE 5.0. Включение Eclipse JDT позволяет Tomcat работать без установки полного комплекта Java Development Kit. 5.5.36 2012 10 10 2012 09 30 2007 02 28 Поддержка Servlet 2.5, JSP 2.1. 2011 01 14 Поддержка Servlet 3.0, JSP 2.2, EL 2.2 и WebSocket. 2021 03 31 2014 06 25 Поддержка Servlet 3.1, JSP 2.3 и EL 3.0. 2016 06 13 Добавлена поддержка HTTP/2, OpenSSL для JSSE, виртуального хостинга TLS и JASPIC 1.1. Создан на основе Tomcat 9 после задержки с выпуском Java EE 8. 8.5.100 2024 03 25 2024 03 31 2018 01 18 Поддержка Servlet 4.0. 2021 02 02 Поддержка Servlet 5.0, JSP 3.0, EL 4.0, WebSocket 2.0 и аутентификации 2.0. 2022 10 31 2022 09 26 Поддержка Jakarta Servlet 6.0, JSP 3.1, EL 5.0, WebSocket 2.1 и JASPIC 3.0 (альфа). Поддержка Jakarta Servlet 6.1, JSP 4.0 и еще не определенных версий EL, WebSocket и JASPIC.

Апачи ТомЭ

Apache TomEE (произносится "Томми") – это Java Enterprise Edition Apache Tomcat (Tomcat + Java EE = TomEE), объединяющая в себе несколько проектов Java Enterprise, включая Apache OpenEJB, Apache OpenWebBeans, Apache OpenJPA, Apache MyFaces и другие. В октябре 2011 года проект получил сертификацию корпорации Oracle как совместимую реализацию веб-профиля Java EE 6.