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

SpringMVC的注解@RequestMapping屬性及使用

 更新時(shí)間:2022年05月30日 08:54:49   作者:把蘋果咬哭的測(cè)試筆記  
這篇文章主要為大家介紹了SpringMVC注解@RequestMapping屬性及使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

SpringMVC注解@RequestMapping

在之前的 hello world 示例中,用到了 @RequestMapping 注解,它的作用就是將請(qǐng)求和處理請(qǐng)求的控制器方法關(guān)聯(lián)起來,建立映射關(guān)系。

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

一、@RequestMapping 注解的位置

在示例中,注解是用在了方法上,除此之外,還可以用在類上。

1. 作用在方法

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

此時(shí)請(qǐng)求映射所映射的請(qǐng)求的請(qǐng)求路徑為:/testRequestMapping。

2. 作用在類

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

此時(shí)請(qǐng)求映射所映射的請(qǐng)求的請(qǐng)求路徑為:/test/testRequestMapping。

作用在類上以后會(huì)經(jīng)常用到,比如有2個(gè)模塊:用戶和訂單,那么每個(gè)模塊下都會(huì)有自己的列表接口 /list。

為了更好的通過名稱區(qū)分出不同模塊,可以給兩個(gè)類上加上注解,使其最終路徑為/user/list、/order/list。

當(dāng)然,你也可以不用類的注解,直接在方法的注解上做區(qū)分,比如/userList和/orderList。

總之,一個(gè)請(qǐng)求只能有一個(gè)控制器來處理,如果你兩個(gè)不同的控制器方法,都使用/list,那么請(qǐng)求過來的時(shí)候就不知道該找哪個(gè)處理,會(huì)報(bào)錯(cuò)。

二、@RequestMapping 注解的 value 屬性

value 屬性通過請(qǐng)求的請(qǐng)求地址匹配請(qǐng)求映射,是必須設(shè)置的,否則請(qǐng)求地址匹配不到映射。

另外,value 屬性也是一個(gè)字符串類型的數(shù)組,表示該請(qǐng)求映射能夠匹配多個(gè)請(qǐng)求地址的請(qǐng)求。

@Controller
public class RequestMappingController {
 
    @RequestMapping(
            value = {"/test1", "/test2"}
    )
    public String testRequestMapping(){
        return "success";
    }
}

這里不管請(qǐng)求地址是/test1還是/test2,都可以找到控制器 testRequestMapping(),返回 success.html 。

三、@RequestMapping 注解的 method 屬性

method屬性通過請(qǐng)求的請(qǐng)求方式,比如 get 或 post ,來匹配請(qǐng)求映射。

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

若當(dāng)前請(qǐng)求的請(qǐng)求地址滿足請(qǐng)求映射的 value 屬性,但是請(qǐng)求方式不滿足 method 屬性,比如控制器是設(shè)置是 GET 請(qǐng)求方法,但是請(qǐng)求發(fā)送是 post:

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

index.html 添加 post 發(fā)送:

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>首頁</title>
</head>
<body>
    <h1>Hello World</h1>
    <a th:href="@{/target}" rel="external nofollow" >訪問目標(biāo)頁面 target.html </a>
    <br>
    <a th:href="@{/test1}" rel="external nofollow" >測(cè)試@RequestMapping的value屬性-->/test1</a><br>
    <a th:href="@{/test2}" rel="external nofollow" >測(cè)試@RequestMapping的value屬性-->/test2</a><br>
    <a th:href="@{/test}" rel="external nofollow" >測(cè)試@RequestMapping的method屬性-->/test</a><br>
    <form th:action="@{/test1}" method="post">
        <input type="submit">
    </form>
</body>
</html>

點(diǎn)擊 submit 按鈕,瀏覽器報(bào)錯(cuò)405:Request method 'POST' not supported。

如果繼續(xù)添加 post 方法支持,則可以正常訪問:

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

@RequestMapping 結(jié)合請(qǐng)求方式的派生注解

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

  • @GetMapping:處理 get 請(qǐng)求的映射
  • @PostMapping:處理 post 請(qǐng)求的映射
  • @PutMapping:處理 put 請(qǐng)求的映射
  • @DeleteMapping:處理 delete 請(qǐng)求的映射

使用這種注解,就不需要設(shè)置 method 屬性了。

@GetMapping("/test3")
    public String testGetMapping() {
        return "success";
    }

四、@RequestMapping 注解的 params 屬性

最常用的還是上面說的 value 和 method 屬性,其他的僅做了解。

