Class GzipHandler
- All Implemented Interfaces:
- Handler, Handler.Container, GzipFactory, Handler.Singleton, Request.Handler, Container, Destroyable, Dumpable, Dumpable.DumpableContainer, LifeCycle, Invocable
- 
Nested Class SummaryNested classes/interfaces inherited from class Handler.AbstractHandler.Abstract.NonBlockingNested classes/interfaces inherited from class AbstractLifeCycleAbstractLifeCycle.AbstractLifeCycleListener, AbstractLifeCycle.StopExceptionNested classes/interfaces inherited from interface ContainerContainer.InheritedListener, Container.ListenerNested classes/interfaces inherited from interface DumpableDumpable.DumpableContainerNested classes/interfaces inherited from interface HandlerHandler.Abstract, Handler.AbstractContainer, Handler.Collection, Handler.Container, Handler.Sequence, Handler.Singleton, Handler.WrapperNested classes/interfaces inherited from interface InvocableInvocable.Callable, Invocable.InvocationType, Invocable.ReadyTask, Invocable.TaskNested classes/interfaces inherited from interface LifeCycleLifeCycle.ListenerNested classes/interfaces inherited from interface Request.HandlerRequest.Handler.AbortException
- 
Field SummaryFieldsModifier and TypeFieldDescriptionstatic final intstatic final intstatic final Stringstatic final Stringstatic final StringFields inherited from interface Invocable__nonBlocking, NOOP
- 
Constructor SummaryConstructorsConstructorDescriptionInstantiates a new GzipHandler.GzipHandler(Handler handler) Instantiates a new GzipHandler.
- 
Method SummaryModifier and TypeMethodDescriptionvoidaddExcludedInflationPaths(String... pathspecs) Adds excluded Path Specs for request filtering on request inflation.voidaddExcludedMethods(String... methods) Add excluded to the HTTP methods filtering.voidaddExcludedMimeTypes(String... types) Adds excluded MIME types for response filtering.voidaddExcludedPaths(String... pathspecs) Adds excluded Path Specs for request filtering.voidaddIncludedInflationPaths(String... pathspecs) Add included Path Specs for filtering on request inflation.voidaddIncludedMethods(String... methods) Adds included HTTP Methods (eg: POST, PATCH, DELETE) for filtering.voidaddIncludedMimeTypes(String... types) Add included MIME types for response filteringvoidaddIncludedPaths(String... pathspecs) Add included Path Specs for filtering.protected voiddoStart()Starts the managed lifecycle beans in the order they were added.protected voiddoStop()Stops the managed lifecycle beans in the reverse order they were added.getDeflaterEntry(Request request, long contentLength) Get the DeflaterPool being used.String[]Get the current filter list of excluded Path Specs for request inflation.Get the excluded filter list of HTTP methods in CSV formatString[]Get the current filter list of excluded HTTP methodsString[]Get the current filter list of excluded MIME typesString[]Get the current filter list of excluded Path SpecsString[]Get the current filter list of included Path Specs for request inflation.Get the included filter list of HTTP methods in CSV formatString[]Get the current filter list of included HTTP MethodsString[]Get the current filter list of included MIME typesString[]Get the current filter list of included Path SpecsintGet the size (in bytes) of theInflaterbuffer used to inflate compressed requests.Get the InflaterPool being used.intGet the minimum size, in bytes, that a responseContent-Lengthmust be before compression will trigger.getVary()booleanInvoked to handle the passed HTTP request and response.booleanisMimeTypeDeflatable(String mimetype) Test if the provided MIME type is allowed based on the MIME type filters.protected booleanisMimeTypeDeflatable(MimeTypes mimeTypes, String requestURI) protected booleanisPathDeflatable(String requestURI) Test if the provided Request URI is allowed based on the Path Specs filters.protected booleanisPathInflatable(String pathInContext) Test if the provided Request URI is allowed to be inflated based on the Path Specs filters.booleanIs theDeflaterrunningDeflater.SYNC_FLUSHor not.voidsetDeflaterPool(DeflaterPool deflaterPool) Set the DeflaterPool to be used.voidsetExcludedInflatePaths(String... pathspecs) Set the excluded filter list of Path specs (replacing any previously set)voidsetExcludedMethodList(String csvMethods) Set the excluded filter list of HTTP Methods (replacing any previously set)voidsetExcludedMethods(String... methods) Set the excluded filter list of HTTP methods (replacing any previously set)voidsetExcludedMimeTypes(String... types) Set the excluded filter list of MIME types (replacing any previously set)voidsetExcludedMimeTypesList(String csvTypes) Set the excluded filter list of MIME types (replacing any previously set)voidsetExcludedPaths(String... pathspecs) Set the excluded filter list of Path specs (replacing any previously set)voidsetIncludedInflatePaths(String... pathspecs) Set the included filter list of Path specs (replacing any previously set)voidsetIncludedMethodList(String csvMethods) Set the included filter list of HTTP Methods (replacing any previously set)voidsetIncludedMethods(String... methods) Set the included filter list of HTTP methods (replacing any previously set)voidsetIncludedMimeTypes(String... types) Set the included filter list of MIME types (replacing any previously set)voidsetIncludedMimeTypesList(String csvTypes) Set the included filter list of MIME types (replacing any previously set)voidsetIncludedPaths(String... pathspecs) Set the included filter list of Path specs (replacing any previously set)voidsetInflateBufferSize(int size) Set the size (in bytes) of theInflaterbuffer used to inflate comrpessed requests.voidsetInflaterPool(InflaterPool inflaterPool) Set the InflaterPool to be used.voidsetMinGzipSize(int minGzipSize) Set the minimum response size to trigger dynamic compression.voidsetSyncFlush(boolean syncFlush) Set theDeflaterflush mode to use.voidtoString()Methods inherited from class Handler.WrappergetHandler, getInvocationType, setHandlerMethods inherited from class Handler.AbstractContainerfindContainerOf, getDescendant, getDescendants, isDynamic, setDynamic, setServerMethods inherited from class Handler.Abstractdestroy, getServerMethods inherited from class ContainerLifeCycleaddBean, addBean, addEventListener, addManaged, contains, dump, dump, dump, dumpObjects, dumpStdErr, getBean, getBeans, getBeans, getContainedBeans, getContainedBeans, installBean, installBean, isAuto, isManaged, isUnmanaged, manage, removeBean, removeBeans, removeEventListener, setBeans, start, stop, unmanage, updateBean, updateBean, updateBeans, updateBeansMethods inherited from class AbstractLifeCyclegetEventListeners, getState, getState, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, setEventListeners, start, stopMethods inherited from class Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface ContainergetCachedBeans, getEventListenersMethods inherited from interface DestroyabledestroyMethods inherited from interface Dumpable.DumpableContainerisDumpableMethods inherited from interface Handler.ContainergetContainer, getDescendant, getDescendants, getDescendantsMethods inherited from interface Handler.SingletongetHandlers, getTail, insertHandler, setHandlerMethods inherited from interface LifeCycleaddEventListener, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeEventListener, start, stop
- 
Field Details- 
GZIP_HANDLER_ETAGS- See Also:
 
