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

Servlet

pointこの用語のポイント

pointJavaのプログラムだよ

pointWebサーバ上で動くよ

スポンサーリンク

簡単に書くよ

Servlet(読:サーブレット)とは

「Java Servlet」のこと。
用語の中身としては

Webサーバ(ホームページのファイルが置いてあるコンピュータ)上でお仕事をするJavaのプログラム
です。


image piyo

詳しく書くよ

順番に見ていきましょう。
まずは予備知識として

サーバ
Webサーバ
プログラミング言語
Java


について簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。

サーバは「サービスや機能を提供する側のコンピュータ」です。

サーブレット

Webサーバは、さっくり書くと「ホームページ関連の仕事をしているサーバ」です。

サーブレット2

あなたがホームページを見るとき、まずWebブラウザさん(ホームページを見るときに使うソフトからWebサーバさんに「このページをおくれ」と お願いが出されます。

サーブレット3

そのお願いに対して、WebサーバさんはWebブラウザさんに「ほれ、そのページだよ」と お返事をします。
くれと言われたホームページのファイルをあげるのです。

サーブレット4

Webブラウザさんは、Webサーバさんからもらったファイルを画面に表示します。

サーブレット5

これが、あなたがホームページを見るときの流れです。

この流れにおいて、ホームページのファイルを「ほれ、そのページだよ」とくれたのがWebサーバさんです。

サーブレット6

プログラミング言語は「プログラムの元ネタソースコードを書くときに使う言葉」です。

一般的なプログラムというのは、まず人間語で元ネタを書き、それをコンピュータさんが分かる言葉に翻訳することで完成します。

サーブレット7

この「元ネタ」を書くときに使う言語がプログラミング言語です。

サーブレット8

Javaは「一度書けば、どこでも動く」の理念で作られたプログラミング言語です。
プログラムの元ネタを書くときに使う言葉のひとつです。

サーブレット9

Javaのプログラムは、どんな環境でも動くということに(建前上は)なっています。

サーブレット10

ちなみに、Javaが「オブジェクト指向」という用語を世間一般に流行らせました。

以上を踏まえて、本題に入ります。

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

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

サーブレット11

あるいは、Webブラウザで動くJavaプログラムです。
最初はWebサーバにありますが、ホームページを見るときにパソコンさんに移動してきて、お仕事自体はパソコンさんの中でします。
このJavaプログラムは「Javaアプレット」と言います。

サーブレット12

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

お待たせしました。
この

Webサーバで動くJavaプログラム

が「サーブレット」です。

サーブレット13

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

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

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

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

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

サーブレット14

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

サーブレット15

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

サーブレット16

よく分からなければ、サーブレットさんが働くお膳立てをするのがサーブレットコンテナさんだと思ってください。
サーブレットコンテナさんのお陰で、サーブレットさんはWebサーバ上で職務を全うできています。

サーブレットさんとサーブレットコンテナさんは切っても切れない関係です。
せっかくなので併せて覚えてあげてくださいね。

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

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


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

まずは

1.ライフサイクル管理

です。

これは要するに

一度お仕事を始めたら、しばらく待機しているよ

です。
ちょっと小難しい言い方をすると、一度メモリ上に展開したら、しばらくそのままになっているのです。

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

サーブレット17

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

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

サーブレット18

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

次に

2.マルチスレッド対応

です。

説明するのが疲れてきたので、ざっくりと書いていきますね。
これは

たくさんの依頼を1人でこなせますよ

です。

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

サーブレット19

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

サーブレット20

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

サーブレット21

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

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

最後に

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

です。

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

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


image piyo2

一言でまとめるよ

まぁ「サーブレット」って単語が出てきたら「Webサーバ(ホームページのファイルが置いてあるコンピュータ)上で動くJavaプログラムなんだな~」と お考えください。

一番上に戻るよ
スポンサーリンク
書籍画像063
書籍画像051


書籍画像
わわわ説明術コラム
宣伝だよ
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本【Audible】
クイズで学ぶUIデザイン ユーザビリティの基本が身につく50問
タヌキとキツネ