从 servlet 过滤器中检索 REST URL 模式
Posted
技术标签:
【中文标题】从 servlet 过滤器中检索 REST URL 模式【英文标题】:Retrieving the REST URL pattern from a servlet filter 【发布时间】:2014-06-13 18:16:13 【问题描述】:我创建了一个带有以下 url 模式的休息服务
/author/authorId/book/bookId
在运行时我可以通过以下路径访问服务
/author/1234/book/1001
现在我定义了一个ServletFilter
。每个访问url/author/1234/book/1001
的请求也都在过滤。在这个过滤器中,我如何找到传入请求的 url 模式,即/author/authorId/book/bookId
。
问候 -阿尔宾
【问题讨论】:
可能重复***.com/questions/4389596/… HttpServletRequest.getRequestURI() @vikeng21 与其他问题的不同之处在于我正在寻找请求 url 模式而不是请求 url。 【参考方案1】:首先找到请求的真实路径。那就是requested_uri - context_path
String uri = req.getRequestURI();
String context = req.getContextPath();
String realPath = uri.substring(context.length());
然后使用正则表达式提取 authorId 和 bookId
【讨论】:
它没有为我提供 url 模式。它给了我请求 uri 而不是 url 模式。我正在编写的过滤器对于服务列表是通用的。所以我将无法使用正则表达式来提取 authorId 和 bookId。以上是关于从 servlet 过滤器中检索 REST URL 模式的主要内容,如果未能解决你的问题,请参考以下文章