# JAX-RS `@Path` URI 匹配 – 静态和正则 URI

> 原文： [https://howtodoinjava.com/resteasy/jaxrs-path-uri-matching/](https://howtodoinjava.com/resteasy/jaxrs-path-uri-matching/)

学习使用 JAX-RS `@Path`注解，并在其中为 **URI 匹配**的内容写资源路径。 路径可以以简单形式（静态或路径参数）或复杂形式（基于正则表达式）编写。

## 1\. JAX-RS `@Path` URI 匹配类型

JAX-RS `@Path`注解用于指定其他应用或客户端可在其上访问资源的 URI。 [**`@javax.ws.rs.Path`**](http://jackson.codehaus.org/javadoc/jax-rs/1.0/javax/ws/rs/Path.html "path annotation")注解必须存在于类和/或资源方法上。 如果它同时存在于类和方法上，则资源方法的相对路径是类和方法的连接。

`@Path`中的 URI 以两种方式定义。

1.  简单的 URI 匹配
2.  基于正则表达式的 URI 匹配

## 2\. JAX-RS `@Path` – 简单的 URI 匹配

以最简单的形式，URI 由**静态路径**以及一些必要的**参数**组成。

*   `@Path ("users")` – 与`application/user-management/users`匹配。
*   `@Path ("users/{id}")` – 与`application/user-management/users/12`匹配。

## 3\. JAX-RS `@Path` – 基于正则表达式的 URI 匹配

以复杂的形式，我们可以使用基于参数匹配的[正则表达式](https://howtodoinjava.com/java-regular-expression-tutorials/)。

*   `@Path("/users/{id: [0-9]*}")`（仅支持数字）–与`http://localhost:8080/RESTfulDemoApplication/user-management/users/123456`匹配。
*   `@Path("/users/{id: [a-zA-Z][a-zA-Z_0-9]}")`（第一个字符字母，然后是字母数字）–与`http:// localhost:8080/RESTfulDemoApplication/user-management/users/abc123`匹配。

[下载源码](https://docs.google.com/file/d/0B7yo2HclmjI4ZmpTcC0wZTJZRTQ/edit?usp=sharing)

学习愉快！