com.planetj.servlet.filter.compression
Class CompressedHttpServletRequest

java.lang.Object
  extended by javax.servlet.ServletRequestWrapper
      extended by javax.servlet.http.HttpServletRequestWrapper
          extended by com.planetj.servlet.filter.compression.CompressedHttpServletRequest
All Implemented Interfaces:
javax.servlet.http.HttpServletRequest, javax.servlet.ServletRequest

final class CompressedHttpServletRequest
extends javax.servlet.http.HttpServletRequestWrapper

Implementation of HttpServletRequest which can decompress request bodies that have been compressed.

Since:
1.6
Author:
Sean Owen

Field Summary
private  java.io.BufferedReader bufferedReader
           
private  CompressingServletInputStream compressedSIS
           
private  CompressingStreamFactory compressingStreamFactory
           
private  CompressingFilterContext context
           
private  javax.servlet.ServletRequest httpRequest
           
private  boolean isGetInputStreamCalled
           
private  boolean isGetReaderCalled
           
 
Fields inherited from interface javax.servlet.http.HttpServletRequest
BASIC_AUTH, CLIENT_CERT_AUTH, DIGEST_AUTH, FORM_AUTH
 
Constructor Summary
CompressedHttpServletRequest(javax.servlet.http.HttpServletRequest httpRequest, CompressingStreamFactory compressingStreamFactory, CompressingFilterContext context)
           
 
Method Summary
private  CompressingServletInputStream getCompressingServletInputStream()
           
 long getDateHeader(java.lang.String header)
           
 java.lang.String getHeader(java.lang.String header)
           
 java.util.Enumeration<?> getHeaderNames()
           
 java.util.Enumeration<?> getHeaders(java.lang.String header)
           
 javax.servlet.ServletInputStream getInputStream()
           
 int getIntHeader(java.lang.String header)
           
 java.io.BufferedReader getReader()
           
private static boolean isFilteredHeader(java.lang.String headerName)
           
 java.lang.String toString()
           
 
Methods inherited from class javax.servlet.http.HttpServletRequestWrapper
getAuthType, getContextPath, getCookies, getMethod, getPathInfo, getPathTranslated, getQueryString, getRemoteUser, getRequestedSessionId, getRequestURI, getRequestURL, getServletPath, getSession, getSession, getUserPrincipal, isRequestedSessionIdFromCookie, isRequestedSessionIdFromUrl, isRequestedSessionIdFromURL, isRequestedSessionIdValid, isUserInRole
 
Methods inherited from class javax.servlet.ServletRequestWrapper
getAttribute, getAttributeNames, getCharacterEncoding, getContentLength, getContentType, getLocalAddr, getLocale, getLocales, getLocalName, getLocalPort, getParameter, getParameterMap, getParameterNames, getParameterValues, getProtocol, getRealPath, getRemoteAddr, getRemoteHost, getRemotePort, getRequest, getRequestDispatcher, getScheme, getServerName, getServerPort, isSecure, removeAttribute, setAttribute, setCharacterEncoding, setRequest
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface javax.servlet.ServletRequest
getAttribute, getAttributeNames, getCharacterEncoding, getContentLength, getContentType, getLocalAddr, getLocale, getLocales, getLocalName, getLocalPort, getParameter, getParameterMap, getParameterNames, getParameterValues, getProtocol, getRealPath, getRemoteAddr, getRemoteHost, getRemotePort, getRequestDispatcher, getScheme, getServerName, getServerPort, isSecure, removeAttribute, setAttribute, setCharacterEncoding
 

Field Detail

httpRequest

private final javax.servlet.ServletRequest httpRequest

compressingStreamFactory

private final CompressingStreamFactory compressingStreamFactory

context

private final CompressingFilterContext context

compressedSIS

private CompressingServletInputStream compressedSIS

bufferedReader

private java.io.BufferedReader bufferedReader

isGetInputStreamCalled

private boolean isGetInputStreamCalled

isGetReaderCalled

private boolean isGetReaderCalled
Constructor Detail

CompressedHttpServletRequest

CompressedHttpServletRequest(javax.servlet.http.HttpServletRequest httpRequest,
                             CompressingStreamFactory compressingStreamFactory,
                             CompressingFilterContext context)
Method Detail

getInputStream

@NotNull
public javax.servlet.ServletInputStream getInputStream()
                                                throws java.io.IOException
Specified by:
getInputStream in interface javax.servlet.ServletRequest
Overrides:
getInputStream in class javax.servlet.ServletRequestWrapper
Throws:
java.io.IOException

getReader

@NotNull
public java.io.BufferedReader getReader()
                                 throws java.io.IOException
Specified by:
getReader in interface javax.servlet.ServletRequest
Overrides:
getReader in class javax.servlet.ServletRequestWrapper
Throws:
java.io.IOException

getCompressingServletInputStream

@NotNull
private CompressingServletInputStream getCompressingServletInputStream()
                                                                throws java.io.IOException
Throws:
java.io.IOException

isFilteredHeader

private static boolean isFilteredHeader(java.lang.String headerName)

getHeader

public java.lang.String getHeader(java.lang.String header)
Specified by:
getHeader in interface javax.servlet.http.HttpServletRequest
Overrides:
getHeader in class javax.servlet.http.HttpServletRequestWrapper

getHeaders

public java.util.Enumeration<?> getHeaders(java.lang.String header)
Specified by:
getHeaders in interface javax.servlet.http.HttpServletRequest
Overrides:
getHeaders in class javax.servlet.http.HttpServletRequestWrapper

getDateHeader

public long getDateHeader(java.lang.String header)
Specified by:
getDateHeader in interface javax.servlet.http.HttpServletRequest
Overrides:
getDateHeader in class javax.servlet.http.HttpServletRequestWrapper

getIntHeader

public int getIntHeader(java.lang.String header)
Specified by:
getIntHeader in interface javax.servlet.http.HttpServletRequest
Overrides:
getIntHeader in class javax.servlet.http.HttpServletRequestWrapper

getHeaderNames

public java.util.Enumeration<?> getHeaderNames()
Specified by:
getHeaderNames in interface javax.servlet.http.HttpServletRequest
Overrides:
getHeaderNames in class javax.servlet.http.HttpServletRequestWrapper

toString

@NotNull
public java.lang.String toString()
Overrides:
toString in class java.lang.Object