org.apache.coyote

## Class Request

- java.lang.Object
- - org.apache.coyote.Request

-     public final class Request
      extends Object

  This is a low-level, efficient representation of a server request. Most fields are GC-free, expensive operations are delayed until the user code needs the information. Processing is delegated to modules, using a hook mechanism. This class is not intended for user code - it is used internally by tomcat for processing the request in the most efficient way. Users ( servlets ) can access the information using a facade, which provides the high-level view of the request. Tomcat defines a number of attributes:
  - "org.apache.tomcat.request" - allows access to the low-level request object in trusted applications
  Author:
    James Duncan Davidson [duncan@eng.sun.com], James Todd [gonzo@eng.sun.com], Jason Hunter [jch@eng.sun.com], Harish Prabandham, Alex Cruikshank [alex@epitonic.com], Hans Bergsten [hans@gefionsoftware.com], Costin Manolache, Remy Maucherat

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `Request()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `action(ActionCode actionCode, Object param)`
    `void` | `addPathParameter(String name, String value)`
    `MessageBytes` | `contentType()`
    `MessageBytes` | `decodedURI()`
    `int` | `doRead(ApplicationBufferHandler handler)` Read data from the input buffer and put it into ApplicationBufferHandler.
    `int` | `doRead(ByteChunk chunk)` Deprecated. Unused. Will be removed in Tomcat 9. Use `doRead(ApplicationBufferHandler)`
    `Object` | `getAttribute(String name)`
    `HashMap<String,Object>` | `getAttributes()`
    `MessageBytes` | `getAuthType()`
    `int` | `getAvailable()`
    `long` | `getBytesRead()`
    `String` | `getCharacterEncoding()` Get the character encoding used for this request.
    `Charset` | `getCharset()` Get the character encoding used for this request.
    `int` | `getContentLength()`
    `long` | `getContentLengthLong()`
    `String` | `getContentType()`
    `ServerCookies` | `getCookies()`
    `String` | `getHeader(String name)`
    `InputBuffer` | `getInputBuffer()`
    `int` | `getLocalPort()`
    `MimeHeaders` | `getMimeHeaders()`
    `Object` | `getNote(int pos)`
    `Parameters` | `getParameters()`
    `String` | `getPathParameter(String name)`
    `ReadListener` | `getReadListener()`
    `int` | `getRemotePort()`
    `MessageBytes` | `getRemoteUser()`
    `boolean` | `getRemoteUserNeedsAuthorization()`
    `RequestInfo` | `getRequestProcessor()`
    `Response` | `getResponse()`
    `boolean` | `getSendfile()`
    `int` | `getServerPort()`
    `long` | `getStartTime()`
    `boolean` | `getSupportsRelativeRedirects()`
    `UDecoder` | `getURLDecoder()`
    `boolean` | `hasExpectation()`
    `boolean` | `isFinished()`
    `boolean` | `isProcessing()`
    `MessageBytes` | `localAddr()`
    `MessageBytes` | `localName()`
    `MessageBytes` | `method()`
    `MessageBytes` | `peerAddr()`
    `MessageBytes` | `protocol()`
    `MessageBytes` | `queryString()`
    `void` | `recycle()`
    `MessageBytes` | `remoteAddr()`
    `MessageBytes` | `remoteHost()`
    `MessageBytes` | `requestURI()`
    `MessageBytes` | `scheme()`
    `boolean` | `sendAllDataReadEvent()`
    `MessageBytes` | `serverName()` Get the "virtual host", derived from the Host: header associated with this request.
    `void` | `setAttribute(String name, Object o)`
    `void` | `setAvailable(int available)`
    `void` | `setCharacterEncoding(String enc)` Deprecated. This method will be removed in Tomcat 9.0.x
    `void` | `setCharset(Charset charset)`
    `void` | `setContentLength(long len)`
    `void` | `setContentType(MessageBytes mb)`
    `void` | `setContentType(String type)`
    `void` | `setExpectation(boolean expectation)`
    `protected void` | `setHook(ActionHook hook)`
    `void` | `setInputBuffer(InputBuffer inputBuffer)`
    `void` | `setLocalPort(int port)`
    `void` | `setNote(int pos, Object value)` Used to store private data.
    `void` | `setReadListener(ReadListener listener)`
    `void` | `setRemotePort(int port)`
    `void` | `setRemoteUserNeedsAuthorization(boolean remoteUserNeedsAuthorization)`
    `void` | `setResponse(Response response)`
    `void` | `setSendfile(boolean sendfile)`
    `void` | `setServerPort(int serverPort)`
    `void` | `setStartTime(long startTime)`
    `String` | `toString()`
    `void` | `updateCounters()`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### Request

          public Request()

  - ### Method Detail

    - #### getReadListener

          public ReadListener getReadListener()

    - #### setReadListener

          public void setReadListener(ReadListener listener)

    - #### sendAllDataReadEvent

          public boolean sendAllDataReadEvent()

    - #### getMimeHeaders

          public MimeHeaders getMimeHeaders()

    - #### getURLDecoder

          public UDecoder getURLDecoder()

    - #### scheme

          public MessageBytes scheme()

    - #### method

          public MessageBytes method()

    - #### requestURI

          public MessageBytes requestURI()

    - #### decodedURI

          public MessageBytes decodedURI()

    - #### queryString

          public MessageBytes queryString()

    - #### protocol

          public MessageBytes protocol()

    - #### serverName

          public MessageBytes serverName()

      Get the "virtual host", derived from the Host: header associated with this request.
      Returns:
        The buffer holding the server name, if any. Use isNull() to check if there is no value set.

    - #### getServerPort

          public int getServerPort()

    - #### setServerPort

          public void setServerPort(int serverPort)

    - #### remoteAddr

          public MessageBytes remoteAddr()

    - #### peerAddr

          public MessageBytes peerAddr()

    - #### remoteHost

          public MessageBytes remoteHost()

    - #### localName

          public MessageBytes localName()

    - #### localAddr

          public MessageBytes localAddr()

    - #### getRemotePort

          public int getRemotePort()

    - #### setRemotePort

          public void setRemotePort(int port)

    - #### getLocalPort

          public int getLocalPort()

    - #### setLocalPort

          public void setLocalPort(int port)

    - #### getCharacterEncoding

          public String getCharacterEncoding()

      Get the character encoding used for this request.
      Returns:
        The value set via `setCharacterEncoding(String)` or if no call has been made to that method try to obtain if from the content type.

    - #### getCharset

          public Charset getCharset()
                             throws UnsupportedEncodingException

      Get the character encoding used for this request.
      Returns:
        The value set via `setCharacterEncoding(String)` or if no call has been made to that method try to obtain if from the content type.
      Throws:
        `UnsupportedEncodingException` - If the user agent has specified an invalid character encoding

    - #### setCharacterEncoding

          @Deprecated
          public void setCharacterEncoding(String enc)
                                    throws UnsupportedEncodingException

      Deprecated. This method will be removed in Tomcat 9.0.x
      Parameters:
        `enc` - The new encoding
      Throws:
        `UnsupportedEncodingException` - If the encoding is invalid

    - #### setCharset

          public void setCharset(Charset charset)

    - #### setContentLength

          public void setContentLength(long len)

    - #### getContentLength

          public int getContentLength()

    - #### getContentLengthLong

          public long getContentLengthLong()

    - #### getContentType

          public String getContentType()

    - #### setContentType

          public void setContentType(String type)

    - #### contentType

          public MessageBytes contentType()

    - #### setContentType

          public void setContentType(MessageBytes mb)

    - #### getHeader

          public String getHeader(String name)

    - #### setExpectation

          public void setExpectation(boolean expectation)

    - #### hasExpectation

          public boolean hasExpectation()

    - #### getResponse

          public Response getResponse()

    - #### setResponse

          public void setResponse(Response response)

    - #### setHook

          protected void setHook(ActionHook hook)

    - #### action

          public void action(ActionCode actionCode,
                    Object param)

    - #### getCookies

          public ServerCookies getCookies()

    - #### getParameters

          public Parameters getParameters()

    - #### addPathParameter

          public void addPathParameter(String name,
                              String value)

    - #### getPathParameter

          public String getPathParameter(String name)

    - #### setAttribute

          public void setAttribute(String name,
                          Object o)

    - #### getAttributes

          public HashMap<String,Object> getAttributes()

    - #### getAttribute

          public Object getAttribute(String name)

    - #### getRemoteUser

          public MessageBytes getRemoteUser()

    - #### getRemoteUserNeedsAuthorization

          public boolean getRemoteUserNeedsAuthorization()

    - #### setRemoteUserNeedsAuthorization

          public void setRemoteUserNeedsAuthorization(boolean remoteUserNeedsAuthorization)

    - #### getAuthType

          public MessageBytes getAuthType()

    - #### getAvailable

          public int getAvailable()

    - #### setAvailable

          public void setAvailable(int available)

    - #### getSendfile

          public boolean getSendfile()

    - #### setSendfile

          public void setSendfile(boolean sendfile)

    - #### isFinished

          public boolean isFinished()

    - #### getSupportsRelativeRedirects

          public boolean getSupportsRelativeRedirects()

    - #### getInputBuffer

          public InputBuffer getInputBuffer()

    - #### setInputBuffer

          public void setInputBuffer(InputBuffer inputBuffer)

    - #### doRead

          @Deprecated
          public int doRead(ByteChunk chunk)
                     throws IOException

      Deprecated. Unused. Will be removed in Tomcat 9. Use `doRead(ApplicationBufferHandler)`
      Read data from the input buffer and put it into a byte chunk. The buffer is owned by the protocol implementation - it will be reused on the next read. The Adapter must either process the data in place or copy it to a separate buffer if it needs to hold it. In most cases this is done during byte->char conversions or via InputStream. Unlike InputStream, this interface allows the app to process data in place, without copy.
      Parameters:
        `chunk` - The destination to which to copy the data
      Returns:
        The number of bytes copied
      Throws:
        `IOException` - If an I/O error occurs during the copy

    - #### doRead

          public int doRead(ApplicationBufferHandler handler)
                     throws IOException

      Read data from the input buffer and put it into ApplicationBufferHandler. The buffer is owned by the protocol implementation - it will be reused on the next read. The Adapter must either process the data in place or copy it to a separate buffer if it needs to hold it. In most cases this is done during byte->char conversions or via InputStream. Unlike InputStream, this interface allows the app to process data in place, without copy.
      Parameters:
        `handler` - The destination to which to copy the data
      Returns:
        The number of bytes copied
      Throws:
        `IOException` - If an I/O error occurs during the copy

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`

    - #### getStartTime

          public long getStartTime()

    - #### setStartTime

          public void setStartTime(long startTime)

    - #### setNote

          public final void setNote(int pos,
                     Object value)

      Used to store private data. Thread data could be used instead - but if you have the req, getting/setting a note is just a array access, may be faster than ThreadLocal for very frequent operations. Example use: Catalina CoyoteAdapter: ADAPTER_NOTES = 1 - stores the HttpServletRequest object ( req/res) To avoid conflicts, note in the range 0 - 8 are reserved for the servlet container ( catalina connector, etc ), and values in 9 - 16 for connector use. 17-31 range is not allocated or used.
      Parameters:
        `pos` - Index to use to store the note
        `value` - The value to store at that index

    - #### getNote

          public final Object getNote(int pos)

    - #### recycle

          public void recycle()

    - #### updateCounters

          public void updateCounters()

    - #### getRequestProcessor

          public RequestInfo getRequestProcessor()

    - #### getBytesRead

          public long getBytesRead()

    - #### isProcessing

          public boolean isProcessing()

Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.