Springmvc RequestMapping請求實(shí)現(xiàn)方法解析
請求url
標(biāo)記請求URl很簡單,只需要在相應(yīng)的方法上添加注解即可:
@Controller public class HelloController { @RequestMapping("/hello") public ModelAndView hello() { return new ModelAndView("hello"); } }
這里 @RequestMapping(“/hello”) 表示當(dāng)請求地址為 /hello 的時(shí)候,這個(gè)方法會(huì)被觸發(fā)。其中,地址可以是多個(gè),就是可以多個(gè)地址映射到同一個(gè)方法。
@Controller public class HelloController { @RequestMapping({"/hello","/hello2"}) public ModelAndView hello() { return new ModelAndView("hello"); } }
這個(gè)配置,表示 /hello 和 /hello2 都可以訪問到該方法
請求窄化
同一個(gè)項(xiàng)目中,會(huì)存在多個(gè)接口,例如訂單相關(guān)的接口都是 /order/xxx 格式的,用戶相關(guān)的接口都是 /user/xxx 格式的。為了方便處理,這里的前綴(就是 /order、/user)可以統(tǒng)一在 Controller 上面處理。
@Controller @RequestMapping("/user") public class HelloController { @RequestMapping({"/hello","/hello2"}) public ModelAndView hello() { return new ModelAndView("hello"); } }
當(dāng)類上加了 @RequestMapping 注解之后,此時(shí),要想訪問到 hello ,地址就應(yīng)該是 /user/hello 或者 /user/hello2
請求方法限定
默認(rèn)情況下,使用 @RequestMapping 注解定義好的方法,可以被 GET 請求訪問到,也可以被 POST 請求訪問到,但是 DELETE 請求以及 PUT 請求不可以訪問到。
當(dāng)然,我們也可以指定具體的訪問方法:
@Controller @RequestMapping("/user") public class HelloController { @RequestMapping(value = "/hello",method = RequestMethod.GET) public ModelAndView hello() { return new ModelAndView("hello"); } }
通過 @RequestMapping 注解,指定了該接口只能被 GET 請求訪問到,此時(shí),該接口就不可以被 POST 以及請求請求訪問到了。強(qiáng)行訪問會(huì)報(bào)如下錯(cuò)誤:
當(dāng)然,限定的方法也可以有多個(gè):
@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"); } }
此時(shí),這個(gè)接口就可以被 GET、POST、PUT、以及 DELETE 訪問到了。但是,由于 JSP 支支持 GET、POST 以及 HEAD ,所以這個(gè)測試,不能使用 JSP 做頁面模板??梢灾v視圖換成其他的,或者返回 JSON,這里就不影響了。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
springboot使用@KafkaListener監(jiān)聽多個(gè)kafka配置實(shí)現(xiàn)
當(dāng)服務(wù)中需要監(jiān)聽多個(gè)kafka時(shí),?需要配置多個(gè)kafka,本文主要介紹了springboot使用@KafkaListener監(jiān)聽多個(gè)kafka配置實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-04-04Java數(shù)據(jù)結(jié)構(gòu)之簡單的連接點(diǎn)(link)實(shí)現(xiàn)方法示例
這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)之簡單的連接點(diǎn)(link)實(shí)現(xiàn)方法,涉及java指針指向節(jié)點(diǎn)的相關(guān)使用技巧,需要的朋友可以參考下2017-10-10SpringBoot集成nacos動(dòng)態(tài)刷新數(shù)據(jù)源的實(shí)現(xiàn)示例
這篇文章主要介紹了SpringBoot集成nacos動(dòng)態(tài)刷新數(shù)據(jù)源的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12SpringBoot集成POI導(dǎo)出Execl表格之統(tǒng)一工具類
這篇文章主要為大家詳細(xì)介紹了SpringBoot集成POI導(dǎo)出Execl表格之統(tǒng)一工具類,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-09-09java中double強(qiáng)制轉(zhuǎn)換int引發(fā)的OOM問題記錄
這篇文章主要介紹了java中double強(qiáng)制轉(zhuǎn)換int引發(fā)的OOM問題記錄,本文給大家分享問題排查過程,感興趣的朋友跟隨小編一起看看吧2024-10-10java Callable接口和Future接口創(chuàng)建線程示例詳解
這篇文章主要為大家介紹了java Callable接口和Future接口創(chuàng)建線程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11