- 
GZIP- See Also:
 
- 
DEFLATE- See Also:
 
- 
DEFAULT_MIN_GZIP_SIZEpublic static final int DEFAULT_MIN_GZIP_SIZE- See Also:
 
- 
BREAK_EVEN_GZIP_SIZEpublic static final int BREAK_EVEN_GZIP_SIZE- See Also:
 
 
- 
- 
Constructor Details- 
GzipHandlerpublic GzipHandler()Instantiates a new GzipHandler.
- 
GzipHandlerInstantiates a new GzipHandler.- Parameters:
- handler- the handler to wrap
 
 
- 
- 
Method Details- 
doStartDescription copied from class:ContainerLifeCycleStarts the managed lifecycle beans in the order they were added.- Overrides:
- doStartin class- Handler.Abstract
- Throws:
- Exception- If there was a problem starting. Will cause a transition to FAILED state
 
- 
doStopDescription copied from class:ContainerLifeCycleStops the managed lifecycle beans in the reverse order they were added.- Overrides:
- doStopin class- Handler.Abstract
- Throws:
- Exception- If there was a problem stopping. Will cause a transition to FAILED state
 
- 
getVary- Returns:
- The VARY field to use.
 
- 
setVary- Parameters:
- vary- The VARY field to use. It if is not an instance of- PreEncodedHttpField, then it will be converted to one.
 
- 
addExcludedMethodsAdd excluded to the HTTP methods filtering.- Parameters:
- methods- The methods to exclude in compression
- See Also:
 
