Spring过滤器-每个URL映射发送不同的枚举/对象

时间:2019-05-28 06:26:40

标签: java spring spring-filter

我有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");//...
   }
}

0 个答案:

没有答案