TomcatとJDKのバージョンの対応と各Tomcatバージョンの機能

TomcatとJDKのバージョンの対応と各Tomcatバージョンの機能

Apache Tomcat は、Java Servlet および Java Server Pages テクノロジを実装するオープン ソース ソフトウェアです。サーブレットと JSP 仕様の異なるバージョンでは、Apache Tomcat の異なるバージョンを使用できます。 Tomcat と JDK バージョンの対応は次のとおりです。

サーブレット仕様JSP仕様EL仕様WebSocket仕様JASPIC仕様Apache Tomcat バージョン最新リリースサポートされているJavaバージョン
4.0 2.3 3.0 1.1 1.1 9.0.x 9.0.27バージョン8以降
3.1 2.3 3.0 1.1 1.1 8.5.x 8.5.47 7以降
3.1 2.3 3.0 1.1適用できない8.0.x (廃止) 8.0.53 (廃止) 7以降
3.0 2.2 2.2 1.1適用できない7.0.x 7.0.96 6 以上 (WebSocket の場合は 7 以上)
2.5 2.1 2.1適用できない適用できない6.0.x (アーカイブ) 6.0.53 (アーカイブ) 5以降
2.4 2.0適用できない適用できない適用できない5.5.x (アーカイブ) 5.5.36 (アーカイブ) 1.4以降
2.3 1.2適用できない適用できない適用できない4.1.x (アーカイブ) 4.1.40 (アーカイブ) 1.3以降
2.2 1.1適用できない適用できない適用できない3.3.x (アーカイブ) 3.3.2 (アーカイブ)バージョン 1.1 以降

どのバージョンが適切かを判断する際に役立つよう、これらのバージョンについて以下で詳しく説明します。各リリースの詳細については、該当するリリース ノートを参照してください。

Apache Tomcat 7.x などの古いバージョンのダウンロードとドキュメントも提供していますが、可能な限り最新の安定したバージョンの Apache Tomcat を使用することを強くお勧めします。メジャー バージョン間のアップグレードは簡単な作業ではないことを認識しており、古いバージョンのユーザー向けにリストで引き続きサポートを提供しています。ただし、コミュニティ主導のサポートアプローチのため、バージョンが古ければ古いほど、興味を持ったりサポートできる人は少なくなります。

アルファ / ベータ / 安定版

Tomcat には 3 つの主要なバージョンがあります。メジャー バージョンの最初のリリースは通常、アルファからベータ、そして安定へと進みます。

アルファ リリースには、仕様で要求される大量の未テスト機能や欠落機能、および/または重大なバグが含まれる可能性があり、一定期間安定して動作することは期待できません。

ベータ版リリースには、テストされていない機能や比較的軽微なバグが多数含まれている場合があります。ベータ版は安定して動作することは期待できません。

安定版リリースには、比較的軽微なバグが少数含まれている場合があります。安定版リリースは本番環境での使用を目的としており、長期間にわたって安定して動作することが期待されます。

Apache Tomcat 9.x

現在、Apache Tomcat 9.x が開発の焦点となっています。これは Tomcat 8.0.x および 8.5.x 上に構築されており、Servlet 4.0、JSP 2.3、EL 3.0、WebSocket 1.1、および JASPIC 1.1 仕様 (Java EE 8 プラットフォームに必要なバージョン) を実装しています。さらに、次の重要な改善も含まれています。

  • HTTP/2 のサポートを追加します (Java 9 (Apache Tomcat 9.0.0.M18 以降) または Tomcat Native ライブラリがインストールされている必要があります)
  • JSSE コネクタ (NIO および NIO2) の TLS サポートに OpenSSL を使用するためのサポートが追加されました
  • TLS仮想ホスティング(SNI)のサポートを追加しました

Apache Tomcat 8.x

Apache Tomcat 8.0.x は Tomcat 7.0.x 上に構築されており、Servlet 3.1、JSP 2.3、EL 3.0、および WebSocket 1.1 仕様を実装しています。さらに、次の重要な改善も含まれています。

  • 以前のバージョンで提供されていた複数のリソース拡張機能を置き換える単一の共通リソース実装。

Apache Tomcat 8.5.x は、Apache Tomcat 8.0.x と同じサーブレット、JSP、EL、および WebSocket 仕様バージョンをサポートします。とりわけ、JASPIC 1.1 仕様を実装しています。

これは、2016 年 3 月の Tomcat 9.0.0.M4 (アルファ) マイルストーン リリースから派生したものです。 Tomcat 8.0 ランタイムおよび仕様要件と互換性を持ちながら、HTTP/2 サポートと Tomcat 9.x コードベースのその他の機能を提供します。 (当時は安定した Tomcat 9.0 バージョンを作成することはできず、Tomcat 9 の Java EE 仕様は数年後に完成しました)。

Tomcat 8.5 は Tomcat 8.0 の代替として考えられています。 Tomcat 8.5 への移行に関するガイダンスについては、移行ガイドを参照してください。

Apache Tomcat 8.5.x には、次の重要な改善が含まれています。

  • HTTP/2 のサポートを追加します (Tomcat ネイティブ ライブラリが必要です)
  • JSSE コネクタ (NIO および NIO2) の TLS サポートに OpenSSL を使用するためのサポートが追加されました
  • TLS仮想ホスティング(SNI)のサポートを追加しました

