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

Java @RequestMapping注解功能使用詳解

 更新時間:2022年11月08日 10:02:32   作者:學習使我快樂T  
通過@RequestMapping注解可以定義不同的處理器映射規(guī)則,下面這篇文章主要給大家介紹了關(guān)于SpringMVC中@RequestMapping注解用法的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下

一、@RequestMapping注解的功能

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

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

二、@RequestMapping注解的位置

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

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

@Controller
@RequestMapping("/test")
public class TestRequestMappingController {
    //此時控制器方法所匹配的請求的請求路徑為/test/hello
    @RequestMapping("/hello")
    public String hello() {
        return "success";
    }
}

三、@RequestMapping注解的value屬性

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

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

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

測試映射請求控制器

@Controller
//@RequestMapping("/test")
public class TestRequestMappingController {
    //此時控制器方法所匹配的請求的請求路徑為/test/hello
    @RequestMapping({"/hello","/abc"})
    public String hello() {
        return "success";
    }
}

index.html

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymelef.org">
<head>
    <meta charset="UTF-8">
    <title>首頁</title>
</head>
<body>
    <h1>index.html</h1>
    <a th:href="@{/hello}" rel="external nofollow"  rel="external nofollow" >測試@RequestMapping注解所標識的位置</a>
    <a th:href="@{/abc}" rel="external nofollow"  rel="external nofollow" >測試@RequestMapping注解的value屬性</a>
</body>
</html>

success.html

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymelef.org">
<head>
    <meta charset="UTF-8">
    <title>首頁</title>
</head>
<body>
  <h1>success.html</h1>
</body>
</html>

結(jié)果:

點超鏈接跳轉(zhuǎn)到下面頁面

四、@RequestMapping注解的method屬性

@RequestMapping注解的method屬性通過請求的請求方式(get或post)匹配請求映射

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

若當前請求的請求地址滿足請求映射的value屬性,但是請求方式不滿足method屬性,則瀏覽器報錯 405:Request method 'POST' not supported

注:

除了表單我們默認就是post請求,其他的都是get請求

@Controller
//@RequestMapping("/test")
public class TestRequestMappingController {
    //此時控制器方法所匹配的請求的請求路徑為/test/hello
    @RequestMapping(
            value = {"/hello","/abc"},
            method = RequestMethod.POST)
    public String hello() {
        return "success";
    }
}
    <h1>index.html</h1>
    <a th:href="@{/hello}" rel="external nofollow"  rel="external nofollow" >測試@RequestMapping注解所標識的位置</a>
    <a th:href="@{/abc}" rel="external nofollow"  rel="external nofollow" >測試@RequestMapping注解的value屬性</a>
    <form th:action="@{/hello}" method="post">
        <input type="submit" value="測試@RequestMapping注解的method屬性">
    </form>

結(jié)果:

除了按鈕可以跳轉(zhuǎn)頁面,其他的都報405錯誤-方法不允許。因為表單設(shè)置了post請求,我們的@RequestMapping注解的method屬性配置的也是post請求

@Controller
//@RequestMapping("/test")
public class TestRequestMappingController {
    //此時控制器方法所匹配的請求的請求路徑為/test/hello
    @RequestMapping(
            value = {"/hello","/abc"},
            method = {RequestMethod.POST,RequestMethod.GET})
    public String hello() {
        return "success";
    }
}

上面這種方式也可以匹配兩種請求,不過默認的情況下也是匹配兩種請求

注:

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),則按照默認的請求方式get處理

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

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

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

params可以使用四種表達式:

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

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

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

路徑匹配,請求方式也匹配,但是請求參數(shù)不匹配,因為要求我們的請求參數(shù)必須有username。報400錯誤請求-Parameter conditions "username" not met for actual request parameters:

請求參數(shù)必須有username,不能有password,年齡必須為20,性別必須不等于女

@Controller
//@RequestMapping("/test")
public class TestRequestMappingController {
    //此時控制器方法所匹配的請求的請求路徑為/test/hello
    @RequestMapping(
            value = {"/hello","/abc"},
            method = {RequestMethod.POST,RequestMethod.GET},
            params = {"username","!password","age=20","gender!=女"}
    )
    public String hello() {
        return "success";
    }
}
    <a th:href="@{/hello?username=admin}" rel="external nofollow" >測試@RequestMapping注解的params屬性</a><br>
    <a th:href="@{/hello(username='admin')}" rel="external nofollow" >測試@RequestMapping注解的params屬性</a><br>

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

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

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

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

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

"header!=value":要求請求映射所匹配的請求必須攜帶header請求頭信息且header!=value 若當前請求滿足@RequestMapping注解的value和method屬性,但是不滿足headers屬性,此時頁面 顯示404錯誤,即資源未找到

