Webアプリ開発事始 第13回

Java入門(3)
~サーブレットとJSP
長谷川裕行
有限会社 手國堂

JSP

JSPはJava Server Pagesの略で、HTMLに埋め込んだスクリプトという形でソースコードを記述します。名称からも察しが付くように、Microsoft社のASP(Active Server Pages)のJava版というイメージです。


- HTMLと共に記述できる -

先に紹介したサンプル(リスト1)でもわかるように、サーブレットではソース中にJavaのコードと共にクライアントに送信するHTMLのタグも埋め込まれます。

  out.println( "<HTML>" );
  out.println( " <BODY>" );
  out.println( " Hello Servlet world!<BR>" );
  out.println( " </BODY>" );
  out.println( "</HTML>" );

つまり、プログラムの中枢となる処理のロジックと、ユーザーインターフェイスのデザインとが混在してしまうのです。CGIも、これと同じ欠点を持っていました。JSPはこの欠点を払拭し、HTMLによるデザインと処理のロジックとを分離して記述できます。

ソース中のスクリプトは、JSPプロセッサと呼ばれる機構によってサーブレットに変換され、サーブレット・コンテナで実行されます。実行された結果は、ソース中のHTMLと共にクライアントに送信されます。

このような仕組みなので、JSPのソースコードはJavaScriptを埋め込んだHTMLと似ています。異なるのは、ソースコードがサーブレットとしてサーバー側で実行され、処理結果はHTMLとしてWebサーバーを介してクライアントに送信される――という点です。




- JSP版“Hello world” -

JSPのソースは<%~%>で囲まれた中に記述します。それ以外の箇所には、通常のHTMLを記述できます。例によって、メッセージを表示するだけの単純なJSPソースを紹介しておきます。

これをサーブレット・コンテナの指定されたディレクトリに保存し、ブラウザからこのJSPファイルのURLを指定すれば、画面にメッセージが表示されます。

Tomcatの場合なら、例えば以下のようなディレクトリに保存することになります(Windows版の場合)。
  C:\tomcat\webapps\test
     ↑Tomcatをインストールしたディレクトリ

こうしてTomcatを起動(再起動)し、ブラウザから例えば以下のようにURLを指定します。

  http://xxxx.xx/test/HelloJsp.jsp

このようにJSPでは、HTMLの中にコードを記述できるため、ユーザーに提示するインターフェイスの構築が容易になります。データベース処理の結果をHTMLの<TABLE>タグを使って表形式で見せるのも簡単です。

リスト2:JSP版“Hello world”プログラム(HelloJsp.jsp)


- JSPとフォーム -

FORMタグを使ったフォームを利用すれば、ユーザーの入力したデータをJSPで受け取って処理できます。処理した結果は、HTMLを使って整形した上でユーザーに提示できます。

フォームに設定するテキストボックスなどのアイテムのname属性は、それを受信するJSP側でgetParameterメソッドによって取得できます。リスト3がフォームを使った入力画面のサンプルです。

  <FORM method=GET action="/test/answer.jsp">

アンダーラインの箇所で、actionオプションを使って入力されたデータを受け取り処理を行うJSPファイルを指定しています。

リスト4が、受け取ったデータを処理するJSP(answer.jsp)です。getParameterメソッドの引数で、フォームの入力アイテムの名前(nameオプションで指定した文字列)を指定しています。



リスト3:データ入力用のHTML~入力されたデータをJSPに送信する
リスト4:ブラウザに入力されたデータを受け取って処理するJSPのソース(answer.jsp)


トップページ
サーブレット
JSP
HTMLと共に記述できる
JSP版“Hello world”
JSPとフォーム
JavaBeanとJDBC
iアプリとJava
あとがき

Copyright © MESCIUS inc. All rights reserved.