Class ServerPagesFilter
- java.lang.Object
-
- ru.vyarus.guicey.gsp.app.filter.ServerPagesFilter
-
- All Implemented Interfaces:
javax.servlet.Filter
public class ServerPagesFilter extends java.lang.Object implements javax.servlet.FilterThe main filter, implementing server pages support. Filter is applied above assets servlet. For each request, file call detected using pre-defined regexp (by default, looking if request end with en extensions - most likely it's a file). Detected file extension checked if it's a template file. If not template then redirected to assets servlet (normal dropwizard assets processing). In all other cases, request is redirected into rest (with "{app name}" prefix) to be handled by rest resource (dropwizard views).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
TemplateExceptionListenerwhich 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 filterTemplateErrorResponseFilter(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.
- Since:
- 22.10.2018
-
-
Constructor Summary
Constructors Constructor 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)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voiddestroy()voiddoFilter(javax.servlet.ServletRequest servletRequest, javax.servlet.ServletResponse servletResponse, javax.servlet.FilterChain chain)voidinit(javax.servlet.FilterConfig filterConfig)
-
-
-
Constructor Detail
-
ServerPagesFilter
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)
-
-
Method Detail
-
init
public void init(javax.servlet.FilterConfig filterConfig) throws javax.servlet.ServletException- Specified by:
initin interfacejavax.servlet.Filter- Throws:
javax.servlet.ServletException
-
doFilter
public void doFilter(javax.servlet.ServletRequest servletRequest, javax.servlet.ServletResponse servletResponse, javax.servlet.FilterChain chain) throws java.io.IOException, javax.servlet.ServletException- Specified by:
doFilterin interfacejavax.servlet.Filter- Throws:
java.io.IOExceptionjavax.servlet.ServletException
-
destroy
public void destroy()
- Specified by:
destroyin interfacejavax.servlet.Filter
-
-