Class HttpRequestPacket

All Implemented Interfaces:
org.glassfish.grizzly.attributes.AttributeStorage, org.glassfish.grizzly.Cacheable, MimeHeadersPacket

public abstract class HttpRequestPacket extends HttpHeader
The HttpHeader object, which represents HTTP request message.
Author:
Alexey Stashok
See Also:
  • Field Details

    • 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 the getAttributeNames() 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:
    • 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
    • attributes

      protected final Map<String,Object> attributes
      The attributes associated with this Request, keyed by attribute name.
  • Constructor Details

    • HttpRequestPacket

      protected HttpRequestPacket()
  • Method Details

    • builder

      public static HttpRequestPacket.Builder builder()
      Returns HttpRequestPacket builder.
      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 as DataChunk (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 as RequestURIRef (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 as DataChunk (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 the query portion 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 Host request header.
    • setServerPort

      public void setServerPort(int serverPort)
      Sets the Internet Protocol (IP) port specified in the Host request header.
      Parameters:
      serverPort - the port as specified in the Host request header
    • remoteAddr

      public DataChunk remoteAddr()
      Returns:
      the DataChunk representing 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 DataChunk representing 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 String representing 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 - true if expectation processing is required.
    • requiresAcknowledgement

      public boolean requiresAcknowledgement()
      Returns:
      true if this request requires acknowledgement.
    • localName

      public DataChunk localName()
      Returns:
      a DataChunk representing the host name of the Internet Protocol (IP) interface on which the request was received.
    • getLocalName

      public String getLocalName()
      Returns:
      a String representing the host name of the Internet Protocol (IP) interface on which the request was received.
    • localAddr

      public DataChunk localAddr()
      Returns:
      a DataChunk representing the Internet Protocol (IP) address of the interface on which the request was received.
    • getLocalAddress

      public String getLocalAddress()
      Returns:
      a String representing 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 named Note associated with this Request.
      Type Parameters:
      E - the Note type.
      Parameters:
      name - the Note name.
      Returns:
      the Note.
    • getNote

      public <E> E getNote(Note<E> note)
      Return the Note value associated with this Request, or null if no such binding exists. Use createNote(java.lang.String) to create a new Note.
      Type Parameters:
      E - the Note type.
      Parameters:
      note - Note value to be returned
      Returns:
      the Note value associated with this Request, or null if no such binding exists
    • getNoteNames

      public Set<String> getNoteNames()
      Return a Set containing the String names of all note bindings that exist for this request. Use createNote(java.lang.String) to create a new Note.
      Returns:
      a Set containing the String names of all note bindings that exist for this request.
    • removeNote

      public <E> E removeNote(Note<E> note)
      Remove the Note value associated with this request. Use createNote(java.lang.String) to create a new Note.
      Type Parameters:
      E - the Note type.
      Parameters:
      note - Note value to be removed
      Returns:
      the old value associated with the Note, that was removed
    • setNote

      public <E> void setNote(Note<E> note, E value)
      Bind the Note value to this Request, replacing any existing binding for this name. Use createNote(java.lang.String) to create a new Note.
      Type Parameters:
      E - the Note type.
      Parameters:
      note - Note to which the object should be bound
      value - the Note value be bound to the specified Note.
    • 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.
    • getAttributeNames

      public Set<String> getAttributeNames()
      Returns:
      read-only Set of the names of all request attributes, or an empty Set if there are none.
    • 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 set
      value - 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()
      Returns true if this request is a HEAD request, otherwise returns false.
      Returns:
      true if this request is a HEAD request, otherwise returns false.
    • reset

      protected void reset()
      Reset the internal state.
      Overrides:
      reset in class HttpHeader
    • isRequest

      public final boolean isRequest()
      Returns true, if the current HttpHeader represent HTTP request message, or false otherwise.
      Specified by:
      isRequest in class HttpHeader
      Returns:
      true, if the current HttpHeader represent HTTP request message, or false otherwise.
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • setResponse

      protected void setResponse(HttpResponsePacket response)
    • doParseHostHeader

      protected void doParseHostHeader()