クラス ServletOutputStream
- 実装されているすべてのインターフェース:
CloseableSE、FlushableSE、AutoCloseableSE
ServletOutputStream オブジェクトは、通常 ServletResponse.getOutputStream() メソッドを介して取得されます。 これは、サーブレットコンテナーが実装する抽象クラスです。このクラスのサブクラスは、java.io.OutputStream.write(int) メソッドを実装する必要があります。
- 作成者:
- Various
- 関連事項:
コンストラクターの概要
コンストラクターメソッドのサマリー
修飾子と型メソッド説明voidclose()abstract booleanisReady()データを書き込む可能性のあるメソッドの呼び出しが許可されている場合は、trueを返します (つまりvoidprint(boolean b) boolean値をクライアントに書き込みます。末尾に復帰改行(CRLF)文字はありません。voidprint(char c) 末尾に復帰改行(CRLF)を付けずに、クライアントに文字を書き込みます。voidprint(double d) double値をクライアントに書き込みます。最後に復帰改行(CRLF)はありません。voidprint(float f) float値をクライアントに書き込みます。最後に復帰改行(CRLF)はありません。voidprint(int i) クライアントに int を書き込みます。最後に復帰改行(CRLF)はありません。voidprint(long l) long値をクライアントに書き込みます。最後に復帰改行(CRLF)はありません。voidStringをクライアントに書き込みます。末尾に復帰改行(CRLF)文字はありません。voidprintln()復帰改行(CRLF)をクライアントに書き込みます。voidprintln(boolean b) boolean値をクライアントに書き込み、続いて復帰改行(CRLF)を書き込みます。voidprintln(char c) クライアントに文字を書き込み、その後に復帰改行(CRLF)を続けます。voidprintln(double d) double値をクライアントに書き込み、続いて復帰改行(CRLF)を書き込みます。voidprintln(float f) float値をクライアントに書き込み、続いて復帰改行(CRLF)を書き込みます。voidprintln(int i) クライアントに int を書き込み、続いて復帰改行(CRLF)文字を書き込みます。voidprintln(long l) long値をクライアントに書き込み、続いて復帰改行(CRLF)を書き込みます。voidStringをクライアントに書き込み、続いて復帰改行(CRLF)を書き込みます。abstract voidsetWriteListener(WriteListener writeListener) 書き込みが可能な場合、提供されたWriteListenerを呼び出すようServletOutputStreamに指示しますvoidwrite(ByteBufferSE buffer) 指定されたバッファから出力ストリームに書き込みます。クラス java.io.OutputStreamSE から継承されたメソッド
flush, nullOutputStream, writeSE, writeSE, writeSE
コンストラクターの詳細
ServletOutputStream
protected ServletOutputStream()これは抽象クラスであるため、何もしません。
メソッドの詳細
write
指定されたバッファから出力ストリームに書き込みます。出力ストリームがノンブロッキングモードの場合、このメソッドを呼び出すたびに
isReady()を呼び出してtrueを返す必要があります。または、WriteListener.onWritePossible()コールバックでデータを書き込めることを示す必要があり、そうでない場合はIllegalStateExceptionSE をスローする必要があります。それ以外の場合、
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を返す場合があります。その場合、データを書き込むメソッドを呼び出すことは不正であり、IllegalStateExceptionSE をスローする必要があります。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