org.eclipse.jetty.servlets
Class GzipFilter

java.lang.Object
  extended by org.eclipse.jetty.servlets.UserAgentFilter
      extended by org.eclipse.jetty.servlets.GzipFilter
All Implemented Interfaces:
javax.servlet.Filter
Direct Known Subclasses:
IncludableGzipFilter

public class GzipFilter
extends UserAgentFilter

GZIP Filter This filter will gzip or deflate the content of a response if:

If both gzip and deflate are specified in the accept-encoding header, then gzip will be used.

Compressing the content can greatly improve the network bandwidth usage, but at a cost of memory and CPU cycles. If this filter is mapped for static content, then use of efficient direct NIO may be prevented, thus use of the gzip mechanism of the DefaultServlet is advised instead.

This filter extends UserAgentFilter and if the the initParameter excludedAgents is set to a comma separated list of user agents, then these agents will be excluded from gzip content.

Init Parameters:

 bufferSize                 The output buffer size. Defaults to 8192. Be careful as values <= 0 will lead to an 
                            IllegalArgumentException.

See Also:
GZIPOutputStream.GZIPOutputStream(java.io.OutputStream, int), minGzipSize Content will only be compressed if content length is either unknown or greater than minGzipSize. deflateCompressionLevel The compression level used for deflate compression. (0-9)., deflateNoWrap The noWrap setting for deflate compression. Defaults to true. (true/false), mimeTypes Comma separated list of mime types to compress. See description above. excludedAgents Comma separated list of user agents to exclude from compression. Does a {@link String#contains(CharSequence)} to check if the excluded agent occurs in the user-agent header. If it does -> no compression excludeAgentPatterns Same as excludedAgents, but accepts regex patterns for more complex matching. excludePaths Comma separated list of paths to exclude from compression. Does a {@link String#startsWith(String)} comparison to check if the path matches. If it does match -> no compression. To match subpaths use excludePathPatterns instead. excludePathPatterns Same as excludePath, but accepts regex patterns for more complex matching.

Field Summary
protected  int _bufferSize
           
protected  int _deflateCompressionLevel
           
protected  boolean _deflateNoWrap
           
protected  java.util.Set<java.util.regex.Pattern> _excludedAgentPatterns
           
protected  java.util.Set<java.lang.String> _excludedAgents
           
protected  java.util.Set<java.util.regex.Pattern> _excludedPathPatterns
           
protected  java.util.Set<java.lang.String> _excludedPaths
           
protected  java.util.Set<java.lang.String> _mimeTypes
           
protected  int _minGzipSize
           
static java.lang.String DEFLATE
           
static java.lang.String GZIP
           
 
Constructor Summary
GzipFilter()
           
 
Method Summary
protected  void configureWrappedResponse(CompressedResponseWrapper wrappedResponse)
           
protected  CompressedResponseWrapper createWrappedResponse(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, java.lang.String compressionType)
           
 void destroy()
           
 void doFilter(javax.servlet.ServletRequest req, javax.servlet.ServletResponse res, javax.servlet.FilterChain chain)
           
 void init(javax.servlet.FilterConfig filterConfig)
           
 
Methods inherited from class org.eclipse.jetty.servlets.UserAgentFilter
getUserAgent, getUserAgent
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

GZIP

public static final java.lang.String GZIP
See Also:
Constant Field Values

DEFLATE

public static final java.lang.String DEFLATE
See Also:
Constant Field Values

_mimeTypes

protected java.util.Set<java.lang.String> _mimeTypes

_bufferSize

protected int _bufferSize

_minGzipSize

protected int _minGzipSize

_deflateCompressionLevel

protected int _deflateCompressionLevel

_deflateNoWrap

protected boolean _deflateNoWrap

_excludedAgents

protected java.util.Set<java.lang.String> _excludedAgents

_excludedAgentPatterns

protected java.util.Set<java.util.regex.Pattern> _excludedAgentPatterns

_excludedPaths

protected java.util.Set<java.lang.String> _excludedPaths

_excludedPathPatterns

protected java.util.Set<java.util.regex.Pattern> _excludedPathPatterns
Constructor Detail

GzipFilter

public GzipFilter()
Method Detail

init

public void init(javax.servlet.FilterConfig filterConfig)
          throws javax.servlet.ServletException
Specified by:
init in interface javax.servlet.Filter
Overrides:
init in class UserAgentFilter
Throws:
javax.servlet.ServletException
See Also:
UserAgentFilter.init(javax.servlet.FilterConfig)

destroy

public void destroy()
Specified by:
destroy in interface javax.servlet.Filter
Overrides:
destroy in class UserAgentFilter
See Also:
UserAgentFilter.destroy()

doFilter

public void doFilter(javax.servlet.ServletRequest req,
                     javax.servlet.ServletResponse res,
                     javax.servlet.FilterChain chain)
              throws java.io.IOException,
                     javax.servlet.ServletException
Specified by:
doFilter in interface javax.servlet.Filter
Overrides:
doFilter in class UserAgentFilter
Throws:
java.io.IOException
javax.servlet.ServletException
See Also:
UserAgentFilter.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)

createWrappedResponse

protected CompressedResponseWrapper createWrappedResponse(javax.servlet.http.HttpServletRequest request,
                                                          javax.servlet.http.HttpServletResponse response,
                                                          java.lang.String compressionType)

configureWrappedResponse

protected void configureWrappedResponse(CompressedResponseWrapper wrappedResponse)


Copyright © 2012. All Rights Reserved.