亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

SpringMVC @RequestMapping注解應(yīng)用方法示例講解

 更新時(shí)間:2022年09月28日 08:28:52   作者:搗蛋孩學(xué)編程  
通過@RequestMapping注解可以定義不同的處理器映射規(guī)則,下面這篇文章主要給大家介紹了關(guān)于SpringMVC中@RequestMapping注解用法的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

1、@RequestMapping注解的功能

從注解名稱上我們可以看到,@RequestMapping注解的作用就是將請(qǐng)求和處理請(qǐng)求的控制器方法關(guān)聯(lián)起來,建立映射關(guān)系。

SpringMVC 接收到指定的請(qǐng)求,就會(huì)來找到在映射關(guān)系中對(duì)應(yīng)的控制器方法來處理這個(gè)請(qǐng)求。

2、@RequestMapping注解的位置

@RequestMapping標(biāo)識(shí)一個(gè)類:設(shè)置映射請(qǐng)求的請(qǐng)求路徑的初始信息

@RequestMapping標(biāo)識(shí)一個(gè)方法:設(shè)置映射請(qǐng)求請(qǐng)求路徑的具體信息

@Controller
@RequestMapping("/test")
public class RequestMappingController {
	//此時(shí)請(qǐng)求映射所映射的請(qǐng)求的請(qǐng)求路徑為:/test/testRequestMapping
    @RequestMapping("/testRequestMapping")
    public String testRequestMapping(){
        return "success";
    }
}

3、@RequestMapping注解的value屬性

@RequestMapping注解的value屬性通過請(qǐng)求的請(qǐng)求地址匹配請(qǐng)求映射

@RequestMapping注解的value屬性是一個(gè)字符串類型的數(shù)組,表示該請(qǐng)求映射能夠匹配多個(gè)請(qǐng)求地址所對(duì)應(yīng)的請(qǐng)求

@RequestMapping注解的value屬性必須設(shè)置,至少通過請(qǐng)求地址匹配請(qǐng)求映射

<a th:href="@{/testRequestMapping}" rel="external nofollow" >測(cè)試@RequestMapping的value屬性-->/testRequestMapping</a><br>
<a th:href="@{/test}" rel="external nofollow"  rel="external nofollow" >測(cè)試@RequestMapping的value屬性-->/test</a><br>
@RequestMapping(
        value = {"/testRequestMapping", "/test"}
)
public String testRequestMapping(){
    return "success";
}

這兩個(gè)地址都匹配同一個(gè)處理

4、@RequestMapping注解的method屬性

@RequestMapping注解的method屬性通過請(qǐng)求的請(qǐng)求方式(get或post)匹配請(qǐng)求映射,未設(shè)置則任何方式都能訪問

<a th:href="@{/test}" rel="external nofollow"  rel="external nofollow" >測(cè)試@RequestMapping的method屬性-->get</a><br>
<form th:action="@{/test}" method="post">
    <input type="submit" value="測(cè)試@RequestMapping的method屬性--post">
</form>
@Controller
public class RequestMappingTestController {
    @RequestMapping(value = {"/test" ,"/RequestMappingTest"})
    public String success(){
        return "success";
    }
}

@RequestMapping注解的method屬性是一個(gè)RequestMethod類型的數(shù)組,表示該請(qǐng)求映射能夠匹配多種請(qǐng)求方式的請(qǐng)求

@Controller
public class RequestMappingTestController {
    @RequestMapping(value = {"/test" ,"/RequestMappingTest"},
    method = {RequestMethod.GET,RequestMethod.POST})
    public String success(){
        return "success";
    }
}

若當(dāng)前請(qǐng)求的請(qǐng)求地址滿足請(qǐng)求映射的value屬性,但是請(qǐng)求方式不滿足method屬性,則瀏覽器報(bào)錯(cuò)

405:Request method 'xx' not supported

注:

1、對(duì)于處理指定請(qǐng)求方式的控制器方法,SpringMVC中提供了@RequestMapping的派生注解

處理get請(qǐng)求的映射-->@GetMapping

處理post請(qǐng)求的映射-->@PostMapping

處理put請(qǐng)求的映射-->@PutMapping

處理delete請(qǐng)求的映射-->@DeleteMapping

