クラス ServletOutputStream
- 実装されたすべてのインターフェース:
CloseableSE
、FlushableSE
、AutoCloseableSE
ServletOutputStream
オブジェクトは、通常 ServletResponse.getOutputStream()
メソッドを介して取得されます。 これは、サーブレットコンテナーが実装する抽象クラスです。このクラスのサブクラスは、java.io.OutputStream.write(int)
メソッドを実装する必要があります。
- 作成者:
- Various
- 関連事項:
コンストラクターの概要
コンストラクターメソッドのサマリー
修飾子と型メソッド説明void
close()
abstract boolean
isReady()
データを書き込む可能性のあるメソッドの呼び出しが許可されている場合は、true
を返します (つまりvoid
print
(boolean b) boolean
値をクライアントに書き込みます。末尾に復帰改行(CRLF)文字はありません。void
print
(char c) 末尾に復帰改行(CRLF)を付けずに、クライアントに文字を書き込みます。void
print
(double d) double
値をクライアントに書き込みます。最後に復帰改行(CRLF)はありません。void
print
(float f) float
値をクライアントに書き込みます。最後に復帰改行(CRLF)はありません。void
print
(int i) クライアントに int を書き込みます。最後に復帰改行(CRLF)はありません。void
print
(long l) long
値をクライアントに書き込みます。最後に復帰改行(CRLF)はありません。void
String
をクライアントに書き込みます。末尾に復帰改行(CRLF)文字はありません。void
println()
復帰改行(CRLF)をクライアントに書き込みます。void
println
(boolean b) boolean
値をクライアントに書き込み、続いて復帰改行(CRLF)を書き込みます。void
println
(char c) クライアントに文字を書き込み、その後に復帰改行(CRLF)を続けます。void
println
(double d) double
値をクライアントに書き込み、続いて復帰改行(CRLF)を書き込みます。void
println
(float f) float
値をクライアントに書き込み、続いて復帰改行(CRLF)を書き込みます。void
println
(int i) クライアントに int を書き込み、続いて復帰改行(CRLF)文字を書き込みます。void
println
(long l) long
値をクライアントに書き込み、続いて復帰改行(CRLF)を書き込みます。void
String
をクライアントに書き込み、続いて復帰改行(CRLF)を書き込みます。abstract void
setWriteListener
(WriteListener writeListener) 書き込みが可能な場合、提供されたWriteListener
を呼び出すようServletOutputStream
に指示しますvoid
write
(ByteBufferSE buffer) 指定されたバッファから出力ストリームに書き込みます。クラス java.io.OutputStreamSE から継承されたメソッド
flush, nullOutputStream, writeSE, writeSE, writeSE
コンストラクターの詳細
ServletOutputStream
protected ServletOutputStream()これは抽象クラスであるため、何もしません。
メソッドの詳細
write
指定されたバッファから出力ストリームに書き込みます。出力ストリームがノンブロッキングモードの場合、このメソッドを呼び出すたびに
isReady()
を呼び出してtrue
を返す必要があります。または、WriteListener.onWritePossible()
コールバックでデータを書き込めることを示す必要があり、そうでない場合はIllegalStateException
SE をスローする必要があります。それ以外の場合、
buffer
にデータが残っていないときにこのメソッドが呼び出された場合、メソッドはすぐに戻り、buffer
は変更されません。出力ストリームがノンブロッキングモードの場合、後続の
isReady()
呼び出しで true が返されるか、WriteListener.onWritePossible()
コールバックでデータを再度書き込めることが示されるまで、このメソッドに渡されるバッファーの位置、制限、内容は変更できません。この時点で、バッファの制限はこのメソッドに渡されたときの値から変更されず、位置は制限と同じになります。出力ストリームがブロッキングモードで、
buffer
にスペースが残っている場合、このメソッドはバッファー内の残りのデータがすべて書き込まれるまでブロックします。メソッドが戻ったとき、データが書き込まれている場合、バッファーの制限はこのメソッドに渡されたときの値から変更されず、位置は制限と同じになります。サブクラスでは、このメソッドをオーバーライドして、より効率的な実装を提供することを強くお勧めします。
- パラメーター:
buffer
- データが書き込まれるバッファー。- 例外:
IllegalStateExceptionSE
- 出力ストリームがノンブロッキングモードで、最初にisReady()
を呼び出さずにこのメソッドが呼び出され、そのメソッドがtrue
を返したか、WriteListener.onWritePossible()
がデータを書き込めることを通知していない場合。IOExceptionSE
- 出力ストリームが閉じられている場合、またはその他の I/O エラーが発生した場合。NullPointerExceptionSE
- バッファが null の場合。- 導入:
- Servlet 6.1
print
String
をクライアントに書き込みます。末尾に復帰改行(CRLF)文字はありません。- パラメーター:
s
- クライアントに送信するString
- 例外:
IOExceptionSE
- 入力または出力の例外が発生した場合
print
boolean
値をクライアントに書き込みます。末尾に復帰改行(CRLF)文字はありません。- パラメーター:
b
- クライアントに送信するboolean
値- 例外:
IOExceptionSE
- 入力または出力の例外が発生した場合
print
末尾に復帰改行(CRLF)を付けずに、クライアントに文字を書き込みます。- パラメーター:
c
- クライアントに送信するキャラクター- 例外:
IOExceptionSE
- 入力または出力の例外が発生した場合
print
クライアントに int を書き込みます。最後に復帰改行(CRLF)はありません。- パラメーター:
i
- クライアントに送信する int- 例外:
IOExceptionSE
- 入力または出力の例外が発生した場合
print
long
値をクライアントに書き込みます。最後に復帰改行(CRLF)はありません。- パラメーター:
l
- クライアントに送信するlong
値- 例外:
IOExceptionSE
- 入力または出力の例外が発生した場合
print
float
値をクライアントに書き込みます。最後に復帰改行(CRLF)はありません。- パラメーター:
f
- クライアントに送信するfloat
値- 例外:
IOExceptionSE
- 入力または出力の例外が発生した場合
print
double
値をクライアントに書き込みます。最後に復帰改行(CRLF)はありません。- パラメーター:
d
- クライアントに送信するdouble
値- 例外:
IOExceptionSE
- 入力または出力の例外が発生した場合
println
復帰改行(CRLF)をクライアントに書き込みます。- 例外:
IOExceptionSE
- 入力または出力の例外が発生した場合
println
String
をクライアントに書き込み、続いて復帰改行(CRLF)を書き込みます。- パラメーター:
s
- クライアントに書き込むString
- 例外:
IOExceptionSE
- 入力または出力の例外が発生した場合
println
boolean
値をクライアントに書き込み、続いて復帰改行(CRLF)を書き込みます。- パラメーター:
b
- クライアントに書き込むboolean
値- 例外:
IOExceptionSE
- 入力または出力の例外が発生した場合
println
クライアントに文字を書き込み、その後に復帰改行(CRLF)を続けます。- パラメーター:
c
- クライアントに書き込む文字- 例外:
IOExceptionSE
- 入力または出力の例外が発生した場合
println
クライアントに int を書き込み、続いて復帰改行(CRLF)文字を書き込みます。- パラメーター:
i
- クライアントに書き込む int- 例外:
IOExceptionSE
- 入力または出力の例外が発生した場合
println
long
値をクライアントに書き込み、続いて復帰改行(CRLF)を書き込みます。- パラメーター:
l
- クライアントに書き込むlong
値- 例外:
IOExceptionSE
- 入力または出力の例外が発生した場合
println
float
値をクライアントに書き込み、続いて復帰改行(CRLF)を書き込みます。- パラメーター:
f
- クライアントに書き込むfloat
値- 例外:
IOExceptionSE
- 入力または出力の例外が発生した場合
println
double
値をクライアントに書き込み、続いて復帰改行(CRLF)を書き込みます。- パラメーター:
d
- クライアントに書き込むdouble
値- 例外:
IOExceptionSE
- 入力または出力の例外が発生した場合
isReady
public abstract boolean isReady()データを書き込む可能性のあるメソッド (つまり、write()
、print()
println()
またはflush
) の呼び出しが許可されている場合は、true
を返します。ブロッキングモードでは、このメソッドは常にtrue
を返しますが、データを書き込むメソッドへの後続の呼び出しはブロックされる可能性があります。ノンブロッキングモードでは、このメソッドはfalse
を返す場合があります。その場合、データを書き込むメソッドを呼び出すことは不正であり、IllegalStateException
SE をスローする必要があります。WriteListener.onWritePossible()
が呼び出された場合、true
を返したこのメソッドの呼び出しは暗黙的です。このメソッドが
false
を返し、setWriteListener(WriteListener)
経由でWriteListener
が設定されている場合、ブロックせずに書き込み操作が可能になると、コンテナーはその後WriteListener.onWritePossible()
を呼び出します。最初の呼び出しを除き、WriteListener.onWritePossible()
は、このメソッドが呼び出され false が返された場合にのみ呼び出されます。- 戻り値:
- ブロックせずにデータを書き込むことができる場合は
true
、それ以外の場合はfalse
を返します。 - 導入:
- Servlet 3.1
- 関連事項:
setWriteListener
書き込みが可能な場合、提供されたWriteListener
を呼び出すようServletOutputStream
に指示します- パラメーター:
writeListener
- 書き込みが可能になったときに通知されるWriteListener
- 例外:
IllegalStateExceptionSE
- 次の条件のいずれかに該当する場合- 関連するリクエストはアップグレードされず、非同期も開始されません
- setWriteListener は同じリクエストの範囲内で複数回呼び出されます。
NullPointerExceptionSE
- writeListener が null の場合- 導入:
- Servlet 3.1
close
出力ストリームがノンブロッキングモードのときにこのメソッドが呼び出された場合、ストリームにまだクライアントに書き込まれる前のバッファリングされたデータが含まれている場合でも、ストリームが事実上閉じられた状態ですぐに戻ります。コンテナーはこのデータをバックグラウンドで書き込みます。このプロセスが失敗した場合、
WriteListener.onError(Throwable)
メソッドが通常どおり呼び出されます。- 次で指定:
- インターフェース
AutoCloseableSE
のclose
- 次で指定:
- インターフェース
CloseableSE
のclose
- オーバーライド:
- クラス
OutputStreamSE
のclose
- 例外:
IOExceptionSE