javax.servlet
Class ServletRequestWrapper

java.lang.Object
  extended by javax.servlet.ServletRequestWrapper
All Implemented Interfaces:
ServletRequest
Direct Known Subclasses:
HttpServletRequestWrapper

public class ServletRequestWrapper
extends java.lang.Object
implements ServletRequest

Wraps a servlet request in another request. Filters may use ServletRequestWrapper to modify the headers passed to the servlet.

The default methods just call the wrapped request methods.

Since:
servlet 2.3

Constructor Summary
ServletRequestWrapper(ServletRequest request)
          Create a new ServletRequestWrapper wrapping the enclosed request.
 
Method Summary
 AsyncContext getAsyncContext()
          Returns the async context for the request
 java.lang.Object getAttribute(java.lang.String name)
          Returns an attribute value.
 java.util.Enumeration<java.lang.String> getAttributeNames()
          Enumerates all attribute names in the request.
 java.lang.String getCharacterEncoding()
          Returns the character encoding of the POSTed data.
 int getContentLength()
          Returns the content length of the data.
 java.lang.String getContentType()
          Returns the request's mime-type.
 DispatcherType getDispatcherType()
          Returns the dispatcherType (request, include, etc) for the current request.
 ServletInputStream getInputStream()
          Returns an InputStream to retrieve POST data from the request.
 java.lang.String getLocalAddr()
          Returns the IP address of the local host, i.e.
 java.util.Locale getLocale()
          Returns the request's preferred locale.
 java.util.Enumeration<java.util.Locale> getLocales()
          Returns an enumeration of all locales acceptable by the client.
 java.lang.String getLocalName()
          Returns the local host name.
 int getLocalPort()
          Returns the local port
 java.lang.String getParameter(java.lang.String name)
          Returns a form parameter.
 java.util.Map<java.lang.String,java.lang.String[]> getParameterMap()
          Returns the parameter map request parameters.
 java.util.Enumeration<java.lang.String> getParameterNames()
          Returns an enumeration of all form parameter names.
 java.lang.String[] getParameterValues(java.lang.String name)
          Returns all values of a form parameter.
 java.lang.String getProtocol()
          Returns the prococol, e.g.
 java.io.BufferedReader getReader()
          Returns a reader to read POSTed data.
 java.lang.String getRealPath(java.lang.String uri)
          Returns the real path.
 java.lang.String getRemoteAddr()
          Returns the IP address of the remote host, i.e.
 java.lang.String getRemoteHost()
          Returns the DNS hostname of the remote host, i.e.
 int getRemotePort()
          Returns the remote port
 ServletRequest getRequest()
          Gets the request object being wrapped.
 RequestDispatcher getRequestDispatcher(java.lang.String uri)
          Returns a request dispatcher for later inclusion or forwarding.
 java.lang.String getScheme()
          Returns the request scheme, e.g.
 java.lang.String getServerName()
          Returns the server name handling the request.
 int getServerPort()
          Returns the server port handling the request, e.g.
 ServletContext getServletContext()
          Returns the servlet context for the request
 boolean isAsyncStarted()
          Returns true if the request is in async.
 boolean isAsyncSupported()
          Returns true if the request supports async
 boolean isSecure()
          Returns true if the connection is secure, e.g.
 boolean isWrapperFor(java.lang.Class wrappedType)
           
 boolean isWrapperFor(ServletRequest wrapped)
           
 void removeAttribute(java.lang.String name)
          Removes the given attribute.
 void setAttribute(java.lang.String name, java.lang.Object o)
          Sets an attribute value.
 void setCharacterEncoding(java.lang.String encoding)
          Sets the character encoding to be used for forms and getReader.
 void setRequest(ServletRequest request)
          Sets the request object being wrapped.
 AsyncContext startAsync()
          Starts an async mode
 AsyncContext startAsync(ServletRequest servletRequest, ServletResponse servletResponse)
          Starts an async mode
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ServletRequestWrapper

public ServletRequestWrapper(ServletRequest request)
Create a new ServletRequestWrapper wrapping the enclosed request.

Method Detail

setRequest

public void setRequest(ServletRequest request)
Sets the request object being wrapped.

Throws:
java.lang.IllegalArgumentException - if the request is null

