パッケージ jakarta.servlet

クラス ServletOutputStream

java.lang.ObjectSE
java.io.OutputStreamSE
jakarta.servlet.ServletOutputStream
実装されたすべてのインターフェース:
CloseableSEFlushableSEAutoCloseableSE

public abstract class ServletOutputStream extends OutputStreamSE
バイナリデータをクライアントに送信するための出力ストリームを提供します。ServletOutputStream オブジェクトは、通常 ServletResponse.getOutputStream() メソッドを介して取得されます。

これは、サーブレットコンテナーが実装する抽象クラスです。このクラスのサブクラスは、java.io.OutputStream.write(int) メソッドを実装する必要があります。

作成者:
Various
関連事項:
  • コンストラクターの概要

    コンストラクター
    修飾子
    コンストラクター
    説明
    protected
    これは抽象クラスであるため、何もしません。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    void
    abstract boolean
    データを書き込む可能性のあるメソッドの呼び出しが許可されている場合は、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
    復帰改行(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
    書き込みが可能な場合、提供された WriteListener を呼び出すよう ServletOutputStream に指示します
    void
    指定されたバッファから出力ストリームに書き込みます。

    クラス java.io.OutputStreamSE から継承されたメソッド

    flush, nullOutputStream, writeSE, writeSE, writeSE

    クラス java.lang.ObjectSE から継承されたメソッド

    clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
  • コンストラクターの詳細

    • ServletOutputStream

      protected ServletOutputStream()
      これは抽象クラスであるため、何もしません。
  • メソッドの詳細

    • write

      public void write(ByteBufferSE buffer) throws IOExceptionSE
      指定されたバッファから出力ストリームに書き込みます。

      出力ストリームがノンブロッキングモードの場合、このメソッドを呼び出すたびに 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

      public void print(StringSE s) throws IOExceptionSE
      String をクライアントに書き込みます。末尾に復帰改行(CRLF)文字はありません。
      パラメーター:
      s - クライアントに送信する String 
      例外:
      IOExceptionSE - 入力または出力の例外が発生した場合
    • print

      public void print(boolean b) throws IOExceptionSE
      boolean 値をクライアントに書き込みます。末尾に復帰改行(CRLF)文字はありません。
      パラメーター:
      b - クライアントに送信する boolean 値
      例外:
      IOExceptionSE - 入力または出力の例外が発生した場合
    • print

      public void print(char c) throws IOExceptionSE
      末尾に復帰改行(CRLF)を付けずに、クライアントに文字を書き込みます。
      パラメーター:
      c - クライアントに送信するキャラクター
      例外:
      IOExceptionSE - 入力または出力の例外が発生した場合
    • print

      public void print(int i) throws IOExceptionSE
      クライアントに int を書き込みます。最後に復帰改行(CRLF)はありません。
      パラメーター:
      i - クライアントに送信する int
      例外:
      IOExceptionSE - 入力または出力の例外が発生した場合
    • print

      public void print(long l) throws IOExceptionSE
      long 値をクライアントに書き込みます。最後に復帰改行(CRLF)はありません。
      パラメーター:
      l - クライアントに送信する long 値
      例外:
      IOExceptionSE - 入力または出力の例外が発生した場合
    • print

      public void print(float f) throws IOExceptionSE
      float 値をクライアントに書き込みます。最後に復帰改行(CRLF)はありません。
      パラメーター:
      f - クライアントに送信する float 値
      例外:
      IOExceptionSE - 入力または出力の例外が発生した場合
    • print

      public void print(double d) throws IOExceptionSE
      double 値をクライアントに書き込みます。最後に復帰改行(CRLF)はありません。
      パラメーター:
      d - クライアントに送信する double 値
      例外:
      IOExceptionSE - 入力または出力の例外が発生した場合
    • println

      public void println() throws IOExceptionSE
      復帰改行(CRLF)をクライアントに書き込みます。
      例外:
      IOExceptionSE - 入力または出力の例外が発生した場合
    • println

      public void println(StringSE s) throws IOExceptionSE
      String をクライアントに書き込み、続いて復帰改行(CRLF)を書き込みます。
      パラメーター:
      s - クライアントに書き込む String 
      例外:
      IOExceptionSE - 入力または出力の例外が発生した場合
    • println

      public void println(boolean b) throws IOExceptionSE
      boolean 値をクライアントに書き込み、続いて復帰改行(CRLF)を書き込みます。
      パラメーター:
      b - クライアントに書き込む boolean 値
      例外:
      IOExceptionSE - 入力または出力の例外が発生した場合
    • println

      public void println(char c) throws IOExceptionSE
      クライアントに文字を書き込み、その後に復帰改行(CRLF)を続けます。
      パラメーター:
      c - クライアントに書き込む文字
      例外:
      IOExceptionSE - 入力または出力の例外が発生した場合
    • println

      public void println(int i) throws IOExceptionSE
      クライアントに int を書き込み、続いて復帰改行(CRLF)文字を書き込みます。
      パラメーター:
      i - クライアントに書き込む int
      例外:
      IOExceptionSE - 入力または出力の例外が発生した場合
    • println

      public void println(long l) throws IOExceptionSE
      long 値をクライアントに書き込み、続いて復帰改行(CRLF)を書き込みます。
      パラメーター:
      l - クライアントに書き込む long 値
      例外:
      IOExceptionSE - 入力または出力の例外が発生した場合
    • println

      public void println(float f) throws IOExceptionSE
      float 値をクライアントに書き込み、続いて復帰改行(CRLF)を書き込みます。
      パラメーター:
      f - クライアントに書き込む float 値
      例外:
      IOExceptionSE - 入力または出力の例外が発生した場合
    • println

      public void println(double d) throws IOExceptionSE
      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

      public abstract void setWriteListener(WriteListener writeListener)
      書き込みが可能な場合、提供された WriteListener を呼び出すよう ServletOutputStream に指示します
      パラメーター:
      writeListener - 書き込みが可能になったときに通知される WriteListener
      例外:
      IllegalStateExceptionSE - 次の条件のいずれかに該当する場合
      • 関連するリクエストはアップグレードされず、非同期も開始されません
      • setWriteListener は同じリクエストの範囲内で複数回呼び出されます。
      NullPointerExceptionSE - writeListener が null の場合
      導入:
      Servlet 3.1
    • close

      public void close() throws IOExceptionSE

      出力ストリームがノンブロッキングモードのときにこのメソッドが呼び出された場合、ストリームにまだクライアントに書き込まれる前のバッファリングされたデータが含まれている場合でも、ストリームが事実上閉じられた状態ですぐに戻ります。コンテナーはこのデータをバックグラウンドで書き込みます。このプロセスが失敗した場合、WriteListener.onError(Throwable) メソッドが通常どおり呼び出されます。

      次で指定:
      インターフェース AutoCloseableSEclose 
      次で指定:
      インターフェース CloseableSEclose 
      オーバーライド:
      クラス OutputStreamSEclose 
      例外:
      IOExceptionSE