- ベストアンサー
サーブレットとJSPについて
こんにちは、今回初投稿させてもらいます。aetklimです。よろしくお願いします。 過去ログを見たのですが、同じような質問が見当たらなかったので、質問させてもらいます。 初歩的なことなのですが、サーブレットとJSPの意味(違い)が分かりません。本やサイトなどで調べたのですが、初めての僕には意味不明なのでどなたか、詳しく、分かりやすいく説明してもらいませんでしょうか。 どうか、よろしくお願いします。返答をお待ちしております。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
JAVA言語そのものについてはある程度は理解されているでしょうか。 また、WEBの仕組みやWEBアプリケーションについての理解も必要です。 Java Servletというのはサーバーの内部で動作するJAVA言語で作られたアプリケーションです。 動作としてはCGIと同じような動きをします。(仕組みは違いますが) 掲示板を例にするとHTMLページから送信されたデータを受取り、ファイルに書き込み、その結果画面をブラウザに送信するといった処理を行うのがServletです。 JSPはHTMLの記述の中にJAVAのコードを記述することでコンパイルなしでデータの受取りや動的なページの生成を行う技術です。 Servletを用いても動的なHTMLは作れますが、HTMLのコード全てをServletから送信しなければならないので面倒であり、また、HTMLは画面デザインに関係してくるので コンパイルが必要なServletに記述していては画面の変更などをHTMLファイルのように簡単に行えません。 JSPはコンパイルをせずHTMLファイルの中に直接JAVAコードを記述するだけでで動的なページを生成できるのでデザインの変更などが行いやすいのがメリットです。 ただし、あまりJAVAコードを記述すると内容が複雑となり管理しにくくなります。 そこで役割としてサーバ内部の処理はServletで行い、画面表示はJSPで行うというのが一般的な方法となっています。 JSPはコンパイルしないと書きましたが、実際はサーバにインストールされたJSPコンテナというモジュールによって自動的にコンパイルされServletに変換されています。 簡単に書くとJSPはHTMLの中にServletのJAVAコードが埋め込まれていてアクセス(起動)されると自動的にコンパイル・実行を行う機能です。 つまりJSPも結局は同じServletであるということになります。 ただ、プログラムの処理と表示する画面の部分をメンテナンスしやすいように別々にしているという訳です。 下記のページで分りやすく解説されているので参考にしてください。 JSP・サーブレットについての解説 http://www.atmarkit.co.jp/fjava/rensai2/jspservlet01/jspsevlet01_1.html WEBの仕組み http://www.lsd.tamagawa.ed.jp/johokiso/ITTEXT2001/FPEx/FPIndex.htm CGIについて http://www.mytools.net/cgitips/index.html
その他の回答 (2)
> ちなみに一つお聞きしたいのですが > JSPはクライアント側で動くとのことですが、クライアントで処理を行うこととお受けしてよろしいんでしょうか? これは間違いです。 No.2でwolfwoodさんが記述されているように、JSPファイルはサーバ上で JSPコンテナによって一度Servletに変換され、Servletコンテナによって 実行されます。 つまり、JSPについてもサーバ側で動作します。 ServletとJSPの違いについてもwolfwoodさんが記述されている通りです。 簡単に言うと、 1. マルチプラットフォームである優位性を生かして、サーバ上でJava アプリケーションを動かす仕組み(これがServlet)が考えられた。 2. Servletでは、HTMLなどのデザインを表示するのに、File出力などと同様、 OutputStreamへの書き込みという方法を取るしかなかった。 3. 通常のアプリケーションと異なりWEBアプリケーションではデザインの変更が多く、 それを専用に行うWEBデザイナもいるが、彼らはJavaについてはほとんど知らず、 新しく勉強するには時間がかかる。 4. また、画面デザインがプログラム中に埋め込まれることで、画面デザインと 実際のロジック(処理)が入り組んで、平行開発や既存のプログラムの改造が 複雑になりやりにくくなる。 という前提があり、ある程度HTMLのようなマークアップ言語に近い形で記述できるように と、JSPが開発されました。
お礼
回答ありがとうございました。 なんとなくですがServletとJSPについての内容と両者の違いなどが理解できたと思います。
- vod7
- ベストアンサー率22% (24/108)
サーブレットはサーバ側で動きJSPはクライアント側で動きます。 クライアントから要求があると、サーブレットが処理結果を返します。 JSPはその際、表示に使います。 JSPの書き方はHTMLに非常に似てます。 以下の%で囲まれたところがJSPのタグです。 <html> <head> <title>Hello!!</title> </head> <body> <% out.println("Hello!!"); %> </body> </html>
お礼
ありがとうございます。 若干分からないことがありますが、参考のサイトで補おうと思います。 ちなみに一つお聞きしたいのですが JSPはクライアント側で動くとのことですが、クライアントで処理を行うこととお受けしてよろしいんでしょうか? 再度、おねがいします。
お礼
回答ありがとうございます。 JAVAについてはある程度基礎的な部分を理解しているつもりですが、 サーブレット、JSPの処理の流れについてよく分からなかったので質問させていただきました。