欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java SpringMVC的@RequestMapping注解使用及說明

 更新時(shí)間:2024年04月30日 09:56:19   作者:鴨鴨老板  
這篇文章主要介紹了Java SpringMVC的@RequestMapping注解使用及說明,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

一、@RequestMapping注解功能

@RequestMapping注解的作用就是將請求和處理請求的控制器方法關(guān)聯(lián)起來,建立映射關(guān)系。

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

原因就是這個(gè)映射關(guān)系是唯一的,但在工程中這個(gè)是重復(fù)的。

二、@RequestMapping注解位置

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

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

@Controller
//標(biāo)識在類上主要用于模塊間的控制
@RequestMapping("/hello")
public class TestController01 {
    @RequestMapping("/success")
    public String success(){
        return "success";
    }
 }

index.html頁面

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>首頁</h1>
<a th:href="@{/hello/success}">訪問success頁面</a>
</body>
</html>

三、@RequestMapping注解的value屬性

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

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

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

測試代碼:

@Controller
public class TestController01 {
    @RequestMapping(value = {"hello","test"})
    public String success(){
        return "success";
    }
 }
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>首頁</h1>
<a th:href="@{/hello}">訪問success頁面</a><br>
<a th:href="@{/test}">訪問success頁面</a>
</body>
</html>

四、@RequestMapping注解的method屬性

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

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

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

在默認(rèn)請求方式下的post,get都能請求成功

controller層代碼不變。

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>首頁</h1>
<form th:action="@{/hello}" method="post">
    <input type="submit" value="在默認(rèn)方式下測試post">
</form>
<form th:action="@{/test}" method="get">
    <input type="submit" value="在默認(rèn)方式下測試get">
</form>
</body>
</html>

指定使用get請求:

@Controller
public class TestController01 {
    @RequestMapping(value = {"hello","test"},
                    method = {RequestMethod.GET})
    public String success(){
        return "success";
    }
 }

當(dāng)訪問post請求時(shí)報(bào)錯(cuò)

根據(jù)需要可以設(shè)置多種請求方式 

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

處理get請求的映射使用GetMapping,處理post請求的映射使用PostMapping,處理put請求的映射使用PutMapping,處理delete請求的映射使用DeleteMapping。

 @GetMapping("/test")
    public String getSuccess(){
        return "success";
    }

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

目前瀏覽器只支持get和post請求,若from表單在提交時(shí),使用method設(shè)置其他請求方式,則都按默認(rèn)請求方式get處理。

若要發(fā)送put和delete請求,則需要通過Spring提供的過濾器HiddenHttpMethodFilter。

 五、@RequestMapping注解的params屬性

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

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

  • "param":要求請求映射所匹配的請求必須攜帶param請求參數(shù)。
  • "!param":要求請求映射所匹配的請求不能攜帶param請求參數(shù)。
  • "param=value":要求請求映射所匹配的請求必須攜帶param請求參數(shù)且param=value。
  • "param!=value":要求請求映射所匹配的請求必須攜帶param請求參數(shù)且param!=value。
 @RequestMapping(value = "/test2",
                    params = {"name=張三","password=123456"})
    public String success(){
        return "success";
    }
<a th:href="@{/test2(name='張三',password=123456)}">攜帶params訪問success頁面</a>

當(dāng)傳入?yún)?shù)匹配不上時(shí)就會報(bào)瀏覽器400錯(cuò)誤:

六、@RequestMapping注解的headers屬性

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

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

  • “header”:要求請求映射所匹配的請求必須攜帶header請求頭信息。
  • “!header”:要求請求映射所匹配的請求不能攜帶header請求頭信息。
  • “header”:要求請求映射所匹配的請求必須攜帶header請求頭信息且header=value。
  • “header”:要求請求映射所匹配的請求必須攜帶header請求頭信息且header!=value。

若當(dāng)前請求未滿足@RequestMapping注解的value和method屬性,但是不滿足headers屬性,頁面顯示404錯(cuò)誤。

    @RequestMapping(value = "/test2",
                    params = {"name=張三","password=123456"},
                    headers = {"Host=localhost:8081"})
    public String success(){
        return "success";
    }
<a th:href="@{/test2(name='張三',password=123456)}">攜帶params訪問success頁面</a>

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringCloud OpenFeign自定義結(jié)果解碼器方式

    SpringCloud OpenFeign自定義結(jié)果解碼器方式

    這篇文章主要介紹了SpringCloud OpenFeign自定義結(jié)果解碼器方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • springboot配置flyway(入門級別教程)

    springboot配置flyway(入門級別教程)

    本文介紹了springboot配置flyway,主要介紹基于SpringBoot集成flyway來管理數(shù)據(jù)庫的變更,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • java制作復(fù)制文件工具代碼分享

    java制作復(fù)制文件工具代碼分享

    如果目標(biāo)位置沒有同名文件,則直接拷貝過去;如果目標(biāo)位置已有同名文件,則比對文件的最后修改日期,來進(jìn)行覆蓋或者忽略。程序會在可以在復(fù)制過程中自動創(chuàng)建目錄,并生成log文件,創(chuàng)建了哪些目錄、文件,覆蓋了哪些文件、跳過了哪些文件,文件的時(shí)間、位置等信息都一目了然
    2014-01-01
  • 高價(jià)值Java多線程面試題分析

    高價(jià)值Java多線程面試題分析

    Java?給多線程編程提供了內(nèi)置的支持。一條線程指的是進(jìn)程中一個(gè)單一順序的控制流,一個(gè)進(jìn)程中可以并發(fā)多個(gè)線程,每條線程并行執(zhí)行不同的任務(wù)。多線程是多任務(wù)的一種特別的形式,但多線程使用了更小的資源開銷
    2022-03-03
  • 自己動手編寫一個(gè)Mybatis插件之Mybatis脫敏插件

    自己動手編寫一個(gè)Mybatis插件之Mybatis脫敏插件

    這篇文章主要介紹了自己動手編寫一個(gè)Mybatis插件之Mybatis脫敏插件,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • java實(shí)現(xiàn)在線聊天系統(tǒng)

    java實(shí)現(xiàn)在線聊天系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)在線聊天系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • 詳解SpringBoot下文件上傳與下載的實(shí)現(xiàn)

    詳解SpringBoot下文件上傳與下載的實(shí)現(xiàn)

    這篇文章主要介紹了SpringBoot下文件上傳與下載的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • java中對象和JSON格式的轉(zhuǎn)換方法代碼

    java中對象和JSON格式的轉(zhuǎn)換方法代碼

    JSON格式可以輕松地以面向?qū)ο蟮姆绞睫D(zhuǎn)換為Java對象,下面這篇文章主要給大家介紹了關(guān)于java中對象和JSON格式的轉(zhuǎn)換方法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • Spring Boot打包部署和環(huán)境配置詳解

    Spring Boot打包部署和環(huán)境配置詳解

    這篇文章主要介紹了Spring Boot打包部署和環(huán)境配置詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • javaweb 國際化:DateFormat,NumberFormat,MessageFormat,ResourceBundle的使用

    javaweb 國際化:DateFormat,NumberFormat,MessageFormat,ResourceBu

    本文主要介紹javaWEB國際化的知識,這里整理了詳細(xì)的資料及實(shí)現(xiàn)代碼,有興趣的小伙伴可以參考下
    2016-09-09

最新評論