public class ServerPagesFilter
extends java.lang.Object
implements javax.servlet.Filter
Such logic is required in order to merge assets and views worlds so overall it could be used as good old JSP.
Filter detect direct http errors from assets or views and if custom error page registered for current error code - redirect to error page (which could also be a template). If no special page registered - server error response as is.
Exceptions inside rest resources are tracked by request event listener
TemplateExceptionListener which allows to use more informative
exception objects in error page (note that it means exception mappers are executed, but their response is ignored).
Direct error responses are tracked with response filter
TemplateErrorResponseFilter (applied only for template resources).
When SPA support is enabled, intercepted 404 error is checked if spa routing detected and do index redirect instead of showing error page.
| Constructor and Description |
|---|
ServerPagesFilter(java.lang.String uriPath,
java.lang.String filePattern,
java.lang.String index,
TemplateRedirect redirect,
SpaSupport spa,
java.lang.Iterable<io.dropwizard.views.ViewRenderer> renderers) |
| Modifier and Type | Method and Description |
|---|---|
void |
destroy() |
void |
doFilter(javax.servlet.ServletRequest servletRequest,
javax.servlet.ServletResponse servletResponse,
javax.servlet.FilterChain chain) |
void |
init(javax.servlet.FilterConfig filterConfig) |
public ServerPagesFilter(java.lang.String uriPath,
java.lang.String filePattern,
java.lang.String index,
TemplateRedirect redirect,
SpaSupport spa,
java.lang.Iterable<io.dropwizard.views.ViewRenderer> renderers)
public void init(javax.servlet.FilterConfig filterConfig)
throws javax.servlet.ServletException
init in interface javax.servlet.Filterjavax.servlet.ServletExceptionpublic void doFilter(javax.servlet.ServletRequest servletRequest,
javax.servlet.ServletResponse servletResponse,
javax.servlet.FilterChain chain)
throws java.io.IOException,
javax.servlet.ServletException
doFilter in interface javax.servlet.Filterjava.io.IOExceptionjavax.servlet.ServletExceptionpublic void destroy()
destroy in interface javax.servlet.Filter