最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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)文章

  • Java實(shí)戰(zhàn)之小蜜蜂擴(kuò)音器網(wǎng)上商城系統(tǒng)的實(shí)現(xiàn)

    Java實(shí)戰(zhàn)之小蜜蜂擴(kuò)音器網(wǎng)上商城系統(tǒng)的實(shí)現(xiàn)

    這篇文章主要介紹了如何利用Java實(shí)現(xiàn)簡(jiǎn)單的小蜜蜂擴(kuò)音器網(wǎng)上商城系統(tǒng),文中采用到的技術(shù)有JSP、Servlet?、JDBC、Ajax等,感興趣的可以動(dòng)手試一試
    2022-03-03
  • SpringBoot+?Sharding?Sphere?輕松實(shí)現(xiàn)數(shù)據(jù)庫(kù)字段加解密功能

    SpringBoot+?Sharding?Sphere?輕松實(shí)現(xiàn)數(shù)據(jù)庫(kù)字段加解密功能

    在Spring?Boot生態(tài)中,有一個(gè)非常厲害的開源框架:Apache?ShardingSphere,它是一款分布式?SQL?事務(wù)和查詢引擎,可通過數(shù)據(jù)分片、彈性伸縮、加密等能力對(duì)任意數(shù)據(jù)庫(kù)進(jìn)行增強(qiáng),今天通過這篇文章,我們一起來了解一下如何在?Spring?Boot?中快速實(shí)現(xiàn)數(shù)據(jù)的加解密功能
    2024-07-07
  • Java 基礎(chǔ)語法之解析 Java 的包和繼承

    Java 基礎(chǔ)語法之解析 Java 的包和繼承

    包是組織類的一種方式,繼承顧名思義,比如誰繼承了長(zhǎng)輩的產(chǎn)業(yè),其實(shí)這里的繼承和我們生活中的繼承很類似,下面文字將為大家詳細(xì)介紹Java的包和繼承
    2021-09-09
  • JAVA Swing實(shí)現(xiàn)窗口添加課程信息過程解析

    JAVA Swing實(shí)現(xiàn)窗口添加課程信息過程解析

    這篇文章主要介紹了JAVA Swing實(shí)現(xiàn)窗口添加課程信息過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • Springboot結(jié)合@validated優(yōu)化代碼驗(yàn)證

    Springboot結(jié)合@validated優(yōu)化代碼驗(yàn)證

    這篇文章主要介紹了Springboot與@validated注解結(jié)合從而實(shí)現(xiàn)讓你的代碼驗(yàn)證更清爽,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • SpringBoot3使用Jasypt實(shí)現(xiàn)加密配置文件

    SpringBoot3使用Jasypt實(shí)現(xiàn)加密配置文件

    這篇文章主要為大家詳細(xì)介紹了SpringBoot3如何使用Jasypt實(shí)現(xiàn)加密配置文件功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-03-03
  • springboot健康檢查監(jiān)控全過程

    springboot健康檢查監(jiān)控全過程

    文章介紹了Spring Boot如何使用Actuator和Micrometer進(jìn)行健康檢查和監(jiān)控,通過配置和自定義健康指示器,開發(fā)者可以實(shí)時(shí)監(jiān)控應(yīng)用組件的狀態(tài),Micrometer支持多種監(jiān)控系統(tǒng),如Prometheus,而Grafana則用于可視化監(jiān)控?cái)?shù)據(jù),文章還提供了配置示例和常見問題解決方案
    2025-01-01
  • Spring?Boot解決循環(huán)依賴的過程詳細(xì)記錄

    Spring?Boot解決循環(huán)依賴的過程詳細(xì)記錄

    這篇文章主要介紹了Spring?Boot解決循環(huán)依賴的過程,Spring框架通過三級(jí)緩存機(jī)制解決循環(huán)依賴問題,分別為singletonObjects、earlySingletonObjects和singletonFactories,需要的朋友可以參考下
    2024-09-09
  • Java中Lambda表達(dá)式和函數(shù)式接口的使用和特性

    Java中Lambda表達(dá)式和函數(shù)式接口的使用和特性

    Java Lambda表達(dá)式是一種函數(shù)式編程的特性,可簡(jiǎn)化匿名內(nèi)部類的寫法,與函數(shù)式接口搭配使用,實(shí)現(xiàn)代碼簡(jiǎn)潔、可讀性高、易于維護(hù)的特點(diǎn),適用于集合操作、多線程編程等場(chǎng)景
    2023-04-04
  • springboot注入yml配置文件 list報(bào)錯(cuò)的解決方案

    springboot注入yml配置文件 list報(bào)錯(cuò)的解決方案

    這篇文章主要介紹了springboot注入yml配置文件 list報(bào)錯(cuò)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08

最新評(píng)論

航空| 蓬莱市| 施甸县| 景德镇市| 博乐市| 珠海市| 丰原市| 南昌县| 定南县| 杭州市| 卓资县| 贡觉县| 珠海市| 林口县| 北安市| 乐都县| 禄劝| 惠水县| 博罗县| 大英县| 景洪市| 临沂市| 登封市| 塘沽区| 连州市| 溆浦县| 五家渠市| 萨迦县| 扶余县| 错那县| 松溪县| 聂拉木县| 平潭县| 浦县| 遵化市| 新泰市| 永清县| 遂平县| 高尔夫| 卓资县| 常熟市|