Class Request
java.lang.Object
org.apache.coyote.Request
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
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaction(ActionCode actionCode, Object param) voidaddPathParameter(String name, String value) voidintdoRead(ApplicationBufferHandler handler) Read data from the input buffer and put it into ApplicationBufferHandler.getAttribute(String name) intlongDeprecated.Unused.Deprecated.Unused.intlongGet the Exception that occurred during the writing of the response.intgetNote(int pos) getPathParameter(String name) intbooleanbooleanintlonglongbooleanlongbooleanbooleanbooleanbooleanbooleanisReady()booleanbooleanvoidmethod()Deprecated.voidpeerAddr()protocol()voidrecycle()scheme()booleanGet the "virtual host", derived from the Host: header associated with this request.voidsetAttribute(String name, Object o) voidsetAvailable(int available) voidsetCharset(Charset charset) Deprecated.Unused.voidsetCharsetHolder(CharsetHolder charsetHolder) voidsetContentLength(long len) voidsetContentType(String type) voidvoidSet the error Exception that occurred during the writing of the response processing.voidsetExpectation(boolean expectation) voidsetInputBuffer(InputBuffer inputBuffer) voidsetLocalPort(int port) voidsetMethod(byte[] buf, int start, int len) voidvoidUsed to store private data.voidsetReadListener(ReadListener listener) voidsetRemotePort(int port) voidsetRemoteUserNeedsAuthorization(boolean remoteUserNeedsAuthorization) voidvoidsetResponse(Response response) voidsetSendfile(boolean sendfile) voidsetServerPort(int serverPort) voidsetStartTimeNanos(long startTimeNanos) Deprecated.Unused.toString()void
-
Constructor Details
-
Request
public Request()
-
-
Method Details
-
getReadListener
-
setReadListener
-
isReady
public boolean isReady() -
onDataAvailable
- Throws:
IOException
-
sendAllDataReadEvent
public boolean sendAllDataReadEvent() -
getMimeHeaders
-
isTrailerFieldsReady
public boolean isTrailerFieldsReady() -
getTrailerFields
-
getMimeTrailerFields
-
getURLDecoder
-
scheme
-
method
Deprecated.Get a MessageBytes instance that holds the current request's HTTP method.- Returns:
- a MessageBytes instance that holds the current request's HTTP method.
-
setMethod
-
setMethod
public void setMethod(byte[] buf, int start, int len) -
getMethod
-
requestURI
-
decodedURI
-
queryString
-
protocol
-
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
-
peerAddr
-
remoteHost
-
localName
-
localAddr
-
getRemotePort
public int getRemotePort() -
setRemotePort
public void setRemotePort(int port) -
getLocalPort
public int getLocalPort() -
setLocalPort
public void setLocalPort(int port) -
getCharacterEncoding
Deprecated.Unused. This method will be removed in Tomcat 12.Get the character encoding used for this request.- Returns:
- The value set via
setCharset(Charset)or if no call has been made to that method try to obtain if from the content type.
-
getCharset
Deprecated.Unused. This method will be removed in Tomcat 12.Get the character encoding used for this request.- Returns:
- The value set via
setCharset(Charset)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
-
setCharset
Deprecated.Unused. This method will be removed in Tomcat 12.Unused.- Parameters:
charset- The Charset to use for the request
-
getCharsetHolder
-
setCharsetHolder
-
setContentLength
public void setContentLength(long len) -
getContentLength
public int getContentLength() -
getContentLengthLong
public long getContentLengthLong() -
getContentType
-
setContentType
-
contentType
-
setContentType
-
getHeader
-
setExpectation
public void setExpectation(boolean expectation) -
hasExpectation
public boolean hasExpectation() -
getResponse
-
setResponse
-
action
-
getCookies
-
getParameters
-
addPathParameter
-
getPathParameter
-
setAttribute
-
getAttributes
-
getAttribute
-
getRemoteUser
-
getRemoteUserNeedsAuthorization
public boolean getRemoteUserNeedsAuthorization() -
setRemoteUserNeedsAuthorization
public void setRemoteUserNeedsAuthorization(boolean remoteUserNeedsAuthorization) -
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
-
setInputBuffer
-
doRead
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
-
setErrorException
Set the error Exception that occurred during the writing of the response processing.- Parameters:
ex- The exception that occurred
-
getErrorException
Get the Exception that occurred during the writing of the response.- Returns:
- The exception that occurred
-
isExceptionPresent
public boolean isExceptionPresent() -
getRequestId
-
getProtocolRequestId
-
getServletConnection
-
toString
-
getStartTime
public long getStartTime() -
getStartTimeNanos
public long getStartTimeNanos() -
setStartTimeNanos
Deprecated.Unused. Will be removed in Tomcat 12 onwards. UsemarkStartTime().Set the start time using the value provided bySystem.nanoTime().- Parameters:
startTimeNanos- The value returned fromSystem.nanoTime()at the point the requests started.
-
markStartTime
public void markStartTime() -
getStartInstant
-
getThreadId
public long getThreadId() -
clearRequestThread
public void clearRequestThread() -
setRequestThread
public void setRequestThread() -
isRequestThread
public boolean isRequestThread() -
setNote
Used to store private data. Thread data could be used instead - but if you have the req, getting/setting a note is just an 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 notevalue- The value to store at that index
-
getNote
-
recycle
public void recycle() -
updateCounters
public void updateCounters() -
getRequestProcessor
-
getBytesRead
public long getBytesRead() -
isProcessing
public boolean isProcessing()
-