我正在尝试在Java过滤器中执行一些逻辑,具体取决于请求URL是否匹配特定的PATH。我们想要使用Java的PathMatcher之类的东西,而不要使用Regex。附加要求是,明确声明不使用Spring,因此无法选择spring的PathMatcher。
例如,给出以下URL:
http://localhost:8080/base_path/customer/ {PARAM_VAL1} /订单/ {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匹配
答案 0 :(得分:0)
PathMatcher pm = FileSystems.getDefault().getPathMatcher("glob:/base_path/customer/*/order/*");
System.out.println(pm.matches(Paths.get("/base_path/customer/customer001/order/98536"))); // true
System.out.println(pm.matches(Paths.get("/base_path/customer/customer001/order"))); // false