[ 通常表示 ]  [ 簡易表示 ]  [ シンプル表示 ]

「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

サーブレット (Servlet)

pointこの用語のポイント

pointJavaのプログラムだよ

pointWebサーバ上で動くよ

スポンサーリンク

簡単に書くよ

サーブレット (Servlet)とは

「Java Servlet」のこと。
つまり

Webサーバ(ホームページのファイルを置くサーバ)上でお仕事をするJavaのプログラム
です。

image piyo

詳しく書くよ

※このページの説明は「Java Servlet」の説明と同じです。既に「Java Servlet」の説明をご覧になった方は、読んでも意味が無いと思います。

Javaプログラミング言語の一つね。
プログラムの元ネタ(ソースコード)を書くときに使う言葉です。

Javaを生み出した人は、このプログラミング言語を使って、いろいろなプログラムを作れるようにしました。

例えば、普通にパソコンさんで動くJavaプログラムです。
最初からパソコンさんの中にいて、パソコンさんの中でお仕事をします。
このJavaプログラムを「Javaアプリケーション」と言います。

サーブレット(Servlet)

あるいは、Webブラウザホームページを見るときに使うソフト)で動くJavaプログラムです。
最初はWebサーバ(ホームページのファイルを置くサーバ)にありますが、ホームページを見るときにパソコンさんに移動してきて、お仕事自体はパソコンさんの中でします。
※「サーバ」は「サービスを提供するコンピュータ」ね
このJavaプログラムは「Javaアプレット」と言います。

サーブレット(Servlet)2

あるいは、Webサーバで動くJavaプログラムです。
このプログラムは、いわゆる「CGI」と呼ばれている奴等と同じです。
普段はWebサーバ上で待機していて、パソコンさんとかから何か要求が来ると「へいへい、分かりましたよ~」とお仕事を始めます。

お待たせしました。
この「Webサーバで動くJavaプログラム」が「サーブレット(Servlet)」です。

サーブレット(Servlet)3

きちんと書くなら「Java Servlet」ですけどね。
「サーブレット」や「Servlet」と表記される場合も多いです。

ちなみに、Webサーバで動くJavaプログラムには、他に「JSP」と呼ばれる奴がいます。
JSPさんは一見するとサーブレットさんとは別人ですが、実際にお仕事をするときはサーブレットさんに変身します。
ですから、実質的にJSPもサーブレットです。
もちろん、細かい違いはいろいろありますけどね。
気になる方は調べてみてください。

話をサーブレットに戻します。

サーブレットさんがお仕事をするためには「サーブレットコンテナWebコンテナサーブレットエンジン)」と呼ばれるソフトウェアが必要です。
せっかくなので、サーブレットコンテナについても、ものすご~~~~い大雑把に説明しておきますね。

パソコンさんからサーブレットさんにお仕事の依頼が来たとしましょう。

サーブレット(Servlet)4

このお仕事の依頼は、まずサーブレットコンテナさんが受け取ります。

サーブレット(Servlet)5

そして、サーブレットコンテナさんがサーブレットさんにお仕事をさせるのです。

サーブレット(Servlet)6

よく分からなければ、サーブレットさんが働くお膳立てをするのが、サーブレットコンテナさんだとお考えください。
サーブレットコンテナさんのお陰で、サーブレットさんはWebサーバ上で職務を全うできています。
サーブレットさんとサーブレットコンテナさんは切っても切れない関係です。
せっかくなので併せて覚えてあげてくださいね。

また、サーブレットさんの特徴としてよく挙げられるのは、以下の3点です。

1.ライフサイクル管理
2.マルチスレッド対応
3.プラットフォーム非依存


うん、何のことかさっぱり分かりませんね。
順番に見ていきましょう。

まずは

1.ライフサイクル管理

です。

これは要するに「一度お仕事を始めたらしばらく待機しているよ」です。
ちょっと小難しい言い方をすると、一度メモリ上に展開したら、しばらくそのままになっているのです。

例えばCGIは、依頼が来ると起きてお仕事を始めますが、終わったらすぐに寝てしまいます。
そのため、依頼が来るたびに起きる時間が掛かります。

サーブレット(Servlet)7

それに対してサーブレットさんは、一度起きたらしばらく起きています。
お仕事が終わってもすぐにはお休みしません。

つまり、起きるのに時間が掛かるのは最初の一回だけです。
二回目以降は既に起きているので、すぐにお仕事に取り掛かれます。
よって、一回目と比較して二回目以降の起動が早いのです。

サーブレット(Servlet)8

これが「ライフサイクル管理」です。
「ライフサイクル管理」自体の意味はちょっと違いますが、出てきたら「一度起きたら起きっぱなしだから二回目以降のお仕事が少し速いのね」とお考えください。

次に

2.マルチスレッド対応

です。

説明するのが疲れてきたので、ざっくりと書いていきますね。
これは「たくさんの依頼を一人でこなせますよ」です。

プログラムさんは、お仕事をするときはメモリに居座ります。

サーブレット(Servlet)9

1つのプログラムが1つの依頼しか処理できなければ、3つの依頼を処理するためには3つプログラムが必要です。
メモリの上に3人が乗るので、ちょっと狭いですね。

サーブレット(Servlet)10

それに対して、1つのプログラムで3つの依頼を処理できれば、3つの依頼を処理するために必要なプログラムは1つです。
メモリの上に1人しか乗っていないので、広々ですね。

サーブレット(Servlet)11

つまり、メモリの節約ができるということです。

これが「マルチスレッド対応」です。
一人で複数の依頼を処理できます。
出てきたら「メモリが節約できるのね」とお考えください。

最後に

3.プラットフォーム非依存

です。

これはサーブレットというよりはJavaの特徴ですね。
Javaの理念は「一度書けば、どこでも動く」です。
サーブレットもJavaなので、その理念を受け継いでいます。
WindowsだろうとLinuxだろうと何でもかかってこい!です。

よく挙げられる特徴としてはそんなところでしょうか。
他にもあるので、あとは頑張って調べてください。

image piyo2

一言でまとめるよ

まぁ「サーブレット(Servlet)」って単語が出てきたら「Webサーバ上で動くJavaプログラムなんだな~」と、お考えください。

一番上に戻るよ
スポンサーリンク