Selects requests by matching the URI against a regular expression.
The pattern is bound and matched against the path info of the servlet
request, as this class assumes it is invoked by
MetaServlet.
If there are capture groups in the regular expression, the matched ranges of
the capture groups are stored as an array of modified HttpServetRequests,
into the request attribute
MetaFilter#REGEX_GROUPS. Using a capture
group that may not capture, e.g.
"(/foo)?", will cause an error at
request handling time.
Each servlet request has been altered to have its
getServletPath()method return the original path info up to the beginning of the corresponding
capture group, and its
getPathInfo() method return the matched text.
A
RegexGroupFilter can be applied in the pipeline to switch the
current HttpServletRequest to reference a different capture group before
running additional filters, or the final servlet.
Note that for
getPathInfo() to start with a leading "/" as described
in the servlet documentation, capture groups must actually capture the
leading "/".
This class dispatches the remainder of the pipeline using the first capture
group as the current request, making
RegexGroupFilter required only
to access capture groups beyond the first.