【发布时间】:2019-04-11 01:50:55
【问题描述】:
我正在尝试在 Java 过滤器中执行一些逻辑,具体取决于请求 URL 是否与特定 PATH 匹配。我们想使用 Java 的 PathMatcher 之类的东西,而不是 Regex。另外要求,明确声明不使用 Spring,因此 Spring 的 PathMatcher 不是一个选项。
例如给出以下 URL:
http://localhost:8080/base_path/customer/{PARAM_VAL1}/order/{PARAM_VAL2}
我正在寻找使 IF 产生 true 的方法:
PathMatcher pm = new SomeURLPathMatcherImp("/base_path/customer/*/order/*");
myURI = "/base_path/customer/customer001/order/98536"
if ( pm. matches(myURI) ){
myFunction();
}
注意:我使用 PathMatcher 来描述问题。我想知道除了 Spring 之外是否有任何 API 库来执行类似于 Java 的 FileSystem 类实现的 URL PATH 匹配
【问题讨论】:
-
您的问题是什么?如何获得
PathMatcher?因为它是一个接口,所以你不能使用new,但是如果你阅读文档,即PathMatcher的javadoc,你会在“另见”中看到对FileSystem.getPathMatcher(java.lang.String)的引用“ 部分。如果您阅读其中的 javadoc,您将了解它是如何工作的。 -
@Andreas,感谢您的评论。每个 stackoverflow 用户都应该在发布问题之前用尽所有可能性。一种是阅读文档。回到我的问题,为了实现我所需要的,我不希望在 Java Web 过滤器中使用 FileSystem 类来测试 URL。还是这样做是正确的?