Springmvc RequestMapping請(qǐng)求實(shí)現(xiàn)方法解析
請(qǐng)求url
標(biāo)記請(qǐng)求URl很簡單,只需要在相應(yīng)的方法上添加注解即可:
@Controller
public class HelloController {
@RequestMapping("/hello")
public ModelAndView hello() {
return new ModelAndView("hello");
}
}
這里 @RequestMapping(“/hello”) 表示當(dāng)請(qǐ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 都可以訪問到該方法
請(qǐng)求窄化
同一個(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
請(qǐng)求方法限定
默認(rèn)情況下,使用 @RequestMapping 注解定義好的方法,可以被 GET 請(qǐng)求訪問到,也可以被 POST 請(qǐng)求訪問到,但是 DELETE 請(qǐng)求以及 PUT 請(qǐng)求不可以訪問到。
當(dāng)然,我們也可以指定具體的訪問方法:
@Controller
@RequestMapping("/user")
public class HelloController {
@RequestMapping(value = "/hello",method = RequestMethod.GET)
public ModelAndView hello() {
return new ModelAndView("hello");
}
}
通過 @RequestMapping 注解,指定了該接口只能被 GET 請(qǐng)求訪問到,此時(shí),該接口就不可以被 POST 以及請(qǐng)求請(qǐng)求訪問到了。強(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 做頁面模板。可以講視圖換成其他的,或者返回 JSON,這里就不影響了。
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JMeter 實(shí)現(xiàn)Java請(qǐng)求步驟及原理詳解
這篇文章主要介紹了JMeter 實(shí)現(xiàn)Java請(qǐng)求步驟及原理詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03
解決Eclipse配置Tomcat出現(xiàn)Cannot create a server using the selected
這篇文章主要介紹了解決Eclipse配置Tomcat出現(xiàn)Cannot create a server using the selected type錯(cuò)誤的相關(guān)資料,需要的朋友可以參考下2017-02-02
Java Fluent Mybatis 項(xiàng)目工程化與常規(guī)操作詳解流程篇 下
Java中常用的ORM框架主要是mybatis, hibernate, JPA等框架。國內(nèi)又以Mybatis用的多,基于mybatis上的增強(qiáng)框架,又有mybatis plus和TK mybatis等。今天我們介紹一個(gè)新的mybatis增強(qiáng)框架 fluent mybatis關(guān)于項(xiàng)目工程化與常規(guī)操作流程2021-10-10
Spring定時(shí)任務(wù)@scheduled多線程使用@Async注解示例
這篇文章主要為大家介紹了Spring定時(shí)任務(wù)@scheduled多線程使用@Async注解示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11
利用java實(shí)現(xiàn)一個(gè)客戶信息管理系統(tǒng)
這篇文章主要給大家介紹了關(guān)于利用java實(shí)現(xiàn)一個(gè)客戶信息管理系統(tǒng)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
Java 中 String,StringBuffer 和 StringBuilder 的區(qū)別及用法
這篇文章主要介紹了Java 中 String,StringBuffer 和 StringBuilder 的區(qū)別及用法的相關(guān)資料,需要的朋友可以參考下2017-03-03

