Package org.glassfish.grizzly.http
Class HttpRequestPacket
- java.lang.Object
-
- org.glassfish.grizzly.http.HttpPacket
-
- org.glassfish.grizzly.http.HttpHeader
-
- org.glassfish.grizzly.http.HttpRequestPacket
-
- All Implemented Interfaces:
org.glassfish.grizzly.attributes.AttributeStorage,org.glassfish.grizzly.Cacheable,MimeHeadersPacket
public abstract class HttpRequestPacket extends HttpHeader
TheHttpHeaderobject, which represents HTTP request message.- Author:
- Alexey Stashok
- See Also:
HttpHeader,HttpResponsePacket
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classHttpRequestPacket.BuilderHttpRequestPacket message builder.
-
Field Summary
Fields Modifier and Type Field Description protected Map<String,Object>attributesThe attributes associated with this Request, keyed by attribute name.protected DataChunklocalAddressCprotected DataChunklocalNameCprotected intlocalPortprotected MethodparsedMethodstatic StringREAD_ONLY_ATTR_PREFIXPrefix for all service/read-only attributes, that once added could not be removed.protected DataChunkremoteAddressCprotected DataChunkremoteHostCprotected intremotePortprotected DataChunkunparsedHostC-
Fields inherited from class org.glassfish.grizzly.http.HttpHeader
contentLength, contentType, headers, isChunked, isCommitted, isContentBroken, isExpectContent, isSkipRemainder, parsedProtocol, protocolC, secure, upgrade
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedHttpRequestPacket()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description DataChunkauthType()static HttpRequestPacket.Builderbuilder()ReturnsHttpRequestPacketbuilder.static <E> Note<E>createNote(String name)Create a namedNoteassociated with this Request.protected voiddoParseHostHeader()ObjectgetAttribute(String name)Set<String>getAttributeNames()org.glassfish.grizzly.ConnectiongetConnection()StringgetLocalAddress()StringgetLocalHost()StringgetLocalName()intgetLocalPort()MethodgetMethod()Get the HTTP request method.DataChunkgetMethodDC()Get the HTTP request method asDataChunk(avoiding creation of a String object).<E> EgetNote(Note<E> note)Return theNotevalue associated with this Request, ornullif no such binding exists.Set<String>getNoteNames()Return aSetcontaining the String names of all note bindings that exist for this request.StringgetProtocolRequestId()StringgetQueryString()Returns the query string that is contained in the request URL after the path.DataChunkgetQueryStringDC()Returns the query string that is contained in the request URL after the path.StringgetRemoteAddress()StringgetRemoteHost()intgetRemotePort()StringgetRequestURI()Returns the request URL.RequestURIRefgetRequestURIRef()Returns the request URL of the HTTP request asRequestURIRef(avoiding creation of a String object).HttpResponsePacketgetResponse()intgetServerPort()booleanisHeadRequest()Returnstrueif this request is aHEADrequest, otherwise returnsfalse.booleanisRequest()Returns true, if the current HttpHeader represent HTTP request message, or false otherwise.DataChunklocalAddr()DataChunklocalName()DataChunkremoteAddr()DataChunkremoteHost()DataChunkremoteUser()voidremoveAttribute(String name)Remove the specified request attribute if it exists.<E> EremoveNote(Note<E> note)Remove theNotevalue associated with this request.booleanrequiresAcknowledgement()protected voidrequiresAcknowledgement(boolean requiresAcknowledgement)Allows consumers of this request to be notified if the user-agent requires acknowledgment of an expectation (i.e., the Expect header).protected voidreset()Reset the internal state.DataChunkserverName()Return the buffer holding the server name, if any.protected DataChunkserverNameRaw()Return the buffer holding the server name, if any.voidsetAttribute(String name, Object value)Set the specified request attribute to the specified value.voidsetConnection(org.glassfish.grizzly.Connection connection)Sets the underlying connection used by the request.voidsetLocalHost(String host)Set the host name of the server servicing this request.voidsetLocalPort(int port)Sets the Internet Protocol (IP) port number of the interface on which the request was received.voidsetMethod(String method)Set the HTTP request method.voidsetMethod(Method method)Set the HTTP request method.<E> voidsetNote(Note<E> note, E value)Bind theNotevalue to this Request, replacing any existing binding for this name.voidsetQueryString(String query)Set thequeryportion of the request URI.voidsetRemotePort(int port)Sets the Internet Protocol (IP) source port of the client or last proxy that sent the request.voidsetRequestURI(String requestURI)Set the request URL.protected voidsetResponse(HttpResponsePacket response)voidsetServerPort(int serverPort)Sets the Internet Protocol (IP) port specified in theHostrequest header.StringtoString()-
Methods inherited from class org.glassfish.grizzly.http.HttpHeader
addContentEncoding, addHeader, addHeader, addHeader, addHeader, containsHeader, containsHeader, extractContentEncoding, flushSpecialHeaders, getAttributes, getCharacterEncoding, getContentEncodings, getContentEncodings, getContentLength, getContentType, getContentTypeHolder, getHeader, getHeader, getHeaders, getHttpHeader, getParsingState, getProcessingState, getProtocol, getProtocolDC, getProtocolString, getTempHeaderEncodingBuffer, getTransferEncoding, getUpgrade, getUpgradeDC, httpContentBuilder, httpTrailerBuilder, isChunked, isChunkingAllowed, isCommitted, isContentBroken, isContentEncodingsSelected, isContentTypeSet, isExpectContent, isHeader, isIgnoreContentModifiers, isSecure, isSkipRemainder, isUpgrade, makeContentLengthHeader, makeTransferEncodingHeader, makeUpgradeHeader, recycle, setCharacterEncoding, setChunked, setChunkingAllowed, setCommitted, setContentBroken, setContentEncodingsSelected, setContentLength, setContentLengthLong, setContentType, setContentType, setExpectContent, setHeader, setHeader, setHeader, setHeader, setIgnoreContentModifiers, setProtocol, setSecure, setSkipRemainder, setTransferEncoding, setUpgrade
-
Methods inherited from class org.glassfish.grizzly.http.HttpPacket
isHttp
-
-
-
-
Field Detail
-
READ_ONLY_ATTR_PREFIX
public static final String READ_ONLY_ATTR_PREFIX
Prefix for all service/read-only attributes, that once added could not be removed. The attributes with this prefix will not be listed in thegetAttributeNames()result. The prefix was introduced with the intention to avoid collisions with normal user attributes and fail fast when we compare read-only and normal user attributes.- See Also:
- Constant Field Values
-
remotePort
protected int remotePort
-
localPort
protected int localPort
-
parsedMethod
protected Method parsedMethod
-
remoteAddressC
protected final DataChunk remoteAddressC
-
remoteHostC
protected final DataChunk remoteHostC
-
localNameC
protected final DataChunk localNameC
-
localAddressC
protected final DataChunk localAddressC
-
unparsedHostC
protected DataChunk unparsedHostC
-
-
Method Detail
-
builder
public static HttpRequestPacket.Builder builder()
ReturnsHttpRequestPacketbuilder.- Returns:
HttpRequestPacket.Builder.
-
setConnection
public void setConnection(org.glassfish.grizzly.Connection connection)
Sets the underlying connection used by the request.- Parameters:
connection-
-
getConnection
public org.glassfish.grizzly.Connection getConnection()
- Returns:
- underlying connection used by the request
-
getResponse
public HttpResponsePacket getResponse()
-
getProtocolRequestId
public String getProtocolRequestId()
- Returns:
- an empty string by default.
-
getMethodDC
public DataChunk getMethodDC()
Get the HTTP request method asDataChunk(avoiding creation of a String object). The result format is "GET|POST...".- Returns:
- the HTTP request method as
DataChunk(avoiding creation of a String object). The result format is "GET|POST...".
-
getMethod
public Method getMethod()
Get the HTTP request method.- Returns:
- the HTTP request method.
-
setMethod
public void setMethod(String method)
Set the HTTP request method.- Parameters:
method- the HTTP request method. Format is "GET|POST...".
-
setMethod
public void setMethod(Method method)
Set the HTTP request method.- Parameters:
method- the HTTP request method. Format is "GET|POST...".
-
getRequestURIRef
public RequestURIRef getRequestURIRef()
Returns the request URL of the HTTP request asRequestURIRef(avoiding creation of a String object).- Returns:
- the request URL of the HTTP request as
RequestURIRef(avoiding creation of a String object).
-
getRequestURI
public String getRequestURI()
Returns the request URL.- Returns:
- the request URL.
-
setRequestURI
public void setRequestURI(String requestURI)
Set the request URL.- Parameters:
requestURI- the request URL.
-
getQueryStringDC
public DataChunk getQueryStringDC()
Returns the query string that is contained in the request URL after the path. This method returns null if the URL does not have a query string. The result is represented asDataChunk(avoiding creation of a String object).- Returns:
- the query string that is contained in the request URL after the path. This method returns null if the URL
does not have a query string. The result is represented as
DataChunk(avoiding creation of a String object).
-
getQueryString
public String getQueryString()
Returns the query string that is contained in the request URL after the path. This method returns null if the URL does not have a query string.- Returns:
- the query string that is contained in the request URL after the path. This method returns null if the URL does not have a query string.
-
setQueryString
public void setQueryString(String query)
Set thequeryportion of the request URI.- Parameters:
query- the query String
-
serverNameRaw
protected DataChunk serverNameRaw()
Return the buffer holding the server name, if any. Use isNull() to check if there is no value set. This is the "virtual host", derived from the Host: header.- Returns:
- the buffer holding the server name
-
serverName
public DataChunk serverName()
Return the buffer holding the server name, if any. Use isNull() to check if there is no value set. This is the "virtual host", derived from the Host: header.- Returns:
- the buffer holding the server name, if any
-
getServerPort
public int getServerPort()
- Returns:
- Returns the integer value of the Internet Protocol (IP) port as specified in the
Hostrequest header.
-
setServerPort
public void setServerPort(int serverPort)
Sets the Internet Protocol (IP) port specified in theHostrequest header.- Parameters:
serverPort- the port as specified in theHostrequest header
-
remoteAddr
public DataChunk remoteAddr()
- Returns:
- the
DataChunkrepresenting the Internet Protocol (IP) address of the client or last proxy that sent the request.
-
getRemoteAddress
public String getRemoteAddress()
- Returns:
- the Internet Protocol (IP) address of the client or last proxy that sent the request.
-
remoteHost
public DataChunk remoteHost()
- Returns:
- a
DataChunkrepresenting the fully qualified name of the client or the last proxy that sent the request. If the engine cannot or chooses not to resolve the host name (to improve performance), this method returns the the IP address.
-
getRemoteHost
public String getRemoteHost()
- Returns:
- a
Stringrepresenting the fully qualified name of the client or the last proxy that sent the request. If the engine cannot or chooses not to resolve the hostname (to improve performance), this method returns the the IP address.
-
requiresAcknowledgement
protected void requiresAcknowledgement(boolean requiresAcknowledgement)
Allows consumers of this request to be notified if the user-agent requires acknowledgment of an expectation (i.e., the Expect header).- Parameters:
requiresAcknowledgement-trueif expectation processing is required.
-
requiresAcknowledgement
public boolean requiresAcknowledgement()
- Returns:
trueif this request requires acknowledgement.
-
localName
public DataChunk localName()
- Returns:
- a
DataChunkrepresenting the host name of the Internet Protocol (IP) interface on which the request was received.
-
getLocalName
public String getLocalName()
- Returns:
- a
Stringrepresenting the host name of the Internet Protocol (IP) interface on which the request was received.
-
localAddr
public DataChunk localAddr()
- Returns:
- a
DataChunkrepresenting the Internet Protocol (IP) address of the interface on which the request was received.
-
getLocalAddress
public String getLocalAddress()
- Returns:
- a
Stringrepresenting the Internet Protocol (IP) address of the interface on which the request was received.
-
getRemotePort
public int getRemotePort()
- Returns:
- the Internet Protocol (IP) source port of the client or last proxy that sent the request.
-
setRemotePort
public void setRemotePort(int port)
Sets the Internet Protocol (IP) source port of the client or last proxy that sent the request.- Parameters:
port- the source port of the client
-
getLocalPort
public int getLocalPort()
- Returns:
- the Internet Protocol (IP) port number of the interface on which the request was received.
-
setLocalPort
public void setLocalPort(int port)
Sets the Internet Protocol (IP) port number of the interface on which the request was received.- Parameters:
port- the port on which the request was received
-
getLocalHost
public String getLocalHost()
- Returns:
- the host name of the server servicing this request.
-
setLocalHost
public void setLocalHost(String host)
Set the host name of the server servicing this request.- Parameters:
host- the host name of the server servicing this request.
-
authType
public DataChunk authType()
- Returns:
- the authentication type used for this Request.
-
remoteUser
public DataChunk remoteUser()
- Returns:
- the name of the remote user that has been authenticated for this Request.
-
createNote
public static <E> Note<E> createNote(String name)
Create a namedNoteassociated with this Request.
-
getNote
public <E> E getNote(Note<E> note)
Return theNotevalue associated with this Request, ornullif no such binding exists. UsecreateNote(java.lang.String)to create a newNote.
-
getNoteNames
public Set<String> getNoteNames()
Return aSetcontaining the String names of all note bindings that exist for this request. UsecreateNote(java.lang.String)to create a newNote.- Returns:
- a
Setcontaining the String names of all note bindings that exist for this request.
-
removeNote
public <E> E removeNote(Note<E> note)
Remove theNotevalue associated with this request. UsecreateNote(java.lang.String)to create a newNote.
-
setNote
public <E> void setNote(Note<E> note, E value)
Bind theNotevalue to this Request, replacing any existing binding for this name. UsecreateNote(java.lang.String)to create a newNote.
-
getAttribute
public Object getAttribute(String name)
- Parameters:
name- Name of the request attribute to return- Returns:
- the specified request attribute if it exists; otherwise, return
null.
-
setAttribute
public void setAttribute(String name, Object value)
Set the specified request attribute to the specified value.- Parameters:
name- Name of the request attribute to setvalue- The associated value
-
removeAttribute
public void removeAttribute(String name)
Remove the specified request attribute if it exists.- Parameters:
name- Name of the request attribute to remove
-
isHeadRequest
public boolean isHeadRequest()
Returnstrueif this request is aHEADrequest, otherwise returnsfalse.- Returns:
trueif this request is aHEADrequest, otherwise returnsfalse.
-
reset
protected void reset()
Reset the internal state.- Overrides:
resetin classHttpHeader
-
isRequest
public final boolean isRequest()
Returns true, if the current HttpHeader represent HTTP request message, or false otherwise.- Specified by:
isRequestin classHttpHeader- Returns:
- true, if the current HttpHeader represent HTTP request message, or false otherwise.
-
setResponse
protected void setResponse(HttpResponsePacket response)
-
doParseHostHeader
protected void doParseHostHeader()
-
-