【あぱっちとむきゃっと】

Apache Tomcat とは?

最終更新:
💡 JavaのServlet・JSPを動かす「Javaアプリの実行エンジン」

JavaのServletやJSPを実行するオープンソースのサーバー。HTTPを受け付けてJavaのWebアプリを動かし、静的ファイルも配信できる。Jakarta EE全体を実装するサーバーではない。

📌 このページのポイント
Tomcatは単独でもHTTPを受ける 単独で受ける構成 ブラウザ Tomcat HTTP 前段のサーバーを置く構成もある ブラウザ HTTP Server など Tomcat Tomcat:Servlet / JSPを実行 静的ファイルも配信できる アプリに組み込んで起動する方法もある
上は直接、下は前段を経由してHTTPを受ける例。前段のWebサーバーは必須ではない。
ひよこ ひよこ
TomcatってApacheと何が違うの?
ペンギン先生 ペンギン先生
Apache HTTP ServerとApache Tomcatは別のプロジェクトだよ。TomcatはServletやJSPなどのJavaのWebアプリを実行する。TomcatだけでもHTTPを受けて静的ファイルを配信できるし、必要に応じてHTTP Serverなどを前段に置くこともあるんだ。
ひよこ ひよこ
サーブレットって何?
ペンギン先生 ペンギン先生
JavaのWebアプリでリクエストを受け、レスポンスを作る仕組みだよ。Tomcatがリクエストを対応するアプリへ渡す。Spring BootでもServletを使うWebアプリの構成では、組み込みTomcatを使って起動できるよ。すべてのSpringアプリがTomcatを使うわけではないね。
ひよこ ひよこ
Tomcatは別にインストールするの?
ペンギン先生 ペンギン先生
アプリに組み込む方法なら、Tomcatを別のサーバーとして設置しない構成にできるよ。別に設置したコンテナへWARを配置する方法もある。WARだから必ずTomcatという意味ではなく、アプリが必要とする仕様に対応したコンテナを選ぶんだ。
ひよこ ひよこ
バージョンを変えるときは何に注意するの?
ペンギン先生 ペンギン先生
対応するJavaやServletなどの仕様を確認するよ。9から10への移行では、たとえばjavax.servletがjakarta.servletへ変わったため、アプリや依存ライブラリも対応が必要。Javaにあるjavaxの名前が全部一律に変わったという意味ではないんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Apache Tomcat」って出てきたら「JavaのServlet/JSPアプリを動かすサーバー」と思えばだいたいOK!
📖 おまけ:英語の意味
「Apache Tomcat」 = アパッチ・トムキャット
💬 Tomcatは雄猫という意味。公式の歴史では、Sun MicrosystemsでServletとJSPの参照実装として始まり、1999年にコードがApache Software Foundationへ寄贈されたと説明しているよ

参考資料

← 用語集にもどる