Package org.springframework.web.util
Class ContentCachingRequestWrapper
- java.lang.Object
- javax.servlet.ServletRequestWrapper
- javax.servlet.http.HttpServletRequestWrapper
- org.springframework.web.util.ContentCachingRequestWrapper
- All Implemented Interfaces:
HttpServletRequest
,ServletRequest
public class ContentCachingRequestWrapper extends HttpServletRequestWrapper
HttpServletRequest
wrapper that caches all content read from the input stream and reader, and allows this content to be retrieved via abyte array
.Used e.g. by
AbstractRequestLoggingFilter
.- Since:
- 4.1.3
- Author:
- Juergen Hoeller, Brian Clozel
- See Also:
ContentCachingResponseWrapper
Field Summary
Fields inherited from interface javax.servlet.http.HttpServletRequest
BASIC_AUTH, CLIENT_CERT_AUTH, DIGEST_AUTH, FORM_AUTH
Constructor Summary
Constructors Constructor Description ContentCachingRequestWrapper(HttpServletRequest request)
Create a new ContentCachingRequestWrapper for the given servlet request.ContentCachingRequestWrapper(HttpServletRequest request, int contentCacheLimit)
Create a new ContentCachingRequestWrapper for the given servlet request.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description String
getCharacterEncoding()
byte[]
getContentAsByteArray()
Return the cached request content as a byte array.ServletInputStream
getInputStream()
String
getParameter(String name)
Map<String,String[]>
getParameterMap()
Enumeration<String>
getParameterNames()
String[]
getParameterValues(String name)
BufferedReader
getReader()
protected void
handleContentOverflow(int contentCacheLimit)
Template method for handling a content overflow: specifically, a request body being read that exceeds the specified content cache limit.Methods inherited from class javax.servlet.http.HttpServletRequestWrapper
authenticate, changeSessionId, getAuthType, getContextPath, getCookies, getDateHeader, getHeader, getHeaderNames, getHeaders, getIntHeader, getMethod, getPart, getParts, getPathInfo, getPathTranslated, getQueryString, getRemoteUser, getRequestedSessionId, getRequestURI, getRequestURL, getServletPath, getSession, getSession, getUserPrincipal, isRequestedSessionIdFromCookie, isRequestedSessionIdFromUrl, isRequestedSessionIdFromURL, isRequestedSessionIdValid, isUserInRole, login, logout, upgrade
Methods inherited from class javax.servlet.ServletRequestWrapper
getAsyncContext, getAttribute, getAttributeNames, getContentLength, getContentLengthLong, getContentType, getDispatcherType, getLocalAddr, getLocale, getLocales, getLocalName, getLocalPort, getProtocol, getRealPath, getRemoteAddr, getRemoteHost, getRemotePort, getRequest, getRequestDispatcher, getScheme, getServerName, getServerPort, getServletContext, isAsyncStarted, isAsyncSupported, isSecure, isWrapperFor, isWrapperFor, removeAttribute, setAttribute, setCharacterEncoding, setRequest, startAsync, startAsync
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface javax.servlet.ServletRequest
getAsyncContext, getAttribute, getAttributeNames, getContentLength, getContentLengthLong, getContentType, getDispatcherType, getLocalAddr, getLocale, getLocales, getLocalName, getLocalPort, getProtocol, getRealPath, getRemoteAddr, getRemoteHost, getRemotePort, getRequestDispatcher, getScheme, getServerName, getServerPort, getServletContext, isAsyncStarted, isAsyncSupported, isSecure, removeAttribute, setAttribute, setCharacterEncoding, startAsync, startAsync
Constructor Detail
ContentCachingRequestWrapper
public ContentCachingRequestWrapper(HttpServletRequest request)
Create a new ContentCachingRequestWrapper for the given servlet request.- Parameters:
request
- the original servlet request
ContentCachingRequestWrapper
public ContentCachingRequestWrapper(HttpServletRequest request, int contentCacheLimit)
Create a new ContentCachingRequestWrapper for the given servlet request.- Parameters:
request
- the original servlet requestcontentCacheLimit
- the maximum number of bytes to cache per request- Since:
- 4.3.6
- See Also:
handleContentOverflow(int)
Method Detail
getInputStream
public ServletInputStream getInputStream() throws IOException
- Specified by:
getInputStream
in interfaceServletRequest
- Overrides:
getInputStream
in classServletRequestWrapper
- Throws:
IOException
getCharacterEncoding
public String getCharacterEncoding()
- Specified by:
getCharacterEncoding
in interfaceServletRequest
- Overrides:
getCharacterEncoding
in classServletRequestWrapper
getReader
public BufferedReader getReader() throws IOException
- Specified by:
getReader
in interfaceServletRequest
- Overrides:
getReader
in classServletRequestWrapper
- Throws:
IOException
getParameter
public String getParameter(String name)
- Specified by:
getParameter
in interfaceServletRequest
- Overrides:
getParameter
in classServletRequestWrapper
getParameterMap
public Map<String,String[]> getParameterMap()
- Specified by:
getParameterMap
in interfaceServletRequest
- Overrides:
getParameterMap
in classServletRequestWrapper
getParameterNames
public Enumeration<String> getParameterNames()
- Specified by:
getParameterNames
in interfaceServletRequest
- Overrides:
getParameterNames
in classServletRequestWrapper
getParameterValues
public String[] getParameterValues(String name)
- Specified by:
getParameterValues
in interfaceServletRequest
- Overrides:
getParameterValues
in classServletRequestWrapper
getContentAsByteArray
public byte[] getContentAsByteArray()
Return the cached request content as a byte array.The returned array will never be larger than the content cache limit.
handleContentOverflow
protected void handleContentOverflow(int contentCacheLimit)
Template method for handling a content overflow: specifically, a request body being read that exceeds the specified content cache limit.The default implementation is empty. Subclasses may override this to throw a payload-too-large exception or the like.
- Parameters:
contentCacheLimit
- the maximum number of bytes to cache per request which has just been exceeded- Since:
- 4.3.6
- See Also:
ContentCachingRequestWrapper(HttpServletRequest, int)