Class PathPatternParser
java.lang.Object
org.springframework.web.util.pattern.PathPatternParser
Parser for URI path patterns producing
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
Modifier and TypeFieldDescriptionstatic final PathPatternParser
Shared, read-only instance ofPathPatternParser
. -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionReturn theconfigured
pattern parsing options.initFullPathPattern
(String pattern) Prepare the given pattern for use in matching to full URL paths.boolean
Whether case-sensitive pattern matching is enabled.boolean
Deprecated.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.void
setCaseSensitive
(boolean caseSensitive) Whether path pattern matching should be case-sensitive.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.void
setPathOptions
(PathContainer.Options pathOptions) Set options for parsing patterns.
-
Field Details
-
defaultInstance
Shared, read-only instance ofPathPatternParser
. Uses default settings:matchOptionalTrailingSeparator=true
caseSensitivetrue
pathOptions=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.Whether aPathPattern
produced by this parser should automatically match request paths with a trailing slash.If set to
true
aPathPattern
without a trailing slash will also match request paths with a trailing slash. If set tofalse
aPathPattern
will only match request paths with a trailing slash.The default was changed in 6.0 from
true
tofalse
in 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) 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_PATH
is used by default.- Since:
- 5.2
-
getPathOptions
Return theconfigured
pattern 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 theInternalPathPatternParser
because 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)
.