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

詳解SpringMVC中的@RequestMapping注解

 更新時(shí)間:2023年07月21日 10:09:03   作者:普通網(wǎng)友  
這篇文章主要介紹了SpringMVC中@RequestMapping注解,@RequestMapping注解是一個(gè)用來(lái)處理請(qǐng)求地址映射的注解,可用于映射一個(gè)請(qǐng)求或一個(gè)方法,可以用在類或方法上,需要的朋友可以參考下

前言

我們?cè)趯?shí)際的開發(fā)當(dāng)中,一個(gè)控制器中不一定只有一個(gè)方法,而這些方法都是用來(lái)處理請(qǐng)求的,那么怎樣才能將請(qǐng)求與處理方法一一對(duì)應(yīng)呢,當(dāng)然是通過(guò) RequestMapping 注解來(lái)處理這些映射請(qǐng)求,也就是通過(guò)它來(lái)指定控制器可以處理哪些URL請(qǐng)求。

@RequestMapping注解是一個(gè)用來(lái)處理請(qǐng)求地址映射的注解,可用于映射一個(gè)請(qǐng)求或一個(gè)方法,可以用在類或方法上。

1.@RequestMapping可以標(biāo)注的位置

1.1 標(biāo)注在方法上

  • 用于方法上,表示在類的父路徑下追加方法上注解中的地址將會(huì)訪問(wèn)到 該方法

@Controller public class RequestMappingController {

@Controller
public class RequestMappingController {
    @RequestMapping("/testRequest")
    public String testRequest(){
        return "success";
    }
}

此時(shí)請(qǐng)求映射所映射的請(qǐng)求的請(qǐng)求路徑為:////localhost:8080/springmvc_study02/testRequest

在這里插入圖片描述

注意:springmvc_study02是項(xiàng)目名稱

1.2 標(biāo)注在類和方法上

  • 用于類上,表示類中的所有響應(yīng)請(qǐng)求的方法都是以該地址作為父路徑。
@Controller 
@RequestMapping(“/hello”) 
public class RequestMappingController {
    @RequestMapping("/testRequest")
    public String testRequest(){
        return "success";
    }
}

此時(shí)請(qǐng)求映射所映射的請(qǐng)求的請(qǐng)求路徑為://localhost:8080/springmvc_study02/hello/testRequest

在這里插入圖片描述

注意:當(dāng)你在類上添加RequestMapping注解后,如果要請(qǐng)求映射,就意味著請(qǐng)求要先映射到標(biāo)注類的位置,然后再映射到該類的方法上。如果不加就會(huì)出現(xiàn)如下錯(cuò)誤

在這里插入圖片描述

2. @RequestMapping的屬性

  • 我們可以先查看一下源碼:按住Ctrl鍵,鼠標(biāo)點(diǎn)擊RequestMapping注解就可以看到下面的界面

在這里插入圖片描述

  • 在源碼中我們可以看到@RequestMapping的所有屬性,那么接下來(lái)就一起看一看這些屬性

2.1 @RequestMapping的value屬性*

  • @RequestMapping 的 value 屬性必須設(shè)值;
  • @RequestMapping 的 value 屬性是通過(guò)當(dāng)前請(qǐng)求的請(qǐng)求地址來(lái)匹配請(qǐng)求;
  • 從上面的源碼中可以看到value屬性是一個(gè)字符串類型的數(shù)組,因此說(shuō)明可以將多個(gè)請(qǐng)求映射到一個(gè)方法上,只需要給 value 來(lái)指定一個(gè)包含多個(gè)路徑的數(shù)組。

設(shè)置value屬性的值:

@Controller
public class RequestMappingController {
    @RequestMapping(value = {"/testRequest","/test"})
    public String testRequest(){
        return "success";
    }
}

在瀏覽器中輸入下面路徑進(jìn)行測(cè)試:

在這里插入圖片描述

在這里插入圖片描述

注意:從上面兩張圖我們能夠看到,這時(shí)的請(qǐng)求映射所映射的請(qǐng)求的請(qǐng)求路徑為選擇value數(shù)組中的任意一個(gè)都可以。

2.2 @RequestMapping的method屬性*

