Class PathPatternParser
PathPattern instances that can
then be matched to requests.
The PathPatternParser and PathPattern are specifically
designed for use with HTTP URL paths in web applications where a large number
of URI path patterns, continuously matched against incoming requests,
motivates the need for efficient matching.
For details of the path pattern syntax see PathPattern.
- Since:
- 5.0
- Author:
- Andy Clement
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final PathPatternParserShared, read-only instance ofPathPatternParser. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionGet theconfiguredpattern parsing options.initFullPathPattern(String pattern) Prepare the given pattern for use in matching to full URL paths.booleanWhether case-sensitive pattern matching is enabled.booleanDeprecated.Process the path pattern content, a character at a time, breaking it into path elements around separator boundaries and verifying the structure at each stage.voidsetCaseSensitive(boolean caseSensitive) Configure whether path pattern matching should be case-sensitive.voidsetMatchOptionalTrailingSeparator(boolean matchOptionalTrailingSeparator) Deprecated.transparent support for trailing slashes is deprecated as of 6.0 in favor of configuring explicit redirects through a proxy, Servlet/web filter, or a controller.voidsetPathOptions(PathContainer.Options pathOptions) Set options for parsing patterns.
-
Field Details
-
defaultInstance
Shared, read-only instance ofPathPatternParser.Uses default settings:
matchOptionalTrailingSeparator = falsecaseSensitive = truepathOptions = PathContainer.Options.HTTP_PATH
-
-
Constructor Details
-
PathPatternParser
public PathPatternParser()
-
-
Method Details
-
setMatchOptionalTrailingSeparator
@Deprecated(since="6.0") public void setMatchOptionalTrailingSeparator(boolean matchOptionalTrailingSeparator) Deprecated.transparent support for trailing slashes is deprecated as of 6.0 in favor of configuring explicit redirects through a proxy, Servlet/web filter, or a controller.Configure whether aPathPatternproduced by this parser should automatically match request paths with a trailing slash.If set to
trueaPathPatternwithout a trailing slash will also match request paths with a trailing slash. If set tofalseaPathPatternwill only match request paths with a trailing slash.The default was changed in 6.0 from
truetofalsein order to support the deprecation of the property. -
isMatchOptionalTrailingSeparator
Deprecated.as of 6.0 together withsetMatchOptionalTrailingSeparator(boolean).Whether optional trailing slashing match is enabled. -
setCaseSensitive
public void setCaseSensitive(boolean caseSensitive) Configure whether path pattern matching should be case-sensitive.The default is
true. -
isCaseSensitive
public boolean isCaseSensitive()Whether case-sensitive pattern matching is enabled. -
setPathOptions
Set options for parsing patterns. These should be the same as the options used to parse input paths.PathContainer.Options.HTTP_PATHis used by default.- Since:
- 5.2
-
getPathOptions
Get theconfiguredpattern parsing options.- Since:
- 5.2
-
initFullPathPattern
Prepare the given pattern for use in matching to full URL paths.By default, prepend a leading slash if needed for non-empty patterns.
- Parameters:
pattern- the pattern to initialize- Returns:
- the updated pattern
- Since:
- 5.2.25
-
parse
Process the path pattern content, a character at a time, breaking it into path elements around separator boundaries and verifying the structure at each stage. Produces a PathPattern object that can be used for fast matching against paths. Each invocation of this method delegates to a new instance of theInternalPathPatternParserbecause that class is not thread-safe.- Parameters:
pathPattern- the input path pattern, e.g. /project/{name}- Returns:
- a PathPattern for quickly matching paths against request paths
- Throws:
PatternParseException- in case of parse errors
-
setMatchOptionalTrailingSeparator(boolean).