getRequest

public ServletRequest getRequest()
Gets the request object being wrapped.

Returns:
the wrapped response

getProtocol

public java.lang.String getProtocol()
Returns the prococol, e.g. "HTTP/1.1"

Specified by:
getProtocol in interface ServletRequest

getScheme

public java.lang.String getScheme()
Returns the request scheme, e.g. "http"

Specified by:
getScheme in interface ServletRequest

getServerName

public java.lang.String getServerName()
Returns the server name handling the request. When using virtual hosts, this returns the virtual host name, e.g. "vhost1.caucho.com".

Specified by:
getServerName in interface ServletRequest

getServerPort

public int getServerPort()
Returns the server port handling the request, e.g. 80.

Specified by:
getServerPort in interface ServletRequest

getRemoteAddr

public java.lang.String getRemoteAddr()
Returns the IP address of the remote host, i.e. the client browser.

Specified by:
getRemoteAddr in interface ServletRequest

getRemoteHost

public java.lang.String getRemoteHost()
Returns the DNS hostname of the remote host, i.e. the client browser.

Specified by:
getRemoteHost in interface ServletRequest

getRemotePort

public int getRemotePort()
Returns the remote port

Specified by:
getRemotePort in interface ServletRequest
Since:
2.4

getLocalAddr

public java.lang.String getLocalAddr()
Returns the IP address of the local host, i.e. the server.

Specified by:
getLocalAddr in interface ServletRequest

getLocalName

public java.lang.String getLocalName()
Returns the local host name.

Specified by:
getLocalName in interface ServletRequest

getLocalPort

public int getLocalPort()
Returns the local port

Specified by:
getLocalPort in interface ServletRequest

getParameter

public java.lang.String getParameter(java.lang.String name)
Returns a form parameter. When the form contains several parameters of the same name, getParameter returns the first.

For example, calling getParameter("a") with the the query string a=1&a=2 will return "1".

Specified by:
getParameter in interface ServletRequest
Parameters:
name - the form parameter to return
Returns:
the form value or null if none matches.

getParameterMap

public java.util.Map<java.lang.String,java.lang.String[]> getParameterMap()
Returns the parameter map request parameters. By default, returns the underlying request's map.

Specified by:
getParameterMap in interface ServletRequest

getParameterValues

public java.lang.String[] getParameterValues(java.lang.String name)
Returns all values of a form parameter.

For example, calling getParameterValues("a") with the the query string a=1&a=2 will return ["1", "2"].

Specified by:
getParameterValues in interface ServletRequest
Parameters:
name - the form parameter to return
Returns:
an array of matching form values or null if none matches.

getParameterNames

public java.util.Enumeration<java.lang.String> getParameterNames()
Returns an enumeration of all form parameter names.
 Enumeration e = _request.getParameterNames();
 while (e.hasMoreElements()) {
   String name = (String) e.nextElement();
   out.println(name + ": " + request.getParameter(name));
 }
 

Specified by:
getParameterNames in interface ServletRequest

getInputStream

public ServletInputStream getInputStream()
                                  throws java.io.IOException
Returns an InputStream to retrieve POST data from the request. The stream will automatically end when the end of the POST data is complete.

Specified by:
getInputStream in interface ServletRequest
Throws:
java.io.IOException

getReader

public java.io.BufferedReader getReader()
                                 throws java.io.IOException,
                                        java.lang.IllegalStateException
Returns a reader to read POSTed data. Character encoding is based on the request data and is the same as getCharacterEncoding()

Specified by:
getReader in interface ServletRequest
Throws:
java.io.IOException
java.lang.IllegalStateException

getCharacterEncoding

public java.lang.String getCharacterEncoding()
Returns the character encoding of the POSTed data.

Specified by:
getCharacterEncoding in interface ServletRequest

setCharacterEncoding

public void setCharacterEncoding(java.lang.String encoding)
                          throws java.io.UnsupportedEncodingException
Sets the character encoding to be used for forms and getReader.

Specified by:
setCharacterEncoding in interface ServletRequest
Throws:
java.io.UnsupportedEncodingException

getContentLength

