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

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

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

1、@RequestMapping注解的功能

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

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

2、@RequestMapping注解的位置

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

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

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

3、@RequestMapping注解的value屬性

@RequestMapping注解的value屬性通過請求的請求地址匹配請求映射

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

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

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

這兩個地址都匹配同一個處理

4、@RequestMapping注解的method屬性

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

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

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

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

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

405:Request method 'xx' not supported

注:

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

處理get請求的映射-->@GetMapping

處理post請求的映射-->@PostMapping

處理put請求的映射-->@PutMapping

處理delete請求的映射-->@DeleteMapping

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

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

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

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

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

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

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

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

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

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

<a th:href="@{/test(username='admin',password=123456)" rel="external nofollow" >測試@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)前請求滿足@RequestMapping注解的value和method屬性,但是不滿足params屬性,此時頁面回報(bào)錯400:Parameter conditions "username, password!=123456" not met for actual request parameters: username={admin}, password={123456}

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

@RequestMapping注解的headers屬性通過請求的請求頭信息匹配請求映射

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

"header":要求請求映射所匹配的請求必須攜帶header請求頭信息

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

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

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

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

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

?:表示任意的單個字符

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

a1a,a2a......等都可匹配這個路徑

*:表示任意的0個或多個字符

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

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

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

原始方式:/deleteUser?id=1

rest方式:/deleteUser/1

SpringMVC路徑中的占位符常用于RESTful風(fēng)格中,當(dā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" >測試路徑中的占位符-->/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ù)名稱與形參名稱一致時可簡寫,自動尋找綁定,與順序無關(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)容請搜索腳本之家以前的文章或繼續(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)簡單的小蜜蜂擴(kuò)音器網(wǎng)上商城系統(tǒng),文中采用到的技術(shù)有JSP、Servlet?、JDBC、Ajax等,感興趣的可以動手試一試
    2022-03-03
  • SpringBoot+?Sharding?Sphere?輕松實(shí)現(xiàn)數(shù)據(jù)庫字段加解密功能

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

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

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

    包是組織類的一種方式,繼承顧名思義,比如誰繼承了長輩的產(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ì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    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ì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(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í)時監(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ī)制解決循環(huán)依賴問題,分別為singletonObjects、earlySingletonObjects和singletonFactories,需要的朋友可以參考下
    2024-09-09
  • Java中Lambda表達(dá)式和函數(shù)式接口的使用和特性

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

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

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

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

最新評論

江陵县| 衡水市| 大理市| 六枝特区| 招远市| 潮州市| 鲁山县| 安宁市| 丘北县| 泰兴市| 蓬莱市| 芒康县| 江永县| 新巴尔虎左旗| 孟津县| 鲜城| 颍上县| 甘泉县| 浠水县| 黄浦区| 宁远县| 柳河县| 宽城| 堆龙德庆县| 武义县| 肇庆市| 娄底市| 乌拉特前旗| 江门市| 永平县| 荔浦县| 青田县| 安陆市| 陆良县| 郴州市| 奉贤区| 营山县| 会宁县| 柘城县| 双江| 临沂市|