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)
|
|
|