Springmvc RequestMapping請求實現方法解析
阿新 • • 發佈:2020-09-24
請求url
標記請求URl很簡單,只需要在相應的方法上添加註解即可:
@Controller public class HelloController { @RequestMapping("/hello") public ModelAndView hello() { return new ModelAndView("hello"); } }
這裡 @RequestMapping(“/hello”) 表示當請求地址為 /hello 的時候,這個方法會被觸發。其中,地址可以是多個,就是可以多個地址對映到同一個方法。
@Controller public class HelloController { @RequestMapping({"/hello","/hello2"}) public ModelAndView hello() { return new ModelAndView("hello"); } }
這個配置,表示 /hello 和 /hello2 都可以訪問到該方法
請求窄化
同一個專案中,會存在多個介面,例如訂單相關的介面都是 /order/xxx 格式的,使用者相關的介面都是 /user/xxx 格式的。為了方便處理,這裡的字首(就是 /order、/user)可以統一在 Controller 上面處理。
@Controller @RequestMapping("/user") public class HelloController { @RequestMapping({"/hello","/hello2"}) public ModelAndView hello() { return new ModelAndView("hello"); } }
當類上加了 @RequestMapping 註解之後,此時,要想訪問到 hello ,地址就應該是 /user/hello 或者 /user/hello2
請求方法限定
預設情況下,使用 @RequestMapping 註解定義好的方法,可以被 GET 請求訪問到,也可以被 POST 請求訪問到,但是 DELETE 請求以及 PUT 請求不可以訪問到。
當然,我們也可以指定具體的訪問方法:
@Controller @RequestMapping("/user") public class HelloController { @RequestMapping(value = "/hello",method = RequestMethod.GET) public ModelAndView hello() { return new ModelAndView("hello"); } }
通過 @RequestMapping 註解,指定了該介面只能被 GET 請求訪問到,此時,該介面就不可以被 POST 以及請求請求訪問到了。強行訪問會報如下錯誤:
當然,限定的方法也可以有多個:
@Controller @RequestMapping("/user") public class HelloController { @RequestMapping(value = "/hello",method = {RequestMethod.GET,RequestMethod.POST,RequestMethod.PUT,RequestMethod.DELETE}) public ModelAndView hello() { return new ModelAndView("hello"); } }
此時,這個介面就可以被 GET、POST、PUT、以及 DELETE 訪問到了。但是,由於 JSP 支支援 GET、POST 以及 HEAD ,所以這個測試,不能使用 JSP 做頁面模板。可以講檢視換成其他的,或者返回 JSON,這裡就不影響了。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。