  • @RequestMapping的method屬性是通過(guò)當(dāng)前請(qǐng)求的請(qǐng)求方式來(lái)匹配請(qǐng)求;
  • 瀏覽器向服務(wù)器發(fā)送請(qǐng)求,請(qǐng)求方式有很多GET、HEAD、POST、PUT、PATCH、DELETE、OPTIONS、TRACE。可以使用 method 屬性來(lái)約束請(qǐng)求方式。

設(shè)置請(qǐng)求方式為get:

@Controller
public class RequestMappingController {
    @RequestMapping(value = "/testRequest",method = RequestMethod.GET)
    public String testRequest(){
        return "success";
    }
}

以post方式請(qǐng)求:

<form th:action="@{/testRequest}" method="post">
    <input type="submit">
</form>

請(qǐng)求結(jié)果:

在這里插入圖片描述

注意:我們?cè)贎RequestMapping注解里加一個(gè)方法限定:method = RequestMethod.GET,則請(qǐng)求必須是get的,否則就會(huì)發(fā)生以上的錯(cuò)誤。

映射方法中明確要求請(qǐng)求方式為get,所以post方式不被允許,只有修改為get,才能夠請(qǐng)求成功,如果要想兩種方式都支持,只需在@RequestMapping注解的method屬性中添加另一種方式即可,中間用英文逗號(hào)隔開。

擴(kuò)展:

@GetMapping:處理get方式請(qǐng)求的映射

@PostMapping:處理post方式請(qǐng)求的映射

@PutMapping:處理put方式請(qǐng)求的映射

@DeleteMapping:處理delete方式請(qǐng)求的映射

@GetMapping就相當(dāng)于@RequestMapping(method=RequestMethod.GET),它會(huì)將get映射到特定的方法上。

使用方式:@GetMapping(value = "/testRequest")

2.3 @RequestMapping的params屬性

@RequestMapping的params屬性是通過(guò)當(dāng)前請(qǐng)求的請(qǐng)求參數(shù)來(lái)匹配請(qǐng)求;

@RequestMapping的params屬性是一個(gè)字符串類型的數(shù)組,可以通過(guò)下面四種表達(dá)是來(lái)設(shè)置匹配關(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 參數(shù)的值必須為 value
  • “param!=value”: 要求請(qǐng)求映射的請(qǐng)求是必須包含 param 的請(qǐng)求參數(shù),其值不能為 value。

設(shè)置params的屬性值為username:

@RequestMapping(value = "/test",params = "username")
    public String test(){
        return "success";
    }

請(qǐng)求結(jié)果:

在這里插入圖片描述

注意:我們?cè)O(shè)置了params屬性,就意味著該請(qǐng)求映射的請(qǐng)求必須包含username才能夠請(qǐng)求成功。

當(dāng)我們傳入?yún)?shù)用//localhost:8080/springmvc_study02/test?username路徑來(lái)訪問(wèn),我們來(lái)看看結(jié)果:

在這里插入圖片描述

當(dāng)給params屬性設(shè)置多個(gè)屬性值時(shí),必須同時(shí)滿足才能夠請(qǐng)求成功,否則會(huì)出現(xiàn)下面的錯(cuò)誤

在這里插入圖片描述

2.4 @RequestMapping的headers屬性

@RequestMapping的headers屬性是通過(guò)當(dāng)前請(qǐng)求的請(qǐng)求頭信息來(lái)匹配請(qǐng)求;

