[英]Forward request to a non @RequestMapping
是否可以使用forward:/
syntax將請求重定向到非@RequestMapping
注釋的方法。
我想要實現的是一種將請求內部重定向到無法直接從瀏覽器訪問的路徑的方法。
例如,如果用戶請求/image.jpg
,我想將其重定向到一個能夠回答圖像的控制器,映射到/img/image.jpg
。 關鍵是無法通過瀏覽器直接訪問/img/image.jpg
。
可能嗎? 我怎么能實現這個必要性?
我想如果你想使用forward:/
來調用資源,你需要創建請求映射路徑。 但是你可以通過以下方式實現:
創建最終用戶直接瀏覽器調用無法訪問的請求映射路徑。 在轉發路徑請求之前,先添加一些額外的請求參數,然后按請求映射器進行檢查。
示例:
@RequestMapping(value = "/direct/browser/call")
public String connections(WebRequest request) throws SQLException {
//validate request
request.setAttribute("formButton", isPost, WebRequest.SCOPE_REQUEST);
return "redirect:/some/value";
}
@RequestMapping(value = "/some/value")
public String connections(WebRequest request) throws SQLException {
//validate request
if(request.getParameter("formButton")!=null) { return "/homepage"; }
// else : do processing
}
您還可以在請求映射中限制瀏覽器HTTP GET
調用。 例:
@RequestMapping(value = "/some/value", method = RequestMethod.POST)
HTTP方法:HEAD,PUT,DELETE,TRACE和OPTIONS在您的情況下也很有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.