- Home ›
- サーブレット/JSP入門 ›
- 暗黙オブジェクト ›
- HERE
outオブジェクト
outオブジェクトはJSPの実行結果をクライアントへの出力するためのオブジェクトで、JspWriterクラスのオブジェクトです。
まずJspWriterのクラス図を見て下さい。
- java.lang.Object
- java.io.Writer
- javax.servlet.jsp.JspWriter
- public abstract class JspWriter extends java.io.Writer
暗黙オブジェクトは既にオブジェクトが作成された状態となっているのでメソッドについてだけ確認していきます。
printメソッドとprintlnメソッド
outオブジェクトの主な用途は引数に指定した値を文字列に変換してから出力バッファに出力するために使います。
例えば次のようにJSPページ内で記述されていた場合を考えて見ます。
<p> <% out.println("サンプル"); %> </p>
これは次のように記述した場合と同じになります。
<p> サンプル </p>
メソッドとしては「print」メソッドと「println」メソッドがあり「println」メソッドの方は改行も出力されます。ただし出力されるHTMLページ内で改行は行われますが、<br>に変換されるわけではないのでHTMLページの表示上では違いはありません。
また例として「println」メソッドの引数には各データ型毎に一通りの種類が用意されています。
abstract void | println(boolean x) |
abstract void | println(char x) |
abstract void | println(char[] x) |
abstract void | println(double x) |
abstract void | println(float x) |
abstract void | println(int x) |
abstract void | println(long x) |
abstract void | println(java.lang.Object x) |
abstract void | println(java.lang.String x) |
abstract void | println() |
このため、「println」メソッドの引数にはデータ型を意識せずに利用することが出来ます。「print」メソッドも同様です。それでは1つだけ定義を確認してみます。
println public abstract void println(int x) throws java.io.IOException
Print an integer and then terminate the line. This method behaves as though it invokes print(int) and then println(). Parameters: x - the int to write Throws: java.io.IOException - If an error occured while writing
その他のメソッド
それ以外に用意されているメソッドをいくつか紹介しておきます。
まずは出力バッファをクリアする「clear」メソッドです。
clear public abstract void clear() throws java.io.IOException
Clear the contents of the buffer. If the buffer has been already been flushed then the clear operation shall throw an IOException to signal the fact that some data has already been irrevocably written to the client response stream. Throws: java.io.IOException - If an I/O error occurs
次に出力バッファをフラッシュする「flush」メソッドです。
flush public abstract void flush() throws java.io.IOException
Flush the stream. If the stream has saved any characters from the various write() methods in a buffer, write them immediately to their intended destination. Then, if that destination is another character or byte stream, flush it. Thus one flush() invocation will flush all the buffers in a chain of Writers and OutputStreams. The method may be invoked indirectly if the buffer size is exceeded. Once a stream has been closed, further write() or flush() invocations will cause an IOException to be thrown. Throws: java.io.IOException - If an I/O error occurs
( Written by Tatsuo Ikura )