2、常用的請(qǐng)求方式有g(shù)et,post,put,delete

但是目前瀏覽器只支持get和post,若在form表單提交時(shí),為method設(shè)置了其他請(qǐng)求方式的字符串(put或delete),則按照默認(rèn)的請(qǐng)求方式get處理

若要發(fā)送put和delete請(qǐng)求,則需要通過spring提供的過濾器HiddenHttpMethodFilter,在RESTful部分會(huì)講到

5、@RequestMapping注解的params屬性(了解)

@RequestMapping注解的params屬性通過請(qǐng)求的請(qǐng)求參數(shù)匹配請(qǐng)求映射

@RequestMapping注解的params屬性是一個(gè)字符串類型的數(shù)組,可以通過四種表達(dá)式設(shè)置請(qǐng)求參數(shù)和請(qǐng)求映射的匹配關(guān)系

"param":要求請(qǐng)求映射所匹配的請(qǐng)求必須攜帶param請(qǐng)求參數(shù)

"!param":要求請(qǐng)求映射所匹配的請(qǐng)求必須不能攜帶param請(qǐng)求參數(shù)

"param=value":要求請(qǐng)求映射所匹配的請(qǐng)求必須攜帶param請(qǐng)求參數(shù)且param=value

"param!=value":要求請(qǐng)求映射所匹配的請(qǐng)求必須攜帶param請(qǐng)求參數(shù)但是param!=value

<a th:href="@{/test(username='admin',password=123456)" rel="external nofollow" >測(cè)試@RequestMapping的params屬性-->/test</a><br>
@RequestMapping(
        value = {"/testRequestMapping", "/test"}
        ,method = {RequestMethod.GET, RequestMethod.POST}
        ,params = {"username","password!=123456"}
)
public String testRequestMapping(){
    return "success";
}

注:

若當(dāng)前請(qǐng)求滿足@RequestMapping注解的value和method屬性,但是不滿足params屬性,此時(shí)頁面回報(bào)錯(cuò)400:Parameter conditions "username, password!=123456" not met for actual request parameters: username={admin}, password={123456}

6、@RequestMapping注解的headers屬性(了解)

@RequestMapping注解的headers屬性通過請(qǐng)求的請(qǐng)求頭信息匹配請(qǐng)求映射

@RequestMapping注解的headers屬性是一個(gè)字符串類型的數(shù)組,可以通過四種表達(dá)式設(shè)置請(qǐng)求頭信息和請(qǐng)求映射的匹配關(guān)系

"header":要求請(qǐng)求映射所匹配的請(qǐng)求必須攜帶header請(qǐng)求頭信息

"!header":要求請(qǐng)求映射所匹配的請(qǐng)求必須不能攜帶header請(qǐng)求頭信息

"header=value":要求請(qǐng)求映射所匹配的請(qǐng)求必須攜帶header請(qǐng)求頭信息且header=value

"header!=value":要求請(qǐng)求映射所匹配的請(qǐng)求必須攜帶header請(qǐng)求頭信息且header!=value

若當(dāng)前請(qǐng)求滿足@RequestMapping注解的value和method屬性,但是不滿足headers屬性,此時(shí)頁面顯示404錯(cuò)誤,即資源未找到

7、SpringMVC支持ant風(fēng)格的路徑

?:表示任意的單個(gè)字符

    @RequestMapping("/a?a/testAnt")
    public String testAnt(){
        return "success";
    }

a1a,a2a......等都可匹配這個(gè)路徑

*:表示任意的0個(gè)或多個(gè)字符

**:表示任意的一層或多層目錄

注意:在使用**時(shí),只能使用/**/xxx的方式

8、SpringMVC支持路徑中的占位符(重點(diǎn))

原始方式:/deleteUser?id=1

rest方式:/deleteUser/1

SpringMVC路徑中的占位符常用于RESTful風(fēng)格中,當(dāng)請(qǐng)求路徑中將某些數(shù)據(jù)通過路徑的方式傳輸?shù)椒?wù)器中,就可以在相應(yīng)的@RequestMapping注解的value屬性中通過占位符{xxx}表示傳輸?shù)臄?shù)據(jù),在通過@PathVariable注解,將占位符所表示的數(shù)據(jù)賦值給控制器方法的形參

