Class GZIPResponseWrapper

  • All Implemented Interfaces:
    javax.servlet.http.HttpServletResponse, javax.servlet.ServletResponse

    public class GZIPResponseWrapper
    extends javax.servlet.http.HttpServletResponseWrapper
    Implementation of a HttpServletResponse which provides gzip compression on its content.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected javax.servlet.http.HttpServletResponse origResponse  
      protected javax.servlet.ServletOutputStream outputStream  
      protected java.io.PrintWriter printWriter  
      • Fields inherited from interface javax.servlet.http.HttpServletResponse

        SC_ACCEPTED, SC_BAD_GATEWAY, SC_BAD_REQUEST, SC_CONFLICT, SC_CONTINUE, SC_CREATED, SC_EXPECTATION_FAILED, SC_FORBIDDEN, SC_FOUND, SC_GATEWAY_TIMEOUT, SC_GONE, SC_HTTP_VERSION_NOT_SUPPORTED, SC_INTERNAL_SERVER_ERROR, SC_LENGTH_REQUIRED, SC_METHOD_NOT_ALLOWED, SC_MOVED_PERMANENTLY, SC_MOVED_TEMPORARILY, SC_MULTIPLE_CHOICES, SC_NO_CONTENT, SC_NON_AUTHORITATIVE_INFORMATION, SC_NOT_ACCEPTABLE, SC_NOT_FOUND, SC_NOT_IMPLEMENTED, SC_NOT_MODIFIED, SC_OK, SC_PARTIAL_CONTENT, SC_PAYMENT_REQUIRED, SC_PRECONDITION_FAILED, SC_PROXY_AUTHENTICATION_REQUIRED, SC_REQUEST_ENTITY_TOO_LARGE, SC_REQUEST_TIMEOUT, SC_REQUEST_URI_TOO_LONG, SC_REQUESTED_RANGE_NOT_SATISFIABLE, SC_RESET_CONTENT, SC_SEE_OTHER, SC_SERVICE_UNAVAILABLE, SC_SWITCHING_PROTOCOLS, SC_TEMPORARY_REDIRECT, SC_UNAUTHORIZED, SC_UNSUPPORTED_MEDIA_TYPE, SC_USE_PROXY
    • Constructor Summary

      Constructors 
      Constructor Description
      GZIPResponseWrapper​(javax.servlet.http.HttpServletResponse response)
      Creates a new GZIPResponseWrapper which wraps the given response.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      javax.servlet.ServletOutputStream createOutputStream()
      Creates and returns a new GZIPResponseStream.
      void finishResponse()
      Finishes this response by closing the underlying stream/writer.
      void flushBuffer()
      Flushes the underlying output stream.
      javax.servlet.ServletOutputStream getOutputStream()
      Returns the underlying GZIPResponseStream.
      java.io.PrintWriter getWriter()
      Returns the underlying PrintWriter which in turn is backed up by an GZIPResponseStream.
      void setContentLength​(int length)
      This implementation of ServletResponseWrapper.setContentLength(int) does nothing.
      • Methods inherited from class javax.servlet.http.HttpServletResponseWrapper

        addCookie, addDateHeader, addHeader, addIntHeader, containsHeader, encodeRedirectUrl, encodeRedirectURL, encodeUrl, encodeURL, getHeader, getHeaderNames, getHeaders, getStatus, sendError, sendError, sendRedirect, setDateHeader, setHeader, setIntHeader, setStatus, setStatus
      • Methods inherited from class javax.servlet.ServletResponseWrapper

        getBufferSize, getCharacterEncoding, getContentType, getLocale, getResponse, isCommitted, isWrapperFor, isWrapperFor, reset, resetBuffer, setBufferSize, setCharacterEncoding, setContentLengthLong, setContentType, setLocale, setResponse
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface javax.servlet.ServletResponse

        getBufferSize, getCharacterEncoding, getContentType, getLocale, isCommitted, reset, resetBuffer, setBufferSize, setCharacterEncoding, setContentLengthLong, setContentType, setLocale
    • Field Detail

      • origResponse

        protected javax.servlet.http.HttpServletResponse origResponse
      • outputStream

        protected javax.servlet.ServletOutputStream outputStream
      • printWriter

        protected java.io.PrintWriter printWriter
    • Constructor Detail

      • GZIPResponseWrapper

        public GZIPResponseWrapper​(javax.servlet.http.HttpServletResponse response)
        Creates a new GZIPResponseWrapper which wraps the given response.
        Parameters:
        response - original HttpServletResponse object.
    • Method Detail

      • getOutputStream

        public javax.servlet.ServletOutputStream getOutputStream()
                                                          throws java.io.IOException
        Returns the underlying GZIPResponseStream.
        Specified by:
        getOutputStream in interface javax.servlet.ServletResponse
        Overrides:
        getOutputStream in class javax.servlet.ServletResponseWrapper
        Throws:
        java.io.IOException
      • getWriter

        public java.io.PrintWriter getWriter()
                                      throws java.io.IOException
        Returns the underlying PrintWriter which in turn is backed up by an GZIPResponseStream.
        Specified by:
        getWriter in interface javax.servlet.ServletResponse
        Overrides:
        getWriter in class javax.servlet.ServletResponseWrapper
        Throws:
        java.io.IOException
      • createOutputStream

        public javax.servlet.ServletOutputStream createOutputStream()
                                                             throws java.io.IOException
        Creates and returns a new GZIPResponseStream.
        Throws:
        java.io.IOException
      • flushBuffer

        public void flushBuffer()
                         throws java.io.IOException
        Flushes the underlying output stream.
        Specified by:
        flushBuffer in interface javax.servlet.ServletResponse
        Overrides:
        flushBuffer in class javax.servlet.ServletResponseWrapper
        Throws:
        java.io.IOException
      • finishResponse

        public void finishResponse()
        Finishes this response by closing the underlying stream/writer.
      • setContentLength

        public void setContentLength​(int length)
        This implementation of ServletResponseWrapper.setContentLength(int) does nothing. The correct content length header will be set when the underlying GZIPResponseStream is closed (via GZIPResponseStream.close()).
        Specified by:
        setContentLength in interface javax.servlet.ServletResponse
        Overrides:
        setContentLength in class javax.servlet.ServletResponseWrapper