暗黙オブジェクトについて
さて、<% %>で書かれたJavaのソースコードを見ていくと、ちょっと不思議なことをしているのに気がつきます。作成した日付を表示するのに、こんなことをしていますね。
out.println("今日は、" + datestr + "です。");
この「out」というのは、いったい何でしょう? それ以外のソースコードを見てみても、outという変数などは特に見当たりませんね。――実は、これは「暗黙オブジェクト」と呼ばれる、JSP特有の特殊なオブジェクトなのです。
暗黙オブジェクトというのは、JSPに最初から定義されている特別なオブジェクトです。これらは、宣言など特にしなくとも、最初からそういうインスタンスが存在しているものとして扱うことができます。
暗黙オブジェクトはいくつかあるのですが、まずはこの「out」というものだけ覚えておきましょう。これは、OutputStreamを継承した「JspWriter」というクラスのインスタンスとして定義されています。JspWriterというのは、JSPで使うことを考えて機能拡張された特別なOutputStreamと考えればよいでしょう。まだ、こうしたJSP用のクラスというのがどういうものかよくわかりませんから、とりあえずは「このoutを使って何かを出力すると、それがWebブラウザに表示されるのだ」ということだけ覚えておけば十分です。出力用のメソッドとしては、こんなものがあります。
out.print( 出力する値 );
out.println( 出力する値 );
これらのメソッドは、System.outなどですでにおなじみのものですね。System.out.printlnなどとまったく同じ感覚でテキストや数値を出力すれば、そのままWebブラウザに出力されるわけです。ただし、注意しなければいけないのは「WebブラウザはHTMLのソースコードを受け取ってレイアウト表示する」という点です。したがって、printlnしても実際には改行して表示されません(ソースコードが改行されるだけです)。改行したければ、<br>を出力してやる必要があるでしょう。
以上、今回はJSPの基本について整理しました。JSPを書くには、以下のようにすればよいことがわかります。
・Pageディレクティブでファイルの種類とエンコードを指定する。
・Pageディレクティブで必要なクラスをimportする。
・Javaのソースコードは<% %>タグの中に書く。
・ブラウザへの出力にはoutオブジェクトを使う。
これで、とりあえず簡単なテキストなどをブラウザに出力させることはできるようになりました。次回は、フォームから送信された情報を受け取って処理する方法について説明する予定です。