Package org.springframework.web.filter
Class UrlHandlerFilter
java.lang.Object
org.springframework.web.filter.GenericFilterBean
org.springframework.web.filter.OncePerRequestFilter
org.springframework.web.filter.UrlHandlerFilter
- All Implemented Interfaces:
Filter,org.springframework.beans.factory.Aware,org.springframework.beans.factory.BeanNameAware,org.springframework.beans.factory.DisposableBean,org.springframework.beans.factory.InitializingBean,org.springframework.context.EnvironmentAware,org.springframework.core.env.EnvironmentCapable,ServletContextAware
Filter that modifies the URL, and then either
redirects or wraps the request to effect the change.
To create an instance, you can use the following:
UrlHandlerFilter filter = UrlHandlerFilter
.trailingSlashHandler("/path1/**").redirect(HttpStatus.PERMANENT_REDIRECT)
.trailingSlashHandler("/path2/**").wrapRequest()
.build();
This Filter should be ordered after ForwardedHeaderFilter,
before ServletRequestPathFilter, and before security filters.
- Since:
- 6.2
- Author:
- Rossen Stoyanchev
-
Nested Class Summary
Nested Classes -
Field Summary
Fields inherited from class org.springframework.web.filter.OncePerRequestFilter
ALREADY_FILTERED_SUFFIX -
Method Summary
Modifier and TypeMethodDescriptionprotected voiddoFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) Same contract as fordoFilter, but guaranteed to be just invoked once per request within a single request thread.trailingSlashHandler(String... pathPatterns) Create a builder by adding a handler for URL's with a trailing slash.Methods inherited from class org.springframework.web.filter.OncePerRequestFilter
doFilter, doFilterNestedErrorDispatch, getAlreadyFilteredAttributeName, isAsyncDispatch, isAsyncStarted, shouldNotFilter, shouldNotFilterAsyncDispatch, shouldNotFilterErrorDispatchMethods inherited from class org.springframework.web.filter.GenericFilterBean
addRequiredProperty, afterPropertiesSet, createEnvironment, destroy, getEnvironment, getFilterConfig, getFilterName, getServletContext, init, initBeanWrapper, initFilterBean, setBeanName, setEnvironment, setServletContext
-
Method Details
-
doFilterInternal
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws ServletException, IOException Description copied from class:OncePerRequestFilterSame contract as fordoFilter, but guaranteed to be just invoked once per request within a single request thread. SeeOncePerRequestFilter.shouldNotFilterAsyncDispatch()for details.Provides HttpServletRequest and HttpServletResponse arguments instead of the default ServletRequest and ServletResponse ones.
- Specified by:
doFilterInternalin classOncePerRequestFilter- Throws:
ServletExceptionIOException
-
trailingSlashHandler
public static UrlHandlerFilter.Builder.TrailingSlashSpec trailingSlashHandler(String... pathPatterns) Create a builder by adding a handler for URL's with a trailing slash.- Parameters:
pathPatterns- path patterns to map the handler to, for example,"/path/*","/path/**","/path/foo/".- Returns:
- a spec to configure the trailing slash handler with
- See Also:
-