Tomcatとは

Tomcatとは、簡単にいうとJava サーブレットを動かすときに必要なソフトです。

JavaサーブレットとはWebサーバー上で実行されるJavaのプログラムのことです。

身近な例で考えてみましょう。

現代だと皆さんは日頃、ホームページを見る機会があると思います。

ホームページはHTML、CSS、Javascript、PHP、Java等のプログラミング言語で基本的に作成されています。

1990年代頃は単純に静的ホームページがほとんどで、大体がHTMLとCSSでホームページの作成が完結していました。

静的というのは、ホームページを見ているユーザー1人1人に対してのマイページなどの機能が無い状態でした。

しかし、時代が進むにつれ、ホームページを見るユーザーに対して見せるページを変えるという需要が出始め、動的ホームページが普及していきました。

現代では、例えば皆さま自身の銀行のサイトなどにもログインして情報を紹介するといったことを体験したことがあるのではないでしょうか。

動的ホームページの普及により、Webサーバー側でどういったページをユーザーに見せるのかなどの仕組みができてきました。

その際に、PHPやJavaなどの言語をWeb上で実行させる必要があります。これがTomcatが作られるきっかけにでした。

Webのサーバーサイドの仕事を経験したことがある方は大抵聞いたことがあるか触った経験があると思います。

概要は説明しましたが、そもそもTomcatを理解する上でWebサーバーとWebコンテナについて理解しないとなりません。後述します。


WebサーバーとWebコンテナについて

Javaで作成されたWebアプリケーションを動作させたい場合、用意すべきものはWebサーバーとWebコンテナです。

Webアプリケーション側では、Webブラウザからの要求(リクエスト)に応じて処理するWebサーバーとWebアプリケーションを動かす基盤となるWebコンテナが必要です。

WebサーバーはWebブラウザからのリクエストに応じて静的画面や画像を表示する働きをします。


Webサーバーとは

主なWebサーバーとしてよく使用されているのが、Apacheです。

Apacheとはフリーソフトでありながら世界中で使用されている高い信頼性と充実した機能を備えたWebサーバーソフトウェア(HTTPサーバー)です。

Apacheはオープンソースソフトウェアで、無償で誰でも使用できます。

またLinuxだけではなく、Windowsなどの複数のサーバーOS上で動作します。全世界のシェアは50%程になります。

同じようなWebサーバーには「Nginx」と「IIS」があります。しかし、安定して動作するのはApacheです。

関連記事:
Apacheとは?ApacheによるWebサーバー構築方法を徹底解説!インストール手順や初期設定は?OS別対応方法を紹介


Webコンテナ(サーブレットコンテナ)とは

Javaで作成されたWebアプリケーションを動かす為には、プログラムを解析して処理をする実行環境が必要です。

Webアプリケーションを動作させる為の実行環境はJ2EEです。

J2EEはインストトールするものではなく、J2EEを組み込んだWebコンテナとして提供されます。

サーブレット/JSコンテナともいいます。WebコンテナとしてメジャーなものがTomcatです。

Tomcatはオープンソース ソフトウェアです。

例えば、検索エンジンなどのように入力された値を元にリクエストされた処理を実行して結果をブラウザに表示するような動的な処理を行います。

同じようなWebコンテナには「Glassfish」と「Jetty」があります。しかし、JSPとサーブレットの仕様に則り、安定して動作するのはTomcatです。


サーブレットとは

サーブレットはWebサーバ上でJavaを実行し、動的にWebページを生成する為の技術です。


サーブレットの動作

サーブレットの基本的な動作の仕組みを説明します。

  1. クライアントがサーブレットにリクエストを発行すると、サーブレットのServiceメソッドが呼び出されます。
  2. 最初にサーブレットはリクエストがGETメソッドかPOSTメソッドかを判定します。
  3. GETメソッド、POSTメソッドともにサーブレットリクエストインスタンスとサーブレットレスポンスインスタンスを引数に取ります。
  4. 上記の3で書いた要素をGETまたはPOSTメソッドで処理してクライアントに返します。


JSPとは

JSPとはHTMLとJavaを1つのファイルに記載したものです。拡張子が「.jsp」と付いたりします。


サーブレットコンテナの主な仕事

サーブレットコンテナの主な仕事として、サーブレットの実行環境の提供を行います。

また、サーブレットの起動から破棄されるまでの一連のプロセスを管理します。セッションを管理する機能が用意されています。

Webアプリケーションに必要なサービスの提供も行なっています。


コンテナ

コンテナはJDKやJREのようなライブラリではなく、サーブレットを実行する為のセットが全て詰め合わせになっていると考えていただければと思います。


Tomcatのメリット

1番のメリットは使用している開発者が多いことです。それによりエンジニアを開発プロジェクトに集めやすいです。

またTomcatはオープンソースですが、商用の同様ソフトと比較しても機能も性能も劣らない点もメリットです。オープンソフトなので初期費用を抑えることができます。

商用だと開発中に必要な機能が出てきた場合、別途購入する必要がありますが、Tomcatの場合購入する必要はなく、機能があれば使えば良いしなければ自身で作成すれば良いです。

Tomcat自体、Javaで作成されているソフトなので融通が効きやすいです。

オフシェア開発の場合、外国のエンジニアもTomcatについて知識があることが多く、開発チームへのアプローチが早くできます。

Tomcatは多くの企業で導入実績があります。そのため知っていると仕事を貰いやすいです。

保守サポートも充実しており、オペレーターではなく技術者が対応してくれます。また最長7年間の保守があります。


