Class HttpOutput

java.lang.Object
java.io.OutputStream
javax.servlet.ServletOutputStream
org.eclipse.jetty.ee8.nested.HttpOutput
All Implemented Interfaces:
Closeable, Flushable, AutoCloseable, Runnable

public class HttpOutput extends javax.servlet.ServletOutputStream implements Runnable

HttpOutput implements ServletOutputStream as required by the Servlet specification.

HttpOutput buffers content written by the application until a further write will overflow the buffer, at which point it triggers a commit of the response.

HttpOutput can be closed and reopened, to allow requests included via RequestDispatcher.include(ServletRequest, ServletResponse) to close the stream, to be reopened after the inclusion ends.

  • Constructor Details

  • Method Details

    • getHttpChannel

      public HttpChannel getHttpChannel()
    • getInterceptor

      public HttpOutput.Interceptor getInterceptor()
    • setInterceptor

      public void setInterceptor(HttpOutput.Interceptor interceptor)
    • isWritten

      public boolean isWritten()
    • getWritten

      public long getWritten()
    • reopen

      public void reopen()
    • acquireWriteBlockingCallback

      protected SharedBlockingCallback.Blocker acquireWriteBlockingCallback() throws IOException
      Throws:
      IOException
    • softClose

      public void softClose()
    • complete

      public void complete(Callback callback)
    • completed

      public void completed(Throwable failure)
      Called to indicate that the request cycle has been completed.
    • close

      public void close() throws IOException
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Overrides:
      close in class OutputStream
      Throws:
      IOException
    • getByteBuffer

      public ByteBuffer getByteBuffer()
    • isClosed

      public boolean isClosed()
    • isAsync

      public boolean isAsync()
    • flush

      public void flush() throws IOException
      Specified by:
      flush in interface Flushable
      Overrides:
      flush in class OutputStream
      Throws:
      IOException
    • write

      public void write(byte[] b, int off, int len) throws IOException
      Overrides:
      write in class OutputStream
      Throws:
      IOException
    • write

      public void write(ByteBuffer buffer) throws IOException
      Throws:
      IOException
    • write

      public void write(int b) throws IOException
      Specified by:
      write in class OutputStream
      Throws:
      IOException
    • print

      public void print(String s) throws IOException
      Overrides:
      print in class javax.servlet.ServletOutputStream
      Throws:
      IOException
    • println

      public void println(String s) throws IOException
      Overrides:
      println in class javax.servlet.ServletOutputStream
      Throws:
      IOException
    • sendContent

      public void sendContent(ByteBuffer content) throws IOException
      Blocking send of whole content.
      Parameters:
      content - The whole content to send
      Throws:
      IOException - if the send fails
    • sendContent

      public void sendContent(InputStream in) throws IOException
      Blocking send of stream content.
      Parameters:
      in - The stream content to send
      Throws:
      IOException - if the send fails
    • sendContent

      public void sendContent(ReadableByteChannel in) throws IOException
      Blocking send of channel content.
      Parameters:
      in - The channel content to send
      Throws:
      IOException - if the send fails
    • sendContent

      public void sendContent(Resource resource) throws IOException
      Blocking send of resource.
      Parameters:
      resource - The resource content to send
      Throws:
      IOException - if the send fails
    • sendContent

      public void sendContent(HttpContent content) throws IOException
      Blocking send of HTTP content.
      Parameters:
      content - The HTTP content to send
      Throws:
      IOException - if the send fails
    • sendContent

      public void sendContent(ByteBuffer content, Callback callback)
      Asynchronous send of whole content.
      Parameters:
      content - The whole content to send
      callback - The callback to use to notify success or failure
    • sendContent

      public void sendContent(InputStream in, Callback callback)
      Asynchronous send of stream content. The stream will be closed after reading all content.
      Parameters:
      in - The stream content to send
      callback - The callback to use to notify success or failure
    • sendContent

      public void sendContent(ReadableByteChannel in, Callback callback)
      Asynchronous send of channel content. The channel will be closed after reading all content.
      Parameters:
      in - The channel content to send
      callback - The callback to use to notify success or failure
    • sendContent

      public void sendContent(Resource resource, Callback callback)
      Asynchronous send of whole resource.
      Parameters:
      resource - The resource content to send
      callback - The callback to use to notify success or failure
    • sendContent

      public void sendContent(HttpContent httpContent, Callback callback)
      Asynchronous send of HTTP content.
      Parameters:
      httpContent - The HTTP content to send
      callback - The callback to use to notify success or failure
    • getBufferSize

      public int getBufferSize()
    • setBufferSize

      public void setBufferSize(int size)
    • recycle

      public void recycle()
    • resetBuffer

      public void resetBuffer()
    • setWriteListener

      public void setWriteListener(javax.servlet.WriteListener writeListener)
      Specified by:
      setWriteListener in class javax.servlet.ServletOutputStream
    • isReady

      public boolean isReady()
      Specified by:
      isReady in class javax.servlet.ServletOutputStream
    • run

      public void run()
      Specified by:
      run in interface Runnable
    • toString

      public String toString()
      Overrides:
      toString in class Object