第1回:Javaの基礎はキーワードを知ることから始まる -1-2-3-4 |
JSPとサーブレットとの違い
表1に示したように、WebアプリケーションはJSPかサーブレットのいずれかを用いて開発する。JSPとサーブレットには次のような違いがある。 1. JSP 簡単にいえば「HTMLソース中にJavaのプログラムを埋め込む」開発スタイルとなる。 2. サーブレット クライアントからJSPで作成されたプログラムが呼び出されると、始めて呼び出された際にサーブレットに変換してコンパイルされる。そして、2回目以降の呼び出しではJSPのプログラムが更新されていなければ、すでにコンパイルされているプログラムをそのまま実行する仕組みだ(fig.2)。 fig.2■JSPの動的コンパイル すなわちJSPは最終的にサーブレットとして実行されるため、JSPとサーブレットとの違いは、開発スタイルということになる。JSPの場合には、(HTMLにJavaのプログラムが埋め込まれた)テキストファイルとしてJSPコンテナに配置するが、サーブレットの場合にはあらかじめコンパイルしたファイルとしてサーブレットコンテナに配置する。 Webアプリケーションを開発する場合には、JSPを使ってもサーブレットを使っても、どちらでもよい。とはいえ、それぞれに次のようなメリット・デメリットがあるので、明確に使い分けることが重要である。 JSP デメリット サーブレット 一般には、JSPとサーブレットのそれぞれのメリットとデメリットを活かすよう、次の指針で組み合わせて使うことが多い。 1- JSPではユーザーインターフェイスを記述する JSPでは、HTMLを主体として複雑で記述が長くなるJavaコードを直接書かない。複雑な処理は、サーブレットやJavaBeans、EJBを呼び出して処理をする。そのようにすれば、JSPのファイルがJavaコードだらけで分かりづらくなる問題点を解決することができる。後からHTMLソースの適所を変更することも容易だ。 2--サーブレットでは処理のみを記述する 実際の処理はサーブレットに注力し、サーブレットにはユーザーインターフェイスを記述しないものだ。ユーザーインターフェイスに関する部分はJSPに記述し、サーブレットからJSPに処理を委託する形式をとる。 近年はWebのビジュアル化が進んでおり、開発者とデザイナーが分業して1つのWebアプリケーションを構築することが多い。そのため、デザイナーがどれだけ柔軟にクライアントに返すHTMLテキストを編集できるかがカギとなる。 習得しやすく、また理解しやすいのはJSPであるが、すべてをJSPで処理するのは避けたほうがよいだろう。1つのファイルにHTMLソースとJavaコーディング部分を混ぜると、開発者とデザイナーとの分業がしにくくなる問題があるからだ。すべてをJSPで処理する場合には、デザイナーが、埋め込まれたJavaの複雑なコードを見て編集する必要があり、分かりづらいばかりか、誤ってJavaのコードを編集したり削除されてしまうという弊害もある。 後でユーザーインターフェイスを変更できるようにするためにも、インタフェース部分はJSP、それ以外の部分はサーブレットで実装するといった使い分けが一般的だ。 |