如何知道一个URL是否匹配特定的PATH

时间:2019-04-11 01:50:56

标签: java url path

我正在尝试在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匹配

1 个答案:

答案 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