2
我想寫控制器過濾器,並獲取客戶端httprequest
並做出一些代碼,取決於URL。過濾器,獲取控制器之前的url(Spring MVC)
請求可以是:HttpRequest
,MultipartHttpServletRequest
,可以是POST
或GET
。如果此請求的URL以api
開頭,我需要向另一個REST API發出請求。
我想寫控制器過濾器,並獲取客戶端httprequest
並做出一些代碼,取決於URL。過濾器,獲取控制器之前的url(Spring MVC)
請求可以是:HttpRequest
,MultipartHttpServletRequest
,可以是POST
或GET
。如果此請求的URL以api
開頭,我需要向另一個REST API發出請求。
你應該使用Spring org.springframework.web.servlet.HandlerInterceptor
(希望this answer解釋如何使用它)
(或者你可以使用一個簡單的Servlet過濾器 - 又見這個問題Spring HandlerInterceptor vs Servlet Filters它討論它們之間的區別)
當然可以。只需實現「[Filter]」(http://stackoverflow.com/questions/2725102/how-to-use-a-servlet-filter-in-java-to-change-an-incoming-servlet-request-url)「從servlet API中映射到您的Spring調度程序servlet。或者你可能會繼續使用Spring控制器(避免使用過濾器)並編寫一個休息客戶端來連接到外部系統。 Id更喜歡後者。 – Stefan
我試圖使用控制器。但我有斜線的路徑,它不適合它。例如,用戶發送請求「http:// myserver/api/email/1」。我需要在控制器中寫入「value =」api/{path}「」。路徑應該等於「email/1」,但路徑不能包含斜槓。我不知道在httprequest中可以發送多少個斜槓 – annoirq