params 屬性通過請(qǐng)求的請(qǐng)求參數(shù)匹配請(qǐng)求映射,是一個(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

舉個(gè)例子:

@RequestMapping(
            value = {"/test1"},
            method = {RequestMethod.GET, RequestMethod.POST},
            params = {"username", "password!=123456"}
    )
    public String testRequestMapping(){
        return "success";
    }

這里params = {"username", "password!=123456"}的意思就是,請(qǐng)求中必須帶有參數(shù)username和password,且password參數(shù)的值必須不等于123456。

五、@RequestMapping 注解的 headers 屬性

同樣作個(gè)了解。

headers 屬性通過請(qǐng)求的請(qǐng)求頭信息匹配請(qǐng)求映射,是一個(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 屬性,但是不滿足 header 屬性,此時(shí)頁面顯示404錯(cuò)誤,即資源未找到。

@RequestMapping(
            value = {"/test1"},
            method = {RequestMethod.GET, RequestMethod.POST},
            params = {"username", "password!=123456"},
            headers = {"Host=localhost:8081"}  // 這里端口變成8081
    )
    public String testRequestMapping(){
        return "success";
    }

我本地端口是 8080,現(xiàn)在去請(qǐng)求頁面,會(huì)報(bào)錯(cuò)。

感謝《尚硅谷》的學(xué)習(xí)資源。

以上就是SpringMVC的注解@RequestMapping屬性及使用的詳細(xì)內(nèi)容,更多關(guān)于SpringMVC注解@RequestMapping的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 詳解Java編寫并運(yùn)行spark應(yīng)用程序的方法

    詳解Java編寫并運(yùn)行spark應(yīng)用程序的方法

    這篇文章主要介紹了詳解Java編寫并運(yùn)行spark應(yīng)用程序的方法,內(nèi)容詳細(xì),結(jié)合了作者實(shí)際工作中的問題進(jìn)行具體分析,具有一定參考價(jià)值。
    2017-09-09
  • Mybatis-plus:${ew.sqlselect}用法說明

    Mybatis-plus:${ew.sqlselect}用法說明

    這篇文章主要介紹了Mybatis-plus:${ew.sqlselect}用法說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • 解決spring boot2集成activiti6踩過的坑

    解決spring boot2集成activiti6踩過的坑

    這篇文章主要介紹了解決spring boot2集成activiti6踩過的坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • 詳解SpringMVC實(shí)現(xiàn)圖片上傳以及該注意的小細(xì)節(jié)

    詳解SpringMVC實(shí)現(xiàn)圖片上傳以及該注意的小細(xì)節(jié)

    本篇文章主要介紹了詳解SpringMVC實(shí)現(xiàn)圖片上傳以及該注意的小細(xì)節(jié),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-02-02
  • Spring Boot下的Job定時(shí)任務(wù)

    Spring Boot下的Job定時(shí)任務(wù)

    編寫Job定時(shí)執(zhí)行任務(wù)十分有用,能解決很多問題,這次實(shí)習(xí)的項(xiàng)目里做了一下系統(tǒng)定時(shí)更新三方系統(tǒng)訂單狀態(tài)的功能,這里用到了Spring的定時(shí)任務(wù)使用的非常方便,下面總結(jié)一下如何使用,感興趣的朋友參考下吧
    2017-05-05
  • Java連接mysql數(shù)據(jù)庫(kù)以及mysql驅(qū)動(dòng)jar包下載和使用方法

    Java連接mysql數(shù)據(jù)庫(kù)以及mysql驅(qū)動(dòng)jar包下載和使用方法

    這篇文章主要給大家介紹了關(guān)于Java連接mysql數(shù)據(jù)庫(kù)以及mysql驅(qū)動(dòng)jar包下載和使用方法,MySQL是一款常用的關(guān)系型數(shù)據(jù)庫(kù),它的JDBC驅(qū)動(dòng)程序使得我們可以通過Java程序連接MySQL數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)操作,需要的朋友可以參考下
    2023-11-11
  • Java同步框架AbstractQueuedSynchronizer詳解

    Java同步框架AbstractQueuedSynchronizer詳解

    本篇文章主要介紹了Java同步框架AbstractQueuedSynchronizer詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-10-10
  • Java連接redis及基本操作示例

    Java連接redis及基本操作示例

    這篇文章主要介紹了Java連接redis及基本操作,結(jié)合實(shí)例形式較為詳細(xì)的分析了java針對(duì)redis數(shù)據(jù)庫(kù)的基本連接、配置及操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2019-04-04
  • feign?打印日志不顯示的問題及解決

    feign?打印日志不顯示的問題及解決

    這篇文章主要介紹了feign?打印日志不顯示的問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Java實(shí)現(xiàn)Excel導(dǎo)出并添加水印

    Java實(shí)現(xiàn)Excel導(dǎo)出并添加水印

    這篇文章主要為大家詳細(xì)介紹了Java如何使用poi-ooxml包導(dǎo)出xlsx添加水印,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-11-11

最新評(píng)論

阜新市| 砀山县| 北海市| 富顺县| 葫芦岛市| 虎林市| 特克斯县| 景德镇市| 大姚县| 湖州市| 临沧市| 乌海市| 大英县| 靖州| 丹凤县| 临邑县| 遂昌县| 宁海县| 霍林郭勒市| 乃东县| 莱芜市| 涟源市| 石台县| 唐海县| 海口市| 泊头市| 临夏县| 大丰市| 洱源县| 靖江市| 涟源市| 洛川县| 吉安县| 雷山县| 磴口县| 黄陵县| 山丹县| 调兵山市| 托克托县| 衢州市| 金堂县|