我有Spring过滤器,该过滤器在String
中用不同的WebApplicationInitializer
参数定义:
FilterRegistration myFilter = servletContext.addFilter("myFilter ", MyFilter.class);
myFilter.addMappingForUrlPatterns(null, false, "/myservlet/myendpoint/*");
myFilter.setInitParameter("id", "1");
FilterRegistration myFilter2 = servletContext.addFilter("myFilter ", MyFilter.class);
myFilter2.addMappingForUrlPatterns(null, false, "/myservlet/myendpoint2/*");
myFilter2.setInitParameter("id", "2");
FilterRegistration myFilter3 = servletContext.addFilter("myFilter ", MyFilter.class);
myFilter3.addMappingForUrlPatterns(null, false, "/myservlet/myendpoint3/*");
myFilter3.setInitParameter("id", "3");
我需要向每个网址模式发送不同的Enum(或Object)而不是String,可以这样做吗?
是否有更好的方法将条件参数发送到Spring Filter?
我的过滤器:
@Component
public class MyFilter extends OncePerRequestFilter {
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
String id = this.getFilterConfig().getInitParameter("id");//...
}
}