- 
addExcludedMimeTypesAdds excluded MIME types for response filtering.Deprecation Warning: For backward compatibility the MIME types parameters may be comma separated strings, but this will not be supported in future versions of Jetty. - Parameters:
- types- The mime types to exclude (without charset or other parameters).
- See Also:
 
- 
addExcludedPathsAdds excluded Path Specs for request filtering.There are 2 syntaxes supported, Servlet url-patternbased, and Regex based. This means that the initial characters on the path spec line are very strict, and determine the behavior of the path matching.- If the spec starts with '^'the spec is assumed to be a regex based path spec and will match with normal Java regex rules.
- If the spec starts with '/'then spec is assumed to be a Servlet url-pattern rules path spec for either an exact match or prefix based match.
- If the spec starts with '*.'then spec is assumed to be a Servlet url-pattern rules path spec for a suffix based match.
- All other syntaxes are unsupported
 Note: inclusion takes precedence over exclude. - Parameters:
- pathspecs- Path specs (as per servlet spec) to exclude. If a ServletContext is available, the paths are relative to the context path, otherwise they are absolute.
 For backward compatibility the pathspecs may be comma separated strings, but this will not be supported in future versions.
- See Also:
 
- If the spec starts with 
- 
addExcludedInflationPathsAdds excluded Path Specs for request filtering on request inflation.There are 2 syntaxes supported, Servlet url-patternbased, and Regex based. This means that the initial characters on the path spec line are very strict, and determine the behavior of the path matching.- If the spec starts with '^'the spec is assumed to be a regex based path spec and will match with normal Java regex rules.
- If the spec starts with '/'then spec is assumed to be a Servlet url-pattern rules path spec for either an exact match or prefix based match.
- If the spec starts with '*.'then spec is assumed to be a Servlet url-pattern rules path spec for a suffix based match.
- All other syntaxes are unsupported
 Note: inclusion takes precedence over exclude. - Parameters:
- pathspecs- Path specs (as per servlet spec) to exclude. If a ServletContext is available, the paths are relative to the context path, otherwise they are absolute.
 For backward compatibility the pathspecs may be comma separated strings, but this will not be supported in future versions.
- See Also:
 
- If the spec starts with 
- 
addIncludedMethodsAdds included HTTP Methods (eg: POST, PATCH, DELETE) for filtering.- Parameters:
- methods- The HTTP methods to include in compression.
- See Also:
 
- 
isSyncFlushpublic boolean isSyncFlush()Is theDeflaterrunningDeflater.SYNC_FLUSHor not.- Returns:
- True if Deflater.SYNC_FLUSHis used, elseDeflater.NO_FLUSH
- See Also:
 
- 
setSyncFlushpublic void setSyncFlush(boolean syncFlush) Set theDeflaterflush mode to use.Deflater.SYNC_FLUSHshould be used if the application wishes to stream the data, but this may hurt compression performance.- Parameters:
- syncFlush- True if- Deflater.SYNC_FLUSHis used, else- Deflater.NO_FLUSH
- See Also:
 
- 
addIncludedMimeTypesAdd included MIME types for response filtering- Parameters:
- types- The mime types to include (without charset or other parameters) For backward compatibility the mimetypes may be comma separated strings, but this will not be supported in future versions.
- See Also:
 
- 
addIncludedPathsAdd included Path Specs for filtering.There are 2 syntaxes supported, Servlet url-patternbased, and Regex based. This means that the initial characters on the path spec line are very strict, and determine the behavior of the path matching.- If the spec starts with '^'the spec is assumed to be a regex based path spec and will match with normal Java regex rules.
- If the spec starts with '/'then spec is assumed to be a Servlet url-pattern rules path spec for either an exact match or prefix based match.
- If the spec starts with '*.'then spec is assumed to be a Servlet url-pattern rules path spec for a suffix based match.
- All other syntaxes are unsupported
 Note: inclusion takes precedence over exclusion. - Parameters:
- pathspecs- Path specs (as per servlet spec) to include. If a ServletContext is available, the paths are relative to the context path, otherwise they are absolute
 
- If the spec starts with 
- 
addIncludedInflationPathsAdd included Path Specs for filtering on request inflation.There are 2 syntaxes supported, Servlet url-patternbased, and Regex based. This means that the initial characters on the path spec line are very strict, and determine the behavior of the path matching.- If the spec starts with '^'the spec is assumed to be a regex based path spec and will match with normal Java regex rules.
- If the spec starts with '/'then spec is assumed to be a Servlet url-pattern rules path spec for either an exact match or prefix based match.
- If the spec starts with '*.'then spec is assumed to be a Servlet url-pattern rules path spec for a suffix based match.
- All other syntaxes are unsupported
 Note: inclusion takes precedence over exclusion. - Parameters:
- pathspecs- Path specs (as per servlet spec) to include. If a ServletContext is available, the paths are relative to the context path, otherwise they are absolute
 
- If the spec starts with 
- 
getDeflaterEntry- Specified by:
- getDeflaterEntryin interface- GzipFactory
 
- 
getExcludedMethodsGet the current filter list of excluded HTTP methods- Returns:
- the filter list of excluded HTTP methods
- See Also:
 
- 
getExcludedMimeTypesGet the current filter list of excluded MIME types- Returns:
- the filter list of excluded MIME types
- See Also:
 
- 
getExcludedPathsGet the current filter list of excluded Path Specs- Returns:
- the filter list of excluded Path Specs
- See Also:
 
- 
getExcludedInflationPathsGet the current filter list of excluded Path Specs for request inflation.- Returns:
- the filter list of excluded Path Specs
- See Also:
 
- 
getIncludedMethodsGet the current filter list of included HTTP Methods- Returns:
- the filter list of included HTTP methods
- See Also:
 
- 
getIncludedMimeTypesGet the current filter list of included MIME types- Returns:
- the filter list of included MIME types
- See Also:
 
- 
getIncludedPathsGet the current filter list of included Path Specs- Returns:
- the filter list of included Path Specs
- See Also:
 
- 
getIncludedInflationPathsGet the current filter list of included Path Specs for request inflation.- Returns:
- the filter list of included Path Specs
- See Also:
 
- 
getMinGzipSizepublic int getMinGzipSize()Get the minimum size, in bytes, that a responseContent-Lengthmust be before compression will trigger.- Returns:
- minimum response size (in bytes) that triggers compression
- See Also:
 
- 
getInflateBufferSizepublic int getInflateBufferSize()Get the size (in bytes) of theInflaterbuffer used to inflate compressed requests.- Returns:
- size in bytes of the buffer, or 0 for no inflation.
 
- 
setInflateBufferSizepublic void setInflateBufferSize(int size) Set the size (in bytes) of theInflaterbuffer used to inflate comrpessed requests.- Parameters:
- size- size in bytes of the buffer, or 0 for no inflation.
 
- 
handleDescription copied from interface:Request.HandlerInvoked to handle the passed HTTP request and response. The request is accepted by returning true, then handling must be concluded by completing the passed callback. The handling may be asynchronous, i.e. this method may return true and complete the given callback later, possibly from a different thread. If this method returns false, then the callback must not be invoked and any mutation on the response reversed. Exceptions thrown by this method may be subsequently handled by an error Request.Handler, if present, otherwise a default HTTP 500 error is generated and the callback completed while writing the error response.The simplest implementation is: public boolean handle(Request request, Response response, Callback callback) { callback.succeeded(); return true; }A HelloWorld implementation is: public boolean handle(Request request, Response response, Callback callback) { response.write(true, ByteBuffer.wrap("Hello World\n".getBytes(StandardCharsets.UTF_8)), callback); return true; }- Specified by:
- handlein interface- Request.Handler
- Overrides:
- handlein class- Handler.Wrapper
- Parameters:
- request- the HTTP request to handle
- response- the HTTP response to handle
- callback- the callback to complete when the handling is complete
- Returns:
- True if and only if the request will be handled, a response generated and the callback eventually called. This may occur within the scope of the call to this method, or asynchronously some time later. If false is returned, then this method must not generate a response, nor complete the callback.
- Throws:
- Exception- if there is a failure during the handling. Catchers cannot assume that the callback will be called and thus should attempt to complete the request as if a false had been returned.
- See Also:
 
- 
isMimeTypeDeflatable
- 
isMimeTypeDeflatableTest if the provided MIME type is allowed based on the MIME type filters.- Specified by:
- isMimeTypeDeflatablein interface- GzipFactory
- Parameters:
- mimetype- the MIME type to test
- Returns:
- true if allowed, false otherwise
 
- 
isPathDeflatableTest if the provided Request URI is allowed based on the Path Specs filters.- Parameters:
- requestURI- the request uri
- Returns:
- whether compressing is allowed for the given the path
 
