JSP/Servletとは何か

静的Webページと動的Webページ

ホームページは基本的にHTMLで記述されています。ただ、原則的にHTMLはマークアップランゲージと言われる言語で、ホームページの構造を記述することはできるものの、Web上で動くアプリケーションを作ることはできません。

近年、HTML5の出現により、HTMLでアプリケーションが作れるようになりましたが、旧来のそのような動きのないWebページのことを、静的Webページと言います。(図0-1.)しかし、現在Webページは、メールの送受信ができたり、電車やバスを利用する際の乗り換え地点や移動にかかる時間を調べられたりと、あたかもアプリケーションのような働きをしています。

このようなWebページのことを、動きのあるWebページということで、動的Webページなどと呼びます。ここで学習するJSPとサーブレットは、HTMLにJavaを組み込むことにより、動的Webページを生成することができます。

図0-1.静的Webページの仕組み
静的Webページの仕組み

動的WEBページの仕組み

では、いったいどのようにしてその仕組みを実現しているのでしょうか?そのために、まずはWebページを見ることができるようになる仕組みについて説明しましょう。

通常、Webページはインターネットを介してWebサーバーにWebページの要求(リクエスト)を送ります。すると、Webサーバーはそのリクエストにふわさしい、あらかじめ用意されたHTMLを返し(レスポンス)ます。すると、それを受け取ったWebブラウザは、その内容を表示します。

これに対し、動的なWebページは、リクエストがWebサーバーに送られるまでは同じですが、そのリクエストをもとにサーバー上でアプリが起動し、データベースへのアクセスといった処理お行い、結果をHTMLという形でレスポンスします。(図0-2.)

つまり、動的なページでは、ページを操作しているユーザーの条件次第でサーバーがその条件にあった処理を行い、その処理結果を元に生成されたWebページが表示されるのです。

そのため、ユーザーの指定する条件により内容が変わる点が静的なWebページと大きく異なります。

図0-2.動的WEBページの仕組み
動的WEBページの仕組み

JSP/Servletの仕組み

ここではさらにJSPの詳しい説明をしていきます。JSPとはJavaServerPagesの略で、Java言語を利用してアプリケーションサーバーで動的なWEBページを生成し、利用者側に送信し表示させる技術です。簡潔に述べるとHTMLファイルの中に、Javaのコードを埋め込んでJavaの処理が可能になる仕組みがJSPです。

結果として、Javaの実行した処理結果をHTMLとして出力させる事ができ、クライアント側(ユーザー)のリクエスト(要求)に応じた動的なWEBページを生成しレスポンス(応答)する事が可能になります。

それに対して、サーブレットとは、Web上で実行されるJavaプログラムのことで、このJSPとサーブレットの組み合わせによりWebアプリが構成されています。また、JSPを実行するには、Webサーバーとは別に、アプリケーションサーバーと呼ばれるサーバーが必要です。これは、アプリケーションソフトウェアを実行するサーバーコンピューターや、クライアント側とサーバー側の中間に入るソフトウェアの事をいい、Webサーバーと連携することにより、Web上でアプリを動作させることを可能にしています。

JavaScriptとの違い

ホームページ上で動く処理を行うのであれば、JavaScriptを利用することもできます。しかし、この2つはどのように違うのでしょうか?JavaScriptは、WEBサーバーから送信されるHTMLファイルの中に記述されており、実行はWebブラウザ上で行われます。つまり、クライアント側で動作するのが、JavaScriptです。

それに対し、JSP/Servletは、Webサーバー側でJavaのコードが実行され、その実行結果の内容がHTMLとしてクライアント側に送信されブラウザー上に表示されるのです。

また、JavaScriptは、ブラウザー上でソースを見ることが可能です。しかし、JSPの場合はWebサーバー側で処理が行われその処理結果の内容だけが送信されますからブラウザー上でソースを見る事ができません。そのため、ユーザーにどういった処理をしているか知られることがありません。

アプリケーションサーバーApache Tomcat

Apache Tomcat

そして、JSP/Servletで用いられるこのアプリケーションサーバーが、Apache Tomcat(アパッチ・トムキャット、以降Tomcat)です。これは、WebサーバーであるApacheにアプリケーションサーバーを組み合せたもので、Javaのアプリケーションサーバーは他の種類も存在しますが、現在もっとも広く普及してるものです。

Javaのアプリケーションサーバーは他の種類も存在しますが、現在もっとも広く普及してるものです。

通常、JSP/サーブレットを実際の運用に近い形でおこなおうとすると、ネットで接続された「クライアントのコンピュータ」と「サーバーのコンピュータ」の準備が必要になります。その負担を軽減し、1台のパソコンでネットワーク構築を実現させるためにTomcatが必要になります。(図0-3.)

図0-3.Apache/TomcatとJSP/Servlet
Apache/TomcatとJSP/Servlet

ローカル環境での開発

しかし、Tomcatは開発環境としてローカルな環境にWebサーバーおよびアプリケーションサーバーを構築し、ネットワークを介することなくWebアプリ開発を可能にします。

これにより、PCを複数台用意する必要がなく1台のPC上で、プログラムを作成→JSPを実行→ブラウザーでの確認といった一連の動作が行えるようになります。

また、IDE(統合開発環境)であるEclipseでは、それらを容易に操作する環境を用意しています。そこで、ここでは開発環境としてEclipseを使うことを前提として、JSP/Servletの学習を進めていくことにします。