作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
http://localhost:8181/RESTfulExample/entityid/https://www.youtube.com
@GET
@Path("/entityid/{entityid : [a-zA-Z][a-zA-Z_0-9]}")
public Response getUserByentityid(@PathParam("entityid") String entityid) {
return Response.status(200)
.entity("getUserByentityid is called, username : " + entityid)
.build();
}
如何修改正则表达式来接受其中的一个url?或者任何其他替代解决方案来获取作为 URL 的 entityid?
最佳答案
您不应将 URL 作为路径参数传递。实体 ID 要么是常规标识符(整数、GUID、...),在这种情况下它可以像您拥有的那样位于路径中,或者它是一个 URL,在这种情况下 URL将是 https://example.com/myapp/entityid/123
并且您返回实体 ID 部分 的实体 ID URL 只是一个常规标识符。
现在,技术上,您可以通过使用 percent encoding 对所有特殊字符进行编码来将 URL 作为路径参数传递,但是我不推荐它。
假设您的应用位于https://example.net/otherapp/
,那么组合的 url 将是:
https://example.net/otherapp/entityid/https%3A%2F%2Fexample.com%2Fmyapp%2Fentityid%2F123
正则表达式将匹配未编码的值,因此这可能有效:
{entityid : https?://.*}
注意:编码路径段必须对所有值进行,而不仅仅是对URL值。整数是安全的,但几乎所有其他值都必须进行编码。
关于java - 如何将 url 作为路径参数传递?在 JAX-RS @Path 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32545943/
我是一名优秀的程序员,十分优秀!