- 
isPathInflatableTest if the provided Request URI is allowed to be inflated based on the Path Specs filters.- Parameters:
- pathInContext- the request path in context
- Returns:
- whether decompressing is allowed for the given the path.
 
- 
setExcludedMethodsSet the excluded filter list of HTTP methods (replacing any previously set)- Parameters:
- methods- the HTTP methods to exclude
- See Also:
 
- 
setExcludedMimeTypesSet the excluded filter list of MIME types (replacing any previously set)- Parameters:
- types- The mime types to exclude (without charset or other parameters)
- See Also:
 
- 
setExcludedMimeTypesListSet the excluded filter list of MIME types (replacing any previously set)- Parameters:
- csvTypes- The list of mime types to exclude (without charset or other parameters), CSV format
- See Also:
 
- 
setExcludedPathsSet the excluded filter list of Path specs (replacing any previously set)- Parameters:
- pathspecs- Path specs (as per servlet spec) to exclude. If a ServletContext is available, the paths are relative to the context path, otherwise they are absolute.
- See Also:
 
- 
setExcludedInflatePathsSet the excluded filter list of Path specs (replacing any previously set)- Parameters:
- pathspecs- Path specs (as per servlet spec) to exclude from inflation. If a ServletContext is available, the paths are relative to the context path, otherwise they are absolute.
- See Also:
 
- 
setIncludedMethodsSet the included filter list of HTTP methods (replacing any previously set)- Parameters:
- methods- The methods to include in compression
- See Also:
 
- 
setIncludedMimeTypesSet the included filter list of MIME types (replacing any previously set)- Parameters:
- types- The mime types to include (without charset or other parameters)
- See Also:
 
- 
setIncludedMimeTypesListSet the included filter list of MIME types (replacing any previously set)- Parameters:
- csvTypes- The list of mime types to include (without charset or other parameters), CSV format
- See Also:
 
- 
setIncludedPathsSet the included filter list of Path specs (replacing any previously set)- Parameters:
- pathspecs- Path specs (as per servlet spec) to include. If a ServletContext is available, the paths are relative to the context path, otherwise they are absolute
- See Also:
 
- 
setIncludedInflatePathsSet the included filter list of Path specs (replacing any previously set)- Parameters:
- pathspecs- Path specs (as per servlet spec) to include for inflation. If a ServletContext is available, the paths are relative to the context path, otherwise they are absolute
- See Also:
 
- 
setMinGzipSizepublic void setMinGzipSize(int minGzipSize) Set the minimum response size to trigger dynamic compression.Sizes below BREAK_EVEN_GZIP_SIZEwill result a compressed response that is larger than the original data.- Parameters:
- minGzipSize- minimum response size in bytes (not allowed to be lower then- BREAK_EVEN_GZIP_SIZE)
 
- 
setIncludedMethodListSet the included filter list of HTTP Methods (replacing any previously set)- Parameters:
- csvMethods- the list of methods, CSV format
- See Also:
 
- 
getIncludedMethodListGet the included filter list of HTTP methods in CSV format- Returns:
- the included filter list of HTTP methods in CSV format
- See Also:
 
- 
setExcludedMethodListSet the excluded filter list of HTTP Methods (replacing any previously set)- Parameters:
- csvMethods- the list of methods, CSV format
- See Also:
 
- 
getExcludedMethodListGet the excluded filter list of HTTP methods in CSV format- Returns:
- the excluded filter list of HTTP methods in CSV format
- See Also:
 
- 
getDeflaterPoolGet the DeflaterPool being used. The default value of this is null before starting, but after starting if it is null it will be set to the default DeflaterPool which is stored as a bean on the server.- Returns:
- the DeflaterPool being used.
 
- 
getInflaterPoolGet the InflaterPool being used. The default value of this is null before starting, but after starting if it is null it will be set to the default InflaterPool which is stored as a bean on the server.- Returns:
- the DeflaterPool being used.
 
- 
setDeflaterPoolSet the DeflaterPool to be used. This should be called before starting. If this value is null when starting the default pool will be used from the server.- Parameters:
- deflaterPool- the DeflaterPool to use.
 
- 
setInflaterPoolSet the InflaterPool to be used. This should be called before starting. If this value is null when starting the default pool will be used from the server.- Parameters:
- inflaterPool- the InflaterPool to use.
 
- 
toString- Overrides:
- toStringin class- AbstractLifeCycle
 
 
-