七、SpringMVC支持ant風格的路徑

?:表示任意的單個字符

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

**:表示任意層數(shù)的任意目錄

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

八、SpringMVC支持路徑中的占位符(重點)

原始方式:/deleteUser?id=1

rest方式:/user/delete/1

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

<a th:href="@{test/rest/admin/1}" rel="external nofollow" >測試@RequestMapping注解的value屬性中的占位符</a>
    @RequestMapping("/test/username/{username}/{id}")
    public String testRest(@PathVariable("id") Integer id,@PathVariable("username") String username) {
        System.out.println("id:" + id + ",username:" + username);
        return "success";
    }
}

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

相關(guān)文章

  • Mybatis Plus查詢時sql字段名大小寫報錯的解決

    Mybatis Plus查詢時sql字段名大小寫報錯的解決

    這篇文章主要介紹了Mybatis Plus查詢時sql字段名大小寫報錯的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java 實戰(zhàn)項目之精美物流管理系統(tǒng)的實現(xiàn)流程

    Java 實戰(zhàn)項目之精美物流管理系統(tǒng)的實現(xiàn)流程

    讀萬卷書不如行萬里路,只學書上的理論是遠遠不夠的,只有在實戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+SpringBoot+Vue+maven+Mysql實現(xiàn)一個精美的物流管理系統(tǒng),大家可以在過程中查缺補漏,提升水平
    2021-11-11
  • java安全?ysoserial?CommonsCollections1示例解析

    java安全?ysoserial?CommonsCollections1示例解析

    這篇文章主要介紹了java安全?ysoserial?CommonsCollections1示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • idea2020.3配置maven環(huán)境并配置Tomcat的詳細教程

    idea2020.3配置maven環(huán)境并配置Tomcat的詳細教程

    這篇文章主要介紹了idea2020.3配置maven環(huán)境并配置Tomcat的詳細教程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • Springboot之自定義全局異常處理的實現(xiàn)

    Springboot之自定義全局異常處理的實現(xiàn)

    這篇文章主要介紹了Springboot之自定義全局異常處理的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • Java Stax解析XML示例

    Java Stax解析XML示例

    這篇文章主要介紹了Java Stax解析XML示例,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2020-09-09
  • 詳解Java中異步轉(zhuǎn)同步的六種方法

    詳解Java中異步轉(zhuǎn)同步的六種方法

    針對應(yīng)用中異步調(diào)用,能不能像同步調(diào)用一樣立刻獲取到命令的執(zhí)行結(jié)果,如何實現(xiàn)異步轉(zhuǎn)同步?不要擔心,本文就來為大家詳細講講Java中異步轉(zhuǎn)同步的六種方法,感興趣的可以了解一下
    2022-06-06
  • java實現(xiàn)圖片轉(zhuǎn)ascii字符畫的方法示例

    java實現(xiàn)圖片轉(zhuǎn)ascii字符畫的方法示例

    這篇文章主要介紹了java實現(xiàn)圖片轉(zhuǎn)ascii字符畫的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • Java排序算法中的快速排序算法實現(xiàn)

    Java排序算法中的快速排序算法實現(xiàn)

    這篇文章主要介紹了Java排序算法中的快速排序算法實現(xiàn),通過一趟排序?qū)⒁判虻臄?shù)據(jù)分割成獨立的兩部分,其中一部分的所有數(shù)據(jù)都比另外一部分的所有數(shù)據(jù)都要小,然后再按此方法對這兩部分數(shù)據(jù)分別進行快速排序,需要的朋友可以參考下
    2023-12-12
  • Spring?Batch批處理框架操作指南

    Spring?Batch批處理框架操作指南

    Spring?Batch?是?Spring?提供的一個數(shù)據(jù)處理框架。企業(yè)域中的許多應(yīng)用程序需要批量處理才能在關(guān)鍵任務(wù)環(huán)境中執(zhí)行業(yè)務(wù)操作,這篇文章主要介紹了Spring?Batch批處理框架操作指南,需要的朋友可以參考下
    2022-07-07

最新評論

云龙县| 承德市| 富宁县| 筠连县| 门源| 巴南区| 泾源县| 伊吾县| 西盟| 西丰县| 永新县| 义马市| 台东市| 芮城县| 阿尔山市| 安顺市| 中山市| 嘉禾县| 泉州市| 浙江省| 抚州市| 黄浦区| 北辰区| 隆子县| 蓬莱市| 兴国县| 清河县| 古蔺县| 黄浦区| 历史| 西丰县| 吕梁市| 长丰县| 东乌珠穆沁旗| 蕲春县| 永吉县| 盈江县| 调兵山市| 通化市| 台前县| 亚东县|