public int getContentLength()
Returns the content length of the data. This value may differ from the actual length of the data. For newer browsers, i.e. those supporting HTTP/1.1, can support "chunked" encoding which does not make the content length available.

The upshot is, rely on the input stream to end when the data completes.

Specified by:
getContentLength in interface ServletRequest

getContentType

public java.lang.String getContentType()
Returns the request's mime-type.

Specified by:
getContentType in interface ServletRequest

getLocale

public java.util.Locale getLocale()
Returns the request's preferred locale.

Specified by:
getLocale in interface ServletRequest

getLocales

public java.util.Enumeration<java.util.Locale> getLocales()
Returns an enumeration of all locales acceptable by the client.

Specified by:
getLocales in interface ServletRequest

isSecure

public boolean isSecure()
Returns true if the connection is secure, e.g. it uses SSL.

Specified by:
isSecure in interface ServletRequest

getAttribute

public java.lang.Object getAttribute(java.lang.String name)
Returns an attribute value.

Specified by:
getAttribute in interface ServletRequest
Parameters:
name - the attribute name
Returns:
the attribute value

setAttribute

public void setAttribute(java.lang.String name,
                         java.lang.Object o)
Sets an attribute value.

Specified by:
setAttribute in interface ServletRequest
Parameters:
name - the attribute name
o - the attribute value

getAttributeNames

public java.util.Enumeration<java.lang.String> getAttributeNames()
Enumerates all attribute names in the request.

Specified by:
getAttributeNames in interface ServletRequest

removeAttribute

public void removeAttribute(java.lang.String name)
Removes the given attribute.

Specified by:
removeAttribute in interface ServletRequest
Parameters:
name - the attribute name

getRequestDispatcher

public RequestDispatcher getRequestDispatcher(java.lang.String uri)
Returns a request dispatcher for later inclusion or forwarding. This is the servlet API equivalent to SSI includes. uri is relative to the request URI. Absolute URIs are relative to the application prefix (getContextPath()).

If getRequestURI() is /myapp/dir/test.jsp and the uri is "inc.jsp", the resulting page is /myapp/dir/inc.jsp.

   RequestDispatcher disp;
   disp = getRequestDispatcher("inc.jsp?a=b");
   disp.include(request, response);
 

Specified by:
getRequestDispatcher in interface ServletRequest
Parameters:
uri - path relative to getRequestURI() (including query string) for the included file.
Returns:
RequestDispatcher for later inclusion or forwarding.

getRealPath

public java.lang.String getRealPath(java.lang.String uri)
Returns the real path.

Specified by:
getRealPath in interface ServletRequest

getServletContext

public ServletContext getServletContext()
Returns the servlet context for the request

Specified by:
getServletContext in interface ServletRequest
Since:
Servlet 3.0

getAsyncContext

public AsyncContext getAsyncContext()
Returns the async context for the request

Specified by:
getAsyncContext in interface ServletRequest
Since:
Servlet 3.0

isAsyncStarted

public boolean isAsyncStarted()
Returns true if the request is in async.

Specified by:
isAsyncStarted in interface ServletRequest
Since:
Servlet 3.0

isAsyncSupported

public boolean isAsyncSupported()
Returns true if the request supports async

Specified by:
isAsyncSupported in interface ServletRequest
Since:
Servlet 3.0

startAsync

public AsyncContext startAsync()
                        throws java.lang.IllegalStateException
Starts an async mode

Specified by:
startAsync in interface ServletRequest
Throws:
java.lang.IllegalStateException
Since:
Servlet 3.0

startAsync

public AsyncContext startAsync(ServletRequest servletRequest,
                               ServletResponse servletResponse)
                        throws java.lang.IllegalStateException
Starts an async mode

Specified by:
startAsync in interface ServletRequest
Throws:
java.lang.IllegalStateException
Since:
Servlet 3.0

getDispatcherType

public DispatcherType getDispatcherType()
Returns the dispatcherType (request, include, etc) for the current request.

Specified by:
getDispatcherType in interface ServletRequest
Returns:

isWrapperFor

public boolean isWrapperFor(ServletRequest wrapped)
Since:
Servlet 3.0

isWrapperFor

public boolean isWrapperFor(java.lang.Class wrappedType)
Since:
Servlet 3.0