<a th:href="@{/testRest/1/admin}" rel="external nofollow" >測(cè)試路徑中的占位符-->/testRest</a><br>
@RequestMapping("/testRest/{id}/{username}")
//使用地址參數(shù)名與方法形參綁定,與順序無關(guān)
public String testRest(@PathVariable("id") String id, @PathVariable("username") String username){
    System.out.println("id:"+id+",username:"+username);
    return "success";
}
@RequestMapping("/testRest/{id}/{username}")
//當(dāng)?shù)刂分械膮?shù)名稱與形參名稱一致時(shí)可簡(jiǎn)寫,自動(dòng)尋找綁定,與順序無關(guān)
public String testRest(@PathVariable String id, @PathVariable String username){
    System.out.println("id:"+id+",username:"+username);
    return "success";
}

//最終輸出的內(nèi)容為都是-->id:1,username:admin

到此這篇關(guān)于SpringMVC @RequestMapping注解應(yīng)用方法示例講解的文章就介紹到這了,更多相關(guān)SpringMVC @RequestMapping內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 淺談一下JVM垃圾回收算法

    淺談一下JVM垃圾回收算法

    這篇文章主要介紹了一下JVM垃圾回收算法,Java有著自己一套的內(nèi)存管理機(jī)制,不需要開發(fā)者去手動(dòng)釋放內(nèi)存,開發(fā)者只需要寫好代碼即可,運(yùn)行過程中產(chǎn)生的垃圾都由JVM回收,需要的朋友可以參考下
    2023-04-04
  • idea out目錄與target目錄的區(qū)別詳解

    idea out目錄與target目錄的區(qū)別詳解

    這篇文章主要介紹了idea out目錄與target目錄的區(qū)別詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • Java中的JScrollPane使用詳細(xì)說明

    Java中的JScrollPane使用詳細(xì)說明

    這篇文章主要給大家介紹了關(guān)于Java中JScrollPane使用的相關(guān)資料,Java JScrollPane是Swing庫提供的一個(gè)組件,用于在需要滾動(dòng)的區(qū)域中顯示內(nèi)容,需要的朋友可以參考下
    2024-07-07
  • SpringBoot一個(gè)非常蛋疼的無法啟動(dòng)的問題解決

    SpringBoot一個(gè)非常蛋疼的無法啟動(dòng)的問題解決

    這篇文章主要介紹了SpringBoot一個(gè)非常蛋疼的無法啟動(dòng)的問題解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • 淺談為什么Java中1000==1000為false而100==100為true

    淺談為什么Java中1000==1000為false而100==100為true

    這篇文章主要介紹了淺談為什么Java中1000==1000為false而100==100為true,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • 純java代碼實(shí)現(xiàn)抽獎(jiǎng)系統(tǒng)

    純java代碼實(shí)現(xiàn)抽獎(jiǎng)系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了純java代碼實(shí)現(xiàn)抽獎(jiǎng)系統(tǒng),無連接數(shù)據(jù)庫,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • Java之對(duì)象銷毀和finalize方法的使用

    Java之對(duì)象銷毀和finalize方法的使用

    這篇文章主要介紹了Java之對(duì)象銷毀和finalize方法的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • 基于java實(shí)現(xiàn)顏色拾色器并打包成exe

    基于java實(shí)現(xiàn)顏色拾色器并打包成exe

    這篇文章主要為大家詳細(xì)介紹了如何基于java編寫一個(gè)簡(jiǎn)單的顏色拾色器并打包成exe文件,文中的示例代碼講解詳細(xì),需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-10-10
  • maven安裝jar包到本地的操作方法

    maven安裝jar包到本地的操作方法

    這篇文章主要介紹了maven安裝jar包到本地,執(zhí)行該命令后,Maven?會(huì)將該?JAR?文件安裝到你本地?Maven?倉庫中,需要的朋友可以參考下
    2007-01-01
  • maven profile自動(dòng)切換環(huán)境參數(shù)的2種方法詳解

    maven profile自動(dòng)切換環(huán)境參數(shù)的2種方法詳解

    這篇文章主要給大家介紹了關(guān)于maven profile自動(dòng)切換環(huán)境參數(shù)的2種方法,文中通過示例代碼將這兩種方法介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-04-04

最新評(píng)論