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

Java Servlet

pointこの用語のポイント

pointJavaのプログラムだよ

pointWebサーバ上で動くよ

スポンサーリンク

簡単に書くよ

Java Servlet(読:ジャヴァサーブレット)とは

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


image piyo

詳しく書くよ

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

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


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

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

Java Servlet

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

Java Servlet2

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

Java Servlet3

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

Java Servlet4

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

Java Servlet5

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

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

Java Servlet6

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

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

Java Servlet7

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

Java Servlet8

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

Java Servlet9

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

Java Servlet10

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

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

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

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

Java Servlet11

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

Java Servlet12

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

お待たせしました。
この

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

が「Java Servlet」です。

Java Servlet13

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

話をJava Servletに戻します。

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

パソコンさんからJava Servletさんにお仕事の依頼が来たとしましょう。

Java Servlet14

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

Java Servlet15

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

Java Servlet16

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

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

また、Java Servletさんの特徴としてよく挙げられるのは、以下の3点です。

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


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

まずは

1.ライフサイクル管理

です。

これは要するに

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

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

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

Java Servlet17

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

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

Java Servlet18

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

次に

2.マルチスレッド対応

です。

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

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

です。

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

Java Servlet19

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

Java Servlet20

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

Java Servlet21

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

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

最後に

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

です。

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

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


image piyo2

一言でまとめるよ

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

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


書籍画像
わわわ説明術コラム
宣伝だよ
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本【Audible】
サイバーセキュリティお嬢様と学ぶ 情報セキュリティの基本
ソフトウェア開発現場の「失敗」集めてみた。 42の失敗事例で学ぶチーム開発のうまい進めかた