【问题标题】:Filter, get url before controller (Spring MVC)过滤,获取控制器前的url(Spring MVC)
【发布时间】:2023-04-02 09:51:01
【问题描述】:

我想编写过滤器,并在控制器之前获取客户端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中可以发送多少个斜杠

标签: java spring api rest dispatcher


【解决方案1】:

你应该使用 Spring org.springframework.web.servlet.HandlerInterceptor

(希望this answer解释如何使用它)

(或者你可以使用一个简单的 Servlet-Filter - 另见这个问题 Spring HandlerInterceptor vs Servlet Filters 它讨论了它们之间的区别)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-16
    • 2010-09-14
    • 2013-05-08
    • 1970-01-01
    • 1970-01-01
    • 2019-08-08
    • 2016-11-12
    相关资源
    最近更新 更多