@RequestMapping的headers屬性是一個(gè)字符串類型的數(shù)組,可以通過(guò)下面四種表達(dá)是來(lái)設(shè)置匹配關(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

設(shè)置請(qǐng)求頭信息:

 @RequestMapping(value = "/test",headers = "Host = localhost:8081")
    public String test(){
        return "success";
    }

請(qǐng)求結(jié)果:

在這里插入圖片描述

注意:如果當(dāng)前請(qǐng)求不滿足headers屬性,此時(shí)頁(yè)面就會(huì)顯示404錯(cuò)誤,即資源未找到。

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

相關(guān)文章

  • springboot快速集成mybatis-plus的詳細(xì)教程

    springboot快速集成mybatis-plus的詳細(xì)教程

    這篇文章主要介紹了springboot快速集成mybatis-plus的教程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Java 實(shí)現(xiàn)多線程的幾種方式匯總

    Java 實(shí)現(xiàn)多線程的幾種方式匯總

    JAVA多線程實(shí)現(xiàn)方式主要有三種:繼承Thread類、實(shí)現(xiàn)Runnable接口、使用ExecutorService、Callable、Future實(shí)現(xiàn)有返回結(jié)果的多線程。其中前兩種方式線程執(zhí)行完后都沒(méi)有返回值,只有最后一種是帶返回值的。
    2016-03-03
  • 微服務(wù)實(shí)戰(zhàn)之怎樣提升springboot服務(wù)吞吐量

    微服務(wù)實(shí)戰(zhàn)之怎樣提升springboot服務(wù)吞吐量

    這篇文章主要介紹了微服務(wù)實(shí)戰(zhàn)之怎樣提升springboot服務(wù)吞吐量方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • java如何調(diào)用Groovy腳本

    java如何調(diào)用Groovy腳本

    這篇文章主要介紹了java如何調(diào)用Groovy腳本問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • JDBC獲取元數(shù)據(jù)demo

    JDBC獲取元數(shù)據(jù)demo

    這篇文章主要為大家介紹了JDBC獲取元數(shù)據(jù)實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • 深入理解Java設(shè)計(jì)模式之裝飾模式

    深入理解Java設(shè)計(jì)模式之裝飾模式

    這篇文章主要介紹了JAVA設(shè)計(jì)模式之裝飾模式的的相關(guān)資料,文中示例代碼非常詳細(xì),供大家參考和學(xué)習(xí),感興趣的朋友可以了解下
    2021-11-11
  • Mybatis分頁(yè)插件PageHelper配置及使用方法詳解

    Mybatis分頁(yè)插件PageHelper配置及使用方法詳解

    這篇文章主要介紹了Mybatis分頁(yè)插件PageHelper配置及使用方法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • spring boot和mybatis集成分頁(yè)插件

    spring boot和mybatis集成分頁(yè)插件

    這篇文章主要為大家詳細(xì)介紹了spring boot和mybatis集成分頁(yè)插件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • 關(guān)于Java中的IO流總結(jié)(推薦)

    關(guān)于Java中的IO流總結(jié)(推薦)

    下面小編就為大家?guī)?lái)一篇關(guān)于Java中的IO流總結(jié)(推薦)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05
  • Spring Batch大數(shù)據(jù)量處理之從入門到精通實(shí)踐

    Spring Batch大數(shù)據(jù)量處理之從入門到精通實(shí)踐

    文章介紹了SpringBatch的基本架構(gòu)和核心配置,接著通過(guò)CSV導(dǎo)入數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)導(dǎo)出到文件兩個(gè)簡(jiǎn)單任務(wù)示例進(jìn)行講解,最后介紹了如何處理多步驟復(fù)雜任務(wù)
    2026-04-04

最新評(píng)論

乃东县| 安新县| 黎城县| 罗江县| 通海县| 手机| 邢台县| 新郑市| 施甸县| 丹江口市| 孟州市| 宜兴市| 龙里县| 肥城市| 永胜县| 徐汇区| 江山市| 夏津县| 北海市| 宝鸡市| 凤庆县| 桓台县| 百色市| 辽阳县| 黄浦区| 岐山县| 招远市| 龙井市| 渑池县| 巴林左旗| 凤城市| 航空| 呼图壁县| 涟源市| 许昌县| 福清市| 曲周县| 康定县| 赤城县| 扎鲁特旗| 潼南县|