Apache Tomcatは、
Javaサーブレットや
JavaServer Pages (JSP) を実行するためのWebコンテナ(サーブレットコンテナ、サーブレットエンジン)として広く利用されています。
Apache License 2.0を採用したオープンソースソフトウェアであり、その高い安定性と柔軟性から多くのWebアプリケーション開発者に支持されています。
歴史と開発
2005年以降、
Apacheソフトウェア財団のトップレベルプロジェクトであるApache Tomcat Projectによって開発が進められています。それ以前は、Jakartaプロジェクト内で開発されていました。
構成要素
Tomcat 5.0以降、以下の主要なコンポーネントを含んでいます。
- - Catalina: Servletコンテナとして機能し、サーブレットの実行環境を提供します。
- - Coyote: HTTPサーバーとしての役割を担い、HTTPリクエストを処理します。
- - Jasper, Jasper2: JavaServer Pages (JSP) の処理エンジンとして、JSPファイルをJavaコードに変換し、実行可能にします。
各バージョンごとに、対応する
Javaのバージョンやサーブレット、JSPの仕様が異なります。
- - バージョン9.0.x: Java Servlet 4.0、JavaServer Pages 2.3に対応しており、Java 8以降が必要です。
- - バージョン10.1.x: Java Servlet 6.0、JavaServer Pages 3.1に対応しており、Java 11以降が必要です。
- - バージョン11.0.x: Java Servlet 6.1、JavaServer Pages 4.0に対応しており、Java 17以降が必要です。
Apache Tomcatは、サーブレットやJSPの公式な
リファレンス実装として利用されていますが、厳密には
リファレンス実装そのものではありません。しかし、その実装は事実上の標準として広く認識されています。
HTTPサーバーとの連携
Apache Tomcatは、単体でHTTPサーバーとしても動作し、静的コンテンツの配信も可能です。また、他のHTTPサーバーと連携して利用することもできます。この場合、フロントエンドのHTTPサーバーがリクエストを受け付け、必要に応じてTomcatにリクエストを転送する構成が一般的です。
ただし、外部のHTTPサーバーと連携する場合、一部の高度な機能(例えば、Advanced IO (Comet))が利用できなくなる場合があります。例えば、
Apache HTTP Serverとの連携には、mod_jkやmod_proxy_ajpといったコネクタモジュールが用いられます。
- - mod_jk: Apache HTTP Serverと連携するためのコネクタモジュール。
- - mod_proxy_ajp: Apache 2.2以降で利用可能な、より新しい連携方式。
その他の情報
詳細なリリース履歴や関連情報については、以下の公式ウェブサイトをご参照ください。
関連項目
Apache Tomcatは、
Java Webアプリケーション開発において非常に重要な役割を果たしており、その理解は開発者にとって不可欠です。オープンソースであることから、自由に利用、カスタマイズできる点も大きな魅力です。