org.springframework.web.util.pattern

Class PathPatternParser

  • java.lang.Object
    • org.springframework.web.util.pattern.PathPatternParser


  • public class PathPatternParser
    extends java.lang.Object
    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
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method and Description
      boolean isCaseSensitive()
      Whether case-sensitive pattern matching is enabled.
      boolean isMatchOptionalTrailingSeparator()
      Whether optional trailing slashing match is enabled.
      PathPattern parse(java.lang.String pathPattern)
      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)
      Whether a PathPattern produced by this parser should should automatically match request paths with a trailing slash.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • PathPatternParser

        public PathPatternParser()
    • Method Detail

      • setMatchOptionalTrailingSeparator

        public void setMatchOptionalTrailingSeparator(boolean matchOptionalTrailingSeparator)
        Whether a PathPattern produced by this parser should should automatically match request paths with a trailing slash.

        If set to true a PathPattern without a trailing slash will also match request paths with a trailing slash. If set to false a PathPattern will only match request paths with a trailing slash.

        The default is true.

      • isMatchOptionalTrailingSeparator

        public boolean isMatchOptionalTrailingSeparator()
        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.
      • parse

        public PathPattern parse(java.lang.String pathPattern)
                          throws PatternParseException
        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 the InternalPathPatternParser because that class is not thread-safe.
        Parameters:
        pathPattern - the input path pattern, e.g. /foo/{bar}
        Returns:
        a PathPattern for quickly matching paths against request paths
        Throws:
        PatternParseException - in case of parse errors