Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring-将每个url映射的参数发送到同一筛选器_Java_Spring_Servlet Filters - Fatal编程技术网

Java Spring-将每个url映射的参数发送到同一筛选器

Java Spring-将每个url映射的参数发送到同一筛选器,java,spring,servlet-filters,Java,Spring,Servlet Filters,我在Tomcat上部署了Spring应用程序 我在添加一个 指向特定URL FilterRegistration myFilter = servletContext.addFilter("myFilter ", MyFilter.class); myFilter.addMappingForUrlPatterns(null, false, "/myservlet/myendpoint/*"); myFilter.addMappingForUrlPatterns(null, false, "/mys

我在Tomcat上部署了Spring应用程序

我在添加一个

指向特定URL

FilterRegistration myFilter = servletContext.addFilter("myFilter ", MyFilter.class);
myFilter.addMappingForUrlPatterns(null, false, "/myservlet/myendpoint/*");
myFilter.addMappingForUrlPatterns(null, false, "/myservlet/myendpoint2/*");
myFilter.addMappingForUrlPatterns(null, false, "/myservlet/myendpoint3/*");
我希望使用同一个类对不同的url映射有不同的行为,所以我需要发送参数,例如字符串,它将在Filter类中可用,并将执行不同的检查,这可以在当前配置中完成吗

我尝试使用add,但id在筛选器中为
null

myFilter.setInitParameter("id", "1");

我可以想出两个选择:

  • 选项1: 基本上,您需要覆盖public void initFilterBean()并设置bean属性

  • 选项2:MyFilter组件是一个Spring完全管理bean,因此设置id属性的另一种方法是将其用作 属性(在文件中为my-filter.id指定属性值 应用程序属性文件,要使其工作,您需要获取 Spring中对myFilter实例的引用 ApplicationContext容器):


  • 1-我得到
    无法覆盖GenericFilterBean中的final方法
    2-我想为不同的路径设置不同的值我不知道Spring在其实现中将final作为init方法,我已经编辑了我的答案。你能展示更新的1的示例吗?新方法中没有可用的filterconfig。请使用此方法。getFilterConfig()
    myFilter.setInitParameter("id", "1");
    
    @Value("my-filter.id") 
    private String id;