Apache Tomcat 8.5.x では次のテクノロジが削除されています。

  • HTTP および AJP コネクタの BIO 実装
  • Comet API をサポート

Tomcat 8.5 には多くの領域で大幅な変更が含まれており、パフォーマンス、安定性、総所有コストが向上しています。詳細については、Apache Tomcat 8.5 の変更ログを参照してください。

Tomcat 8.0 のユーザーは、Tomcat 8.0 の開発が終了していることにご注意ください。 Tomcat 8.0.x のユーザーは、Tomcat 8.5.x 以降にアップグレードする必要があります。

Apache Tomcat 7.x

Apache Tomcat 7.x は、Tomcat 6.0.x で行われた改良に基づいて構築されており、Servlet 3.0、JSP 2.2、EL 2.2、および WebSocket 1.1 仕様を実装しています。とりわけ、次のような改善点が含まれています。

  • Web アプリケーションのメモリ リーク検出と防止
  • マネージャーおよびホストマネージャーアプリケーションのセキュリティが強化されました
  • 一般的なCSRF保護
  • 外部コンテンツをWebアプリケーションに直接組み込むためのサポート
  • リファクタリング(コネクタ、ライフサイクル)と大量の内部コードのクリーンアップ

Apache Tomcat 6.x

Apache Tomcat 6.x は、Tomcat 5.5.x に加えられた改良に基づいて構築され、Servlet 2.5 および JSP 2.1 仕様を実装しています。とりわけ、次のような改善点が含まれています。

  • メモリ使用量の最適化
  • 高度なIO機能
  • リファクタリングクラスター

Tomcat 6 のユーザーは、Tomcat 6 の開発が終了していることに注意してください。 Tomcat 6.x のユーザーは Tomcat 7.x 以降にアップグレードする必要があります。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Cent OS サーバー構成 JDK+Tomcat+MySQL の簡単な記録
  • Linux のインストール JDK、Tomcat、MySQL の詳細な説明 (画像とテキスト付き)
  • Linux での JDK と Tomcat のインストールと設定の詳細な説明
  • Linux インストール jdk、tomcat 構成 vsftp リモート接続手順
  • Tomcat+JDK のインストールと設定のチュートリアル

<<:  ログインフォームを実装するためのJavaScript

>>:  あるテーブルのデータの列を別のテーブルの列にコピーするMySQLメソッド

推薦する

ウェブデザインにおける階層化インターフェースの設計経験

多くのネットユーザーは、なぜ自分のウェブサイトはいつも色の問題を抱えていて、いつも地味に見え、注目を...

nginx+uwsgi で Django プロジェクトを開始するための詳細な手順

Django で Web プロジェクトを開発する場合、開発およびテストのプロセスでは Django ...

Vueは小さなメモ帳機能を実装しました

この記事の例では、メモ帳の小さな機能を実現するためのvueの具体的なコードを参考までに共有しています...

Flash での HTML と CSS の適用

Flash での HTML と CSS の適用:同僚の Den が Flash で HTML と C...

Windows 8.1 で MySQL5.7 のルート パスワードを忘れた場合の解決方法

【背景】最近勉強中に非常に恥ずかしいことに遭遇しました。MySQL のパスワードを忘れてしまい、My...

ウェブページ作成時に標準 HTML コードを使用する際のポイント

多くの Web サイト デザイナーが犯す最も一般的な間違いは、Web ページが IE で正常に表示さ...

Linux で gdb を使用してコア ファイルをデバッグする方法

1.コアファイルプログラム実行中にセグメンテーション エラー (コア ダンプ) が発生すると、プログ...

Nginx フォワードプロキシとリバースプロキシの違いと原理分析

1. フォワードプロキシとリバースプロキシの違いフォワード プロキシはクライアントのプロキシとして機...

MySQLデータベースのマスタースレーブ同期の実際のプロセスの詳細な説明

目次インストール環境の説明MySQLデータベースサービスをインストールするメインライブラリを構成する...

プロジェクトを素早く構築するためのvite+vue3.0+ts+element-plusの実装

目次バイト機能使用環境プロジェクトを構築する構成vite.config.ts tsconfig.js...

React Native スキャフォールディングの基本的な使い方の詳細な説明

プロジェクトを構築する対応するパスでコマンドラインを実行します: react-native init...

React コードを共有するためのベストプラクティス

プロジェクトがある程度複雑になると、必然的にロジックの再利用の問題に直面することになります。 Rea...

vue3 を使用したジグソーパズルゲームのリファクタリングの例

序文プロジェクト内のパズルゲーム(デジタル華容路とも呼ばれる)を再構築するのに 2 日かかりました。...

Nginx アクセス ログとエラー ログ パラメータの説明

例: nginx ログには、アクセス ログとエラー ログの 2 つの主な種類があります。アクセス ロ...

MySQLでカーソルトリガーを使用する方法

カーソル選択クエリによって返される行のセットは、結果セットと呼ばれます。結果セット内の行は、入力した...