public interface ServletRequest
ServletRequest object and passes
 it as an argument to the servlet's service method.
 A ServletRequest object provides data including
 parameter name and values, attributes, and an input stream.
 Interfaces that extend ServletRequest can provide
 additional protocol-specific data (for example, HTTP data is
 provided by HttpServletRequest.
HttpServletRequest| Modifier and Type | Method and Description | 
|---|---|
AsyncContext | 
getAsyncContext()
Gets the AsyncContext that was created or reinitialized by the
 most recent invocation of  
startAsync() or
 startAsync(ServletRequest,ServletResponse) on this request. | 
Object | 
getAttribute(String name)
Returns the value of the named attribute as an  
Object,
 or null if no attribute of the given name exists. | 
Enumeration<String> | 
getAttributeNames()
Returns an  
Enumeration containing the
 names of the attributes available to this request. | 
String | 
getCharacterEncoding()
Returns the name of the character encoding used in the body of this
 request. 
 | 
int | 
getContentLength()
Returns the length, in bytes, of the request body and made available by
 the input stream, or -1 if the length is not known ir is greater than
 Integer.MAX_VALUE. 
 | 
long | 
getContentLengthLong()
Returns the length, in bytes, of the request body and made available by
 the input stream, or -1 if the length is not known. 
 | 
String | 
getContentType()
Returns the MIME type of the body of the request, or 
  
null if the type is not known. | 
DispatcherType | 
getDispatcherType()
Gets the dispatcher type of this request. 
 | 
ServletInputStream | 
getInputStream()
Retrieves the body of the request as binary data using
 a  
ServletInputStream. | 
String | 
getLocalAddr()
Returns the Internet Protocol (IP) address of the interface on
 which the request  was received. 
 | 
Locale | 
getLocale()
Returns the preferred  
Locale that the client will 
 accept content in, based on the Accept-Language header. | 
Enumeration<Locale> | 
getLocales()
Returns an  
Enumeration of Locale objects
 indicating, in decreasing order starting with the preferred locale, the
 locales that are acceptable to the client based on the Accept-Language
 header. | 
String | 
getLocalName()
Returns the host name of the Internet Protocol (IP) interface on
 which the request was received. 
 | 
int | 
getLocalPort()
Returns the Internet Protocol (IP) port number of the interface
 on which the request was received. 
 | 
String | 
getParameter(String name)
Returns the value of a request parameter as a  
String,
 or null if the parameter does not exist. | 
Map<String,String[]> | 
getParameterMap()
Returns a java.util.Map of the parameters of this request. 
 | 
Enumeration<String> | 
getParameterNames()
Returns an  
Enumeration of String
 objects containing the names of the parameters contained
 in this request. | 
String[] | 
getParameterValues(String name)
Returns an array of  
String objects containing 
 all of the values the given request parameter has, or 
 null if the parameter does not exist. | 
String | 
getProtocol()
Returns the name and version of the protocol the request uses
 in the form protocol/majorVersion.minorVersion, for 
 example, HTTP/1.1. 
 | 
BufferedReader | 
getReader()
Retrieves the body of the request as character data using
 a  
BufferedReader. | 
String | 
getRealPath(String path)
Deprecated. 
 
As of Version 2.1 of the Java Servlet API,
    use  
ServletContext.getRealPath(java.lang.String) instead. | 
String | 
getRemoteAddr()
Returns the Internet Protocol (IP) address of the client 
 or last proxy that sent the request. 
 | 
String | 
getRemoteHost()
Returns the fully qualified name of the client
 or the last proxy that sent the request. 
 | 
int | 
getRemotePort()
Returns the Internet Protocol (IP) source port of the client
 or last proxy that sent the request. 
 | 
RequestDispatcher | 
getRequestDispatcher(String path)
Returns a  
RequestDispatcher object that acts as a wrapper for
 the resource located at the given path. | 
String | 
getScheme()
Returns the name of the scheme used to make this request, 
 for example,
  
http, https, or ftp. | 
String | 
getServerName()
Returns the host name of the server to which the request was sent. 
 | 
int | 
getServerPort()
Returns the port number to which the request was sent. 
 | 
ServletContext | 
getServletContext()
Gets the servlet context to which this ServletRequest was last
 dispatched. 
 | 
boolean | 
isAsyncStarted()
Checks if this request has been put into asynchronous mode. 
 | 
boolean | 
isAsyncSupported()
Checks if this request supports asynchronous operation. 
 | 
boolean | 
isSecure()
Returns a boolean indicating whether this request was made using a
 secure channel, such as HTTPS. 
 | 
void | 
removeAttribute(String name)
Removes an attribute from this request. 
 | 
void | 
setAttribute(String name,
            Object o)
Stores an attribute in this request. 
 | 
void | 
setCharacterEncoding(String env)
Overrides the name of the character encoding used in the body of this
 request. 
 | 
AsyncContext | 
startAsync()
Puts this request into asynchronous mode, and initializes its
  
AsyncContext with the original (unwrapped) ServletRequest
 and ServletResponse objects. | 
AsyncContext | 
startAsync(ServletRequest servletRequest,
          ServletResponse servletResponse)
Puts this request into asynchronous mode, and initializes its
  
AsyncContext with the given request and response objects. | 
Object getAttribute(String name)
Object,
 or null if no attribute of the given name exists. 
  Attributes can be set two ways.  The servlet container may set
 attributes to make available custom information about a request.
 For example, for requests made using HTTPS, the attribute
 javax.servlet.request.X509Certificate can be used to
 retrieve information on the certificate of the client.  Attributes
 can also be set programatically using 
 setAttribute(java.lang.String, java.lang.Object).  This allows information to be
 embedded into a request before a RequestDispatcher call.
 
Attribute names should follow the same conventions as package
 names. This specification reserves names matching java.*,
 javax.*, and sun.*.
name - a String specifying the name of the attributeObject containing the value of the attribute,
 or null if the attribute does not existEnumeration<String> getAttributeNames()
Enumeration containing the
 names of the attributes available to this request. 
 This method returns an empty Enumeration
 if the request has no attributes available to it.Enumeration of strings containing the names 
 of the request's attributesString getCharacterEncoding()
null if the request
 does not specify a character encodingString containing the name of the character
 encoding, or null if the request does not specify a
 character encodingvoid setCharacterEncoding(String env) throws UnsupportedEncodingException
env - String containing the name of
 the character encoding.UnsupportedEncodingException - if this ServletRequest is still
 in a state where a character encoding may be set,
 but the specified encoding is invalidint getContentLength()
long getContentLengthLong()
String getContentType()
null if the type is not known. For HTTP servlets, 
 same as the value of the CGI variable CONTENT_TYPE.String containing the name of the MIME type
 of the request, or null if the type is not knownServletInputStream getInputStream() throws IOException
ServletInputStream.  Either this method or 
 getReader() may be called to read the body, not both.ServletInputStream object containing
 the body of the requestIllegalStateException - if the getReader() method
 has already been called for this requestIOException - if an input or output exception occurredString getParameter(String name)
String,
 or null if the parameter does not exist. Request parameters
 are extra information sent with the request.  For HTTP servlets,
 parameters are contained in the query string or posted form data.
 You should only use this method when you are sure the
 parameter has only one value. If the parameter might have
 more than one value, use getParameterValues(java.lang.String).
 
If you use this method with a multivalued
 parameter, the value returned is equal to the first value
 in the array returned by getParameterValues.
 
If the parameter data was sent in the request body, such as occurs
 with an HTTP POST request, then reading the body directly via getInputStream() or getReader() can interfere
 with the execution of this method.
name - a String specifying the name of the parameterString representing the single value of
 the parametergetParameterValues(java.lang.String)Enumeration<String> getParameterNames()
Enumeration of String
 objects containing the names of the parameters contained
 in this request. If the request has 
 no parameters, the method returns an empty Enumeration.Enumeration of String
 objects, each String containing the name of
 a request parameter; or an empty Enumeration
 if the request has no parametersString[] getParameterValues(String name)
String objects containing 
 all of the values the given request parameter has, or 
 null if the parameter does not exist.
 If the parameter has a single value, the array has a length of 1.
name - a String containing the name of 
 the parameter whose value is requestedString objects 
 containing the parameter's valuesgetParameter(java.lang.String)Map<String,String[]> getParameterMap()
Request parameters are extra information sent with the request. For HTTP servlets, parameters are contained in the query string or posted form data.
String getProtocol()
SERVER_PROTOCOL.String containing the protocol 
 name and version numberString getScheme()
http, https, or ftp.
 Different schemes have different rules for constructing URLs,
 as noted in RFC 1738.String containing the name 
 of the scheme used to make this requestString getServerName()
Host
 header value, if any, or the resolved server name, or the server IP
 address.String containing the name of the serverint getServerPort()
Host
 header value, if any, or the server port where the client connection
 was accepted on.BufferedReader getReader() throws IOException
BufferedReader.  The reader translates the character
 data according to the character encoding used on the body.
 Either this method or getInputStream() may be called to read the
 body, not both.BufferedReader containing the body of the requestUnsupportedEncodingException - if the character set encoding
 used is not supported and the text cannot be decodedIllegalStateException - if getInputStream() method
 has been called on this requestIOException - if an input or output exception occurredgetInputStream()String getRemoteAddr()
REMOTE_ADDR.String containing the 
 IP address of the client that sent the requestString getRemoteHost()
REMOTE_HOST.String containing the fully 
 qualified name of the clientvoid setAttribute(String name, Object o)
RequestDispatcher.
 Attribute names should follow the same conventions as
 package names. Names beginning with java.*,
 javax.*, and com.sun.*, are
 reserved for use by Sun Microsystems.
 If the object passed in is null, the effect is the same as
 calling removeAttribute(java.lang.String).
 
 It is warned that when the request is dispatched from the
 servlet resides in a different web application by
 RequestDispatcher, the object set by this method
 may not be correctly retrieved in the caller servlet.
name - a String specifying 
 the name of the attributeo - the Object to be storedvoid removeAttribute(String name)
Attribute names should follow the same conventions as
 package names. Names beginning with java.*,
 javax.*, and com.sun.*, are
 reserved for use by Sun Microsystems.
name - a String specifying 
 the name of the attribute to removeLocale getLocale()
Locale that the client will 
 accept content in, based on the Accept-Language header.
 If the client request doesn't provide an Accept-Language header,
 this method returns the default locale for the server.Locale for the clientEnumeration<Locale> getLocales()
Enumeration of Locale objects
 indicating, in decreasing order starting with the preferred locale, the
 locales that are acceptable to the client based on the Accept-Language
 header.
 If the client request doesn't provide an Accept-Language header,
 this method returns an Enumeration containing one 
 Locale, the default locale for the server.Enumeration of preferred 
 Locale objects for the clientboolean isSecure()
RequestDispatcher getRequestDispatcher(String path)
RequestDispatcher object that acts as a wrapper for
 the resource located at the given path.  
 A RequestDispatcher object can be used to forward
 a request to the resource or to include the resource in a response.
 The resource can be dynamic or static.
 The pathname specified may be relative, although it cannot extend
 outside the current servlet context.  If the path begins with 
 a "/" it is interpreted as relative to the current context root.  
 This method returns null if the servlet container
 cannot return a RequestDispatcher.
 
The difference between this method and ServletContext.getRequestDispatcher(java.lang.String) is that this method can take a
 relative path.
path - a String specifying the pathname
 to the resource. If it is relative, it must be
 relative against the current servlet.RequestDispatcher object that acts as a
 wrapper for the resource at the specified path,
 or null if the servlet container cannot
 return a RequestDispatcherRequestDispatcher, 
ServletContext.getRequestDispatcher(java.lang.String)String getRealPath(String path)
ServletContext.getRealPath(java.lang.String) instead.int getRemotePort()
String getLocalName()
String containing the host
         name of the IP on which the request was received.String getLocalAddr()
String containing the
 IP address on which the request was received.int getLocalPort()
ServletContext getServletContext()
AsyncContext startAsync() throws IllegalStateException
AsyncContext with the original (unwrapped) ServletRequest
 and ServletResponse objects.
 Calling this method will cause committal of the associated
 response to be delayed until AsyncContext.complete() is
 called on the returned AsyncContext, or the asynchronous
 operation has timed out.
 
Calling AsyncContext.hasOriginalRequestAndResponse() on
 the returned AsyncContext will return true. Any filters
 invoked in the outbound direction after this request was put
 into asynchronous mode may use this as an indication that any request
 and/or response wrappers that they added during their inbound
 invocation need not stay around for the duration of the asynchronous
 operation, and therefore any of their associated resources may be
 released.
 
This method clears the list of AsyncListener instances
 (if any) that were registered with the AsyncContext returned by the
 previous call to one of the startAsync methods, after calling each
 AsyncListener at its onStartAsync
 method.
 
Subsequent invocations of this method, or its overloaded variant, will return the same AsyncContext instance, reinitialized as appropriate.
IllegalStateException - if this request is within the scope of
 a filter or servlet that does not support asynchronous operations
 (that is, isAsyncSupported() returns false),
 or if this method is called again without any asynchronous dispatch
 (resulting from one of the AsyncContext.dispatch() methods),
 is called outside the scope of any such dispatch, or is called again
 within the scope of the same dispatch, or if the response has
 already been closedAsyncContext.dispatch()AsyncContext startAsync(ServletRequest servletRequest, ServletResponse servletResponse) throws IllegalStateException
AsyncContext with the given request and response objects.
 The ServletRequest and ServletResponse arguments must be
 the same instances, or instances of ServletRequestWrapper and
 ServletResponseWrapper that wrap them, that were passed to the
 service method of the Servlet or the
 doFilter method of the Filter, respectively,
 in whose scope this method is being called.
 
Calling this method will cause committal of the associated
 response to be delayed until AsyncContext.complete() is
 called on the returned AsyncContext, or the asynchronous
 operation has timed out.
 
Calling AsyncContext.hasOriginalRequestAndResponse() on
 the returned AsyncContext will return false,
 unless the passed in ServletRequest and ServletResponse arguments
 are the original ones or do not carry any application-provided wrappers.
 Any filters invoked in the outbound direction after this
 request was put into asynchronous mode may use this as an indication
 that some of the request and/or response wrappers that they added
 during their inbound invocation may need to stay in place for
 the duration of the asynchronous operation, and their associated
 resources may not be released.
 A ServletRequestWrapper applied during the inbound
 invocation of a filter may be released by the outbound
 invocation of the filter only if the given servletRequest,
 which is used to initialize the AsyncContext and will be returned by
 a call to AsyncContext.getRequest(), does not contain said
 ServletRequestWrapper. The same holds true for ServletResponseWrapper
 instances. 
 
This method clears the list of AsyncListener instances
 (if any) that were registered with the AsyncContext returned by the
 previous call to one of the startAsync methods, after calling each
 AsyncListener at its onStartAsync
 method.
 
Subsequent invocations of this method, or its zero-argument variant, will return the same AsyncContext instance, reinitialized as appropriate. If a call to this method is followed by a call to its zero-argument variant, the specified (and possibly wrapped) request and response objects will remain locked in on the returned AsyncContext.
servletRequest - the ServletRequest used to initialize the
 AsyncContextservletResponse - the ServletResponse used to initialize the
 AsyncContextIllegalStateException - if this request is within the scope of
 a filter or servlet that does not support asynchronous operations
 (that is, isAsyncSupported() returns false),
 or if this method is called again without any asynchronous dispatch
 (resulting from one of the AsyncContext.dispatch() methods),
 is called outside the scope of any such dispatch, or is called again
 within the scope of the same dispatch, or if the response has
 already been closedboolean isAsyncStarted()
A ServletRequest is put into asynchronous mode by calling
 startAsync() or
 startAsync(ServletRequest,ServletResponse) on it.
 
 
This method returns false if this request was
 put into asynchronous mode, but has since been dispatched using
 one of the AsyncContext.dispatch() methods or released
 from asynchronous mode via a call to AsyncContext.complete().
boolean isAsyncSupported()
Asynchronous operation is disabled for this request if this request is within the scope of a filter or servlet that has not been annotated or flagged in the deployment descriptor as being able to support asynchronous handling.
AsyncContext getAsyncContext()
startAsync() or
 startAsync(ServletRequest,ServletResponse) on this request.startAsync() or
 startAsync(ServletRequest,ServletResponse) on
 this requestIllegalStateException - if this request has not been put 
 into asynchronous mode, i.e., if neither startAsync() nor
 startAsync(ServletRequest,ServletResponse) has been calledDispatcherType getDispatcherType()
The dispatcher type of a request is used by the container to select the filters that need to be applied to the request: Only filters with matching dispatcher type and url patterns will be applied.
Allowing a filter that has been configured for multiple dispatcher types to query a request for its dispatcher type allows the filter to process the request differently depending on its dispatcher type.
The initial dispatcher type of a request is defined as
 DispatcherType.REQUEST. The dispatcher type of a request
 dispatched via RequestDispatcher.forward(ServletRequest,
 ServletResponse) or RequestDispatcher.include(ServletRequest,
 ServletResponse) is given as DispatcherType.FORWARD or
 DispatcherType.INCLUDE, respectively, while the
 dispatcher type of an asynchronous request dispatched via
 one of the AsyncContext.dispatch() methods is given as
 DispatcherType.ASYNC. Finally, the dispatcher type of a
 request dispatched to an error page by the container's error handling
 mechanism is given as DispatcherType.ERROR.
DispatcherTypeCopyright © 1996-2015, Oracle and/or its affiliates. All Rights Reserved. Use is subject to license terms.