サーブレット
「WEBアプリを開発するために作られたプログラムの部品」
【説明】
サーブレットは、「Webサーバー(HTTPサーバー)上で、ウェブページなどを動的に生成したり、データ処理を行うためにサーバサイドのプログラム 」で、WEBアプリの中心を担う機能をもっています。
【メリット】
サーブレットはWEBアプリを開発する上で便利な特徴を持っています。
データを再利用(ライフサイクルの管理)
処理が始まってから終了するまでの一連の流れを管理する機能をもっていて、効率よく仕事をするようにできています。
通常は、一連の処理が完了したらそれまでに使ったデータを破棄してしまいますが、サーブレットは一連の処理が終わっても、データを保持して再利用できるようにします。
そのため、最初の1回目は処理に時間がかかるものの、それ以降データを再利用するので処理が早くなります。
WEBアプリのような頻繁に不特定多数の処理を行う場合は、データをできる限り共有して使いまわした方が効率が良くなります。
マルチスレッドに対応(同時に複数の処理をする)
1つのプログラムを実行している間は、他のプログラムは実行中のプログラムが処理されるのを待つ必要があり、WEBアプリでは、複数のユーザーから頻繁に同時にアクセスがあるため、常に順番待ちになってしまい効率が悪くなってしまいます。
サーブレットは複数の処理を同時に行う「マルチスレッド」に対応しているので、複数のユーザーからのアクセスでも効率良く処理を行うことができます。
プラットフォームに依存しない
サーブレットはJavaのプログラムから作られていて、Windows, Mac, LINUXなどどの環境でも動作することが可能です。
【特徴】
今までのJavaと大きな相違点は、「Javaのプログラムが、ブラウザ上(HTTPサーバ上)で動くこと」です。つまり、サーブレットはWebサーバ(HTTPサーバ)がなければ意味がありません。
【使用場面】
サーブレットは「WEBブラウザからの要求に応えたり、送られてきたデータを処理したりする役割」で「WEBページをはじめとし画面に関する処理」は行いません。その特性から他のプログラムと連携することで真価を発揮します。
JSP (HTML内にJavaのコードを埋め込む)
JSPは「動的にWEBページを生成する技術」でHTML内にJavaのコードを埋め込むことができます。
- サーブレットはWEBアプリ内部の処理
- JSPは主に外部の表示担当
と考えると良いかと思います。サーブレットとJSPが連携することで、
- 「特定のユーザー情報を画面に表示」する
- 「ログイン時に表示する画面の内容を変える」
といったような、いわゆる「動的なWEBページ」を作ることが可能です。
Tomcat (サーブレットを動かすソフト)
サーブレット単独ではプログラムを動作させることができません。
Tomcatはサーブレットを動かすエンジンの役割をしていて、必要に応じて命令を出してサーブレットを動かしてくれます。
【まとめ】
JSP とサーブレットの関係についてようやく考えがまとまってきました。
近いうちになにかアプリを作ってみたいです。