JavaによるWebアプリケーション作成の基礎知識 †
概要 †
Servlet(サーブレット)とは †
JSP(Java Server Pages)とは †
アプリケーションサーバとは †
詳細 †
Servlet(サーブレット)とは †
サーブレットとは、プログラムで動的にHTMLを出力して動的なWebページを作成する仕組みのことです。
出力される結果は普通のHTMLと何ら変わりがないので、クライアントに依存しません。
同じような仕組みとしてCGIがありますが、CGIに比べてサーブレットには次のような利点があります。
- リクエストごとに新しいプロセスを生成する必要がないので、処理効率が高い
- Javaで記述されるので、サーバマシンのプラットフォームに依存しない
- 豊富なAPIが標準で用意されており、実装しやすい
ただし、サーブレットにも次のような欠点があります。
- Javaコード中にHTMLを埋め込むので、デザインの確認を行いにくい
- HTMLを出力するためのソースを、長々と記述する必要がある
- レイアウトを少し変更するだけでも、ソースコードを修正して再コンパイルが行う必要がある
- 少しでも変更すると、アプリケーションサーバを再起動する必要がある
このような欠点を解消するために、JSPが登場しました。
JSP(Java Server Pages)とは †
JSPとは、Java Server Pagesの略でHTMLの中にJavaコードを埋め込んで動的なWebページを作成する仕組みのことで、MicrosoftのASPとよく似ています。
JavaScript?などのスクリプト言語にもよく似ていますが、両者には決定的な違いがあります。
JavaScript?がクライアントで実行されるのに対して、JSPはサーバー側で実行されます。
そのため、JSPの出力結果は普通のHTMLとなんら変わりがなく、クライアントに依存しません
Javaコードの中にHTMLの出力コードを埋め込むサーブレットとは一見逆のように思われますが、JSPとサーブレットは本質的には同じものです。
(実際、JSPは実行時にサーブレットに変換されます)
デザインの中にロジックが埋め込まれるので、サーブレットに比べてWebページデザインのメンテナンス性が向上します。
また、サーブレットとは違い、修正した場合にアプリケーションサーバを再起動しなくても、変更が自動的に反映されます。
しかし、ソースが非常に見にくいので複雑なロジックを実装するのには向いていません。
そのため、「サーブレットに業務ロジックを記述し、結果の表示にはJSPを用いる」という互いの短所を補いあう使用方法が一般的となっています。
アプリケーションサーバとは †
アプリケーションサーバとは、サーブレットやJSPといったサーバーサイドJavaを動作させるのに必要なサーバーソフトです。
(ハードウェアではありません)
アプリケーションサーバは様々なベンダによって開発が行われていますが、The Apache Software Foundationが開発したTomcatが最も有名で、しかもフリーです。
商用の製品としては、WebLogic? Server(BEA), WebSphere?(IBM), JRun Server(Macro Media)などがあります。
Webサーバの機能を持っていることが多いので単独で使用することも可能ですが、本番運用時にはApacheなどのWebサーバと連携して使用されることが多いようです。
負荷分散, フェイルオーバなどの高度な機能を備えているものもあります。
Java勉強会カリキュラムに戻る