@Override
	public void doFilter(final ServletRequest request, final ServletResponse response, final FilterChain chain) throws ServletException, IOException {
    """
	If browser supports gzip, sets the Content-Encoding response header and
	invoke resource with a wrapped response that collects all the output.
	Extracts the output and write it into a gzipped byte array. Finally, write
	that array to the client's output stream.
	<p>
	If browser does not support gzip, invokes resource normally.
    """
		HttpServletRequest req = (HttpServletRequest) request;
		HttpServletResponse res = (HttpServletResponse) response;

		if (
				(threshold == 0) ||
				(!ServletUtil.isGzipSupported(req)) ||
				(!isGzipEligible(req))
		) {
			chain.doFilter(request, response);
			return;
		}

		GzipResponseWrapper wrappedResponse = new GzipResponseWrapper(res);
		wrappedResponse.setCompressionThreshold(threshold);

		try {
			chain.doFilter(request, wrappedResponse);
		} finally {
			wrappedResponse.finishResponse();
		}
	}
@Override
	public void doFilter(final ServletRequest request, final ServletResponse response, final FilterChain chain) throws ServletException, IOException {
		HttpServletRequest req = (HttpServletRequest) request;
		HttpServletResponse res = (HttpServletResponse) response;

		if (
				(threshold == 0) ||
				(!ServletUtil.isGzipSupported(req)) ||
				(!isGzipEligible(req))
		) {
			chain.doFilter(request, response);
			return;
		}

		GzipResponseWrapper wrappedResponse = new GzipResponseWrapper(res);
		wrappedResponse.setCompressionThreshold(threshold);

		try {
			chain.doFilter(request, wrappedResponse);
		} finally {
			wrappedResponse.finishResponse();
		}
	}
@ Override public void doFilter ( final ServletRequest request , final ServletResponse response , final FilterChain chain ) throws ServletException , IOException { HttpServletRequest req = ( HttpServletRequest ) request ; HttpServletResponse res = ( HttpServletResponse ) response ; if ( ( threshold == 0 ) || ( ! ServletUtil . isGzipSupported ( req ) ) || ( ! isGzipEligible ( req ) ) ) { chain . doFilter ( request , response ) ; return ; } GzipResponseWrapper wrappedResponse = new GzipResponseWrapper ( res ) ; wrappedResponse . setCompressionThreshold ( threshold ) ; try { chain . doFilter ( request , wrappedResponse ) ; } finally { wrappedResponse . finishResponse ( ) ; } }
If browser supports gzip, sets the Content-Encoding response header and
invoke resource with a wrapped response that collects all the output.
Extracts the output and write it into a gzipped byte array. Finally, write
that array to the client's output stream.
<p>
If browser does not support gzip, invokes resource normally.
If browser supports gzip sets the Content - Encoding response header and invoke resource with a wrapped response that collects all the output . Extracts the output and write it into a gzipped byte array . Finally write that array to the client s output stream . <p > If browser does not support gzip invokes resource normally .