「サーブレットさんとJSPさん」の編集履歴(バックアップ)一覧に戻る

サーブレットさんとJSPさん - (2005/09/01 (木) 17:30:27) のソース

<h3><span class="Title"><font style=
"BACKGROUND-COLOR: #99ccff">Webアプリ</font></span></h3>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p>@IT<a href=
"http://www.atmarkit.co.jp/fjava/rensai3/tool01/tool01_1.html">ツールでトライ!初めてのWebアプリケーション(1)</a>を見て勝手に解釈</p>
<p>
サーブレットやJSPと言い出す前のそもそものお約束。そこがWebアプリであること。ブラウザをつかってHTMLで表示すること。</p>
<p>
WebブラウザとWebサーバの間で通信する。お約束はHTTPプロトコル。submitボタンとかあると、きっと通信してる気がする。<br>

 指定したURLに対するデータを要求するGETメソッド、データを添付してリクエストを行うPOSTメソッド。URLあって何ぼって世界なのかな。</p>
</blockquote>
<h3><span class="Title"><font style=
"BACKGROUND-COLOR: #99ccff">サーブレット</font></span></h3>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p>
サーブレットはHTMLを動的に作り出す仕組みらしいよ。サーバで動くメリットはサーバに沢山もってる資産(DBの情報とか便利なクラスとか?)を使えること。手元でちょこっとHTMLを動的に動かしたい(アニメ動かしたいとか)ならjavaアプレットでいいそうな。これはサーバじゃない仕組みなんだろうね。サーバじゃないなら個人のパソに入れてるんだろう何かを。</p>
<p><font style=
"BACKGROUND-COLOR: #ccffcc">サーブレットを使用してアプリケーションを作成するときは、Java言語でクライアントからの要求に応じたHTMLを動的に生成するクラス(サーブレットクラス)を作成し、TomcatなどのWebコンテナに配備します。<br>

HTMLを動的に生成するクラス(サーブレットクラス)は、一から作成するのではなく、その基本機能が実装されているjavax.http.HttpServletクラスを派生(拡張)して、オリジナルのコンテンツを生成するプログラムコードを記述します。<br>

 クライアントからのアクセスがあると、Webコンテナは、インストールされたサーブレットの中から、適切なサーブレットクラスのメソッドを呼び出し、レスポンスを受け取り、これをクライアントWebブラウザに返します。</font></p>
<p>
色々書いてあります。難しいです。図を見るとクライアントは「呼出」と結果「受取」しかやってない。配備とかコンパイルとかはサーバでやってる。JVMももちろんサーバにある。これがクライアントサーバの世界なのか。</p>
<p>
クライアントからのアクセス=ブラウザからURL指定するってことか?</p>
<ol>
<li><font style=
"BACKGROUND-COLOR: #ffff99">クラスファイルがサーブレットコンテナからJavaVM上にロードされる<br>
</font></li>
<li><font style=
"BACKGROUND-COLOR: #ffff99">初期化メソッドが呼び出され、サーブレットが実行可能な状態となる<br>
</font></li>
<li><font style=
"BACKGROUND-COLOR: #ffff99">クライアントからリクエストがあるとserviceメソッドが呼び出される<br>
</font></li>
<li><font style=
"BACKGROUND-COLOR: #ffff99">更新されたクラスが配備された場合や、コンテナがシャットダウンするときに、destroyメソッドが呼び出される</font></li>
</ol>
<p>
これを読むとやっぱりWebサーバを起動したときにそこに置いているサーブレットのクラスファイルはロードされてるような気がする。サーブレットクラスであるという判断は誰がくだすの?<font face="Courier New">importjavax.servlet.*;て書いてあるといいの?そんなわけなさそう。</font></p>
<p><font style=
"BACKGROUND-COLOR: #ccffff">サーバ上にはコンパイルされた後の「.class」ファイルを配置します</font><br>

@IT<a href=
"http://www.atmarkit.co.jp/fjava/rensai2/jspservlet01/jspsevlet01_1.html">基礎から学ぶサーブレット/JSP(1)</a></p>
</blockquote>
<h3><span class="Title"><font style=
"BACKGROUND-COLOR: #99ccff">JSP</font></span></h3>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p><font style=
"BACKGROUND-COLOR: #ffff99">サーブレットはHTMLコンテンツ(文字列)を生成するJavaクラスです。これに対し、JSPでは、HTMLの中に必要に応じてJavaコードを入力することができます。</font></p>
<p><font style="BACKGROUND-COLOR: #ffff99"><font style=
"BACKGROUND-COLOR: #ffffff">じゃあやりたい事は一緒なのか。<% %>で囲まれた部分はjavaって話はよくきく。そしてJSPもサーブレットなんだとこの前教わった。</font></font></p>
<p><font style="BACKGROUND-COLOR: #ffff99"><font style=
"BACKGROUND-COLOR: #ffffff">どうやって動くのか、それが知りたいんだった。先は長いや。</font></font></p>
<ul>
<li><font style=
"BACKGROUND-COLOR: #ccffcc">ディレクティブ:<%@XXXXXX%>という表記を利用することによって、JSPを処理するWebコンテナへの指示を記述できます。</font></li>
</ul>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p>
JSPを処理するってことはJSPがサーバへ送られてきたということか。てことはサーバにはまだ無いの?JSPファイルは。違うよなあ。実行して(そのJSPファイルのurlをブラウザで開く)初めて解釈(コンパイル)が走るってことかな。</p>
</blockquote>
<ul>
<li><font style="BACKGROUND-COLOR: #ccffcc">スクリプトレット:&lt;%
%&gt;</font></li>
</ul>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p>
記述しないようにしろとよく書かれてるスクリプトレットて<%%>のことだったのか!</p>
</blockquote>
<p><font style=
"BACKGROUND-COLOR: #ffff99">JSPページは、実行時にはサーブレットに変換され、サーブレットと同じように振る舞います。</font>(やっぱり。JSP修正して最初遅いのはコンパイルしてるんだろうなと思ってたのは当りだった)<font style="BACKGROUND-COLOR: #ffff99">サーブレットとの違いは、これらの作業はTomcatなどのWebコンテナで自動的に実行されることだといえるでしょう。</font>(あれ?!話が変だよ。サーブレットは事前にWebコンテナにロードされるって言ってなかった?)<font style="BACKGROUND-COLOR: #ffff99">具体的には、Webコンテナは、<b>図1</b>のようにJSPファイルを処理します。JSPは、自動的にサーブレットに変換されて、クラスファイルにコンパイルされた後、実行されます。</font>(サーブレットとの違いがこれってことは</p>
<p><font style="BACKGROUND-COLOR: #ffff99"><br></font></p>
</blockquote>
目安箱バナー