Tomcatのデメリット

オープンソースの為、バージョン管理をしっかり行わないといけません。

また、商用と比べると少し踏み込んだ理解が必要なソフトです。

デメリットといえるものはあまり多くありません。


Tomcatのインストールと動作確認

Tomcatのインストールの流れと、使用できるかどうかを確認する方法を記述します。


インストール前提条件

以下の環境、バージョンを使用します。

※Tomcatを動作させる為の最低限の環境になります。

  • Windows10 64bit
  • Java SE Runtime Environment 9.0.4(JRE)
  • Tomcat 9.0.6


Javaランタイムのインストール

  1. JREをダウンロードし、インストールします。
  2. 「システムのプロパティ」を開き、「環境変数」ボタンをクリックします。
  3. 「システム環境変数」で「新規」ボタンをクリックします。
  4. 「変数」にJAVA_HOME、「値」にJavaをインストール先のパス「C:¥ProgramFiles¥java¥jre-9.0.4」を設定します。
  5. 「システムの環境変数」にJAVA_HOMEが追加されたことを確認します。

Tomcatのインストール

  1. Tomcatをダウンロードします。
  2. ダウンロードしたzipファイルを適当なフォルダに展開します。今回はC:直下に展開します。
  3. コマンドプロンプトを開き、C:¥tomcat¥binに移動します。
  4. startup.batと入力し、Enterを押してTomcatを起動します。


Tomcatの動作確認

  1. Webブラウザで「http://127.0.0.1:8080」にアクセスします。
  2. Tomcatの画面がWebブラウザ上に表示されればインストールと起動は成功です。


ApacheとTomcatを連携するメリットについて

Apacheはクライアントのブラウザからアクセスし、何かしらのサービスを提供する為のWebサーバーソフトウェアになります。

Tomcatは、サーブレットコンテナでServletを動作させる為に必要なWebアプリケーションサーバーで、Servletのインスタンス管理やセッション管理を行います。

TomcatにはWebサーバー機能はありますが、ApacheのWebサーバーとしての性能(高速処理、安定性)と同等にはなりません。

WebサーバーとしてならApacheを使うのが一般的です。

そこでHTMLや画像などの静的なコンテンツは処理速度が高速なApacheに処理させ、Javaサーブレットで作成された動的コンテンツをTomcatに処理させます。

またApacheもTomcatもオープンソース ソフトウェアの為、無償で使用することができます。

Webサイトはクリックした際のレスポンスが評価の対象になるといっても過言ではありません。

ApacheとTomcatを連携することでレスポンスの良いWebサイトの構築に繋がります。

以上がApacheとTomcatを連携させるメリットとなります。


ApacheとTomcatの連携方法

ApacheとTomcatを連携するための2つのツールの設定方法、設定後の動作確認について記述します。


前提条件

Windows10にApache2.2以上、JDK、Tomcatのインストールが行なわれている必要があります。


Apacheの設定

  1. Apacheのインストールディレクトリにある「httpd.conf」ファイルに設定されている「mod_proxy_ajp」モジュールを有効化します。(コメントアウトの削除を行います。)
  2. 「httpd.conf」に「Include conf/extra/proxy_ajp.conf」を追記します。

  3. Apacheのインストールディレクトリにある「conf/extra」配下に「proxy_ajp.conf」ファイルを設置し、「proxy_ajp.conf」ファイルに転送ルールを記載します。


Tomcatの設定

  1. Tomcatインストールディレクトリのconf配下にある「server.xml」のポート番号が8009になっていることを確認します。
  2. Tomcatのデフォルトのポート番号が8080が有効になっている場合は、セクションをコメントアウトし無効にします。


動作確認

Tomcat、Apacheを起動し、「http://localhost/doc/」にアクセスします。

猫のアイコンの画面が出れば、Tomcat、Apacheの連携は完了していることが確認できます。


最後に

今回、Tomcatとは何かから始まり、使い方の解説、インストール手順、Apacheとの連携のメリットを紹介しました。

最後に今一度Tomcatの使いどころを復習しておきたいと思います。

Webサーバー、Webアプリケーションとは普段皆さまがホームページを見ているときにサーバーサイドで活躍するものです。

ホームページの制作業界ではユーザーが見る方を「フロントエンド」、ユーザーのホームページを見ている最中に裏で実行されているものを「バックエンド」と呼びます。

Apache、Tomcatは「バックエンド」側になります。

基本的に静的なコンテンツはHTML、CSS、Javascriptになります。ApacheではPHPやRubyなどのサーバーサイドプログラム言語が実行されます。

その中で、最近はJSPやJavaサーブレットなどの動的にページを見せる技術がメジャーなものではTomcatによって実行されています。

JSPはデザイン的な要素が多いのと、Javaサーブレットはシステム的な要素が占めています。

TomcatはJavaサーブレットだけではなく、JSPもJavaサーブレットに変換して実行できるという利点もあります。

その為、開発する際に、デザインの専門家はJSPを開発し、システムの専門家はJavaサーブレットの開発に集中できます。

Tomcatは、世界で最も多くのユーザーがいるWebコンテナの為、深く掘り下げて勉強すると応用が効きより自身の技術力が高まるでしょう。

今回の記事をきっかけにTomcatとApacheを上手に使い、レスポンスの良いWebサイトができることを願っております。


toiroフリーランスは、SHIFTグループがプライムとして参画している独自案件をフリーランスエンジニア向けに紹介する唯一のプラットフォームサービスです。

エージェントによるサポートもありますので、ご利用を検討してみてはいかがでしょうか。