public class MetaFilter
extends java.lang.Object
implements javax.servlet.Filter
Callers can create and configure a new processing pipeline by using one of
the serve(String)
or serveRegex(String)
methods to allocate
a binder for a particular URL pattern.
Registered filters and servlets are initialized lazily, usually during the first request. Once initialized the bindings in this servlet cannot be modified without destroying the servlet and thereby destroying all registered filters and servlets.
Modifier and Type | Field and Description |
---|---|
private java.util.List<ServletBinderImpl> |
bindings |
private UrlPipeline[] |
pipelines |
(package private) static java.lang.String |
REGEX_GROUPS |
private javax.servlet.ServletContext |
servletContext |
Constructor and Description |
---|
MetaFilter()
Empty filter with no bindings.
|
Modifier and Type | Method and Description |
---|---|
private UrlPipeline[] |
createPipelines() |
void |
destroy() |
void |
doFilter(javax.servlet.ServletRequest request,
javax.servlet.ServletResponse response,
javax.servlet.FilterChain chain) |
private UrlPipeline |
find(javax.servlet.http.HttpServletRequest req) |
private UrlPipeline[] |
getPipelines() |
void |
init(javax.servlet.FilterConfig filterConfig) |
private static java.util.Set<java.lang.Object> |
newIdentitySet() |
protected ServletBinder |
register(ServletBinder b)
Configure a newly created binder.
|
private ServletBinder |
register(ServletBinderImpl b) |
ServletBinder |
serve(java.lang.String path)
Construct a binding for a specific path.
|
ServletBinder |
serveRegex(java.util.regex.Pattern pattern)
Construct a binding for a regular expression.
|
ServletBinder |
serveRegex(java.lang.String expression)
Construct a binding for a regular expression.
|
static final java.lang.String REGEX_GROUPS
private javax.servlet.ServletContext servletContext
private final java.util.List<ServletBinderImpl> bindings
private volatile UrlPipeline[] pipelines
public ServletBinder serve(java.lang.String path)
path
- pattern to match.public ServletBinder serveRegex(java.lang.String expression)
expression
- the regular expression to pattern match the URL against.public ServletBinder serveRegex(java.util.regex.Pattern pattern)
pattern
- the regular expression to pattern match the URL against.public void init(javax.servlet.FilterConfig filterConfig) throws javax.servlet.ServletException
init
in interface javax.servlet.Filter
javax.servlet.ServletException
public void destroy()
destroy
in interface javax.servlet.Filter
private static java.util.Set<java.lang.Object> newIdentitySet()
public void doFilter(javax.servlet.ServletRequest request, javax.servlet.ServletResponse response, javax.servlet.FilterChain chain) throws java.io.IOException, javax.servlet.ServletException
doFilter
in interface javax.servlet.Filter
java.io.IOException
javax.servlet.ServletException
private UrlPipeline find(javax.servlet.http.HttpServletRequest req) throws javax.servlet.ServletException
javax.servlet.ServletException
private ServletBinder register(ServletBinderImpl b)
protected ServletBinder register(ServletBinder b)
b
- the newly created binder.private UrlPipeline[] getPipelines() throws javax.servlet.ServletException
javax.servlet.ServletException
private UrlPipeline[] createPipelines() throws javax.servlet.ServletException
javax.servlet.ServletException