过滤,获取控制器前的url(Spring MVC)
Posted
技术标签:
【中文标题】过滤,获取控制器前的url(Spring MVC)【英文标题】:Filter, get url before controller (Spring MVC) 【发布时间】:2016-01-18 16:22:44 【问题描述】:我想编写过滤器,并在控制器之前获取客户端httprequest
并编写一些代码,取决于 URL。
请求可以是:HttpRequest
、MultipartHttpServletRequest
,可以是POST
或GET
。如果此请求的 URL 以 api
开头,我需要向另一个 REST API 发出请求。
【问题讨论】:
当然可以。只需从 servlet api 实现“Filter”并将其映射到您的 Spring 调度程序 servlet。或者您可能会继续使用 Spring 控制器(避免使用过滤器)并编写一个 rest 客户端来连接到外部系统。我更喜欢后者。 我尝试使用控制器。但我有斜线的路径,它不适合它。例如用户发送请求“myserver/api/email/1”。我需要在控制器“value =”api/path“”中写入。路径应该等于“email/1”,但路径不能包含斜杠。我不知道在httprequest中可以发送多少个斜杠 【参考方案1】:你应该使用 Spring org.springframework.web.servlet.HandlerInterceptor
(希望this answer解释如何使用它)
(或者你可以使用一个简单的 Servlet-Filter - 另见这个问题 Spring HandlerInterceptor vs Servlet Filters 它讨论了它们之间的区别)
【讨论】:
以上是关于过滤,获取控制器前的url(Spring MVC)的主要内容,如果未能解决你的问题,请参考以下文章
Spring Boot Mock MVC 将过滤器应用于错误的 url 模式