亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

SpringMVC請(qǐng)求數(shù)據(jù)詳解講解

 更新時(shí)間:2022年07月28日 08:49:43   作者:·~簡(jiǎn)單就好  
Spring MVC 是 Spring 提供的一個(gè)基于 MVC 設(shè)計(jì)模式的輕量級(jí) Web 開(kāi)發(fā)框架,本質(zhì)上相當(dāng)于 Servlet,Spring MVC 角色劃分清晰,分工明細(xì),本章來(lái)講解SpringMVC如何請(qǐng)求數(shù)據(jù)

一、RequestMapping注解

RequestMapping注解的作用是建立請(qǐng)求URL和處理方法之間的對(duì)應(yīng)關(guān)系

RequestMapping注解可以作用在方法和類(lèi)上

  • 作用在類(lèi)上:第一級(jí)的訪(fǎng)問(wèn)目錄
  • 作用在方法上:第二級(jí)的訪(fǎng)問(wèn)目錄
  • 細(xì)節(jié):路徑可以不編寫(xiě) / 表示應(yīng)用的根目錄開(kāi)始

1、RequestMapping的屬性

path 指定請(qǐng)求路徑的url

value value屬性和path屬性是一樣的

mthod 指定該方法的請(qǐng)求方式

@Controller
@RequestMapping(path = "/role") // 一級(jí)請(qǐng)求路徑
public class RoleController {
    /**
     * /role/save
     * method="當(dāng)前方法允許請(qǐng)求方式能訪(fǎng)問(wèn)"
     * params="請(qǐng)求路徑上傳參數(shù)"
     * @return
     */
   @RequestMapping(path = "/save",method = {RequestMethod.GET})
    public String save(){
        System.out.println("保存角色...");
        return "suc";
    }
    @RequestMapping(value = "/delete")
    public String delete(){
        System.out.println("刪除角色...");
        return "suc";
    }
}

2、RequestMapping的請(qǐng)求參數(shù)綁定

(1). 綁定機(jī)制

  • 表單提交的數(shù)據(jù)都是k=v格式的 username=haha&password=123
  • SpringMVC的參數(shù)綁定過(guò)程是把表單提交的請(qǐng)求參數(shù),作為控制器中方法的參數(shù)進(jìn)行綁定的
  • 要求:提交表單的name和參數(shù)的名稱(chēng)是相同的

(2). 支持的數(shù)據(jù)類(lèi)型

  • 基本數(shù)據(jù)類(lèi)型和字符串類(lèi)型
  • 實(shí)體類(lèi)型(JavaBean)
  • 集合數(shù)據(jù)類(lèi)型(List、map集合等)

? 基本數(shù)據(jù)類(lèi)型和字符串類(lèi)型

  • 提交表單的name和參數(shù)的名稱(chēng)是相同的
  • 區(qū)分大小寫(xiě)

? 實(shí)體類(lèi)型(JavaBean)

  • 提交表單的name和JavaBean中的屬性名稱(chēng)需要一致
  • 如果一個(gè)JavaBean類(lèi)中包含其他的引用類(lèi)型,那么表單的name屬性需要編寫(xiě)成:對(duì)象.屬性 例如:address.name
  • 給集合屬性數(shù)據(jù)封裝
  • JSP頁(yè)面編寫(xiě)方式:list[0].屬性

二、RequestParam注解

作用:把請(qǐng)求中的指定名稱(chēng)的參數(shù)傳遞給控制器中的形參賦值

屬性

  • ? value:請(qǐng)求參數(shù)中的名稱(chēng)
  • ? required:請(qǐng)求參數(shù)中是否必須提供此參數(shù),默認(rèn)值是true,必須提供

代碼如下

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
@Controller
@RequestMapping("/dept")
public class DeptController {
    @RequestMapping("/save")
    public String save(@RequestParam(value = "username",required = false) String name){
        System.out.println(name);
        return "suc";
    }
}

三、RequestBody注解

作用:用于獲取請(qǐng)求體的內(nèi)容(注意:get方法不可以):將前端的json對(duì)象轉(zhuǎn)換成javabean實(shí)體對(duì)象

屬性

required:是否必須有請(qǐng)求體,默認(rèn)值是true

代碼如下

    @RequestMapping("/save2")
    public String save2(@RequestBody Student student){
        System.out.println(body);
        return "suc";
    }

四、RestFul風(fēng)格

1、@PathVariable注解

url:

http://localhost:8080/SpringMVC/rest/commit.do/1/1

controller接收:用占位符的形式截取

//映射訪(fǎng)問(wèn)路徑
@RequestMapping("/commit.do/{p1}/{p2}")
public String index(@PathVariable int p1, @PathVariable String p2, Model model){
    String result = p1+p2;
    //Spring MVC會(huì)自動(dòng)實(shí)例化一個(gè)Model對(duì)象用于向視圖中傳值
    model.addAttribute("msg", "結(jié)果:"+result);
    //返回視圖位置
    return "suc";
}

2、使用method屬性指定請(qǐng)求類(lèi)型

用于約束請(qǐng)求的類(lèi)型,可以收窄請(qǐng)求范圍。指定請(qǐng)求謂詞的類(lèi)型如GET, POST, HEAD, OPTIONS, PUT, PATCH, DELETE, TRACE等

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

相關(guān)文章

  • Java基礎(chǔ)夯實(shí)之線(xiàn)程問(wèn)題全面解析

    Java基礎(chǔ)夯實(shí)之線(xiàn)程問(wèn)題全面解析

    操作系統(tǒng)支持多個(gè)應(yīng)用程序并發(fā)執(zhí)行,每個(gè)應(yīng)用程序至少對(duì)應(yīng)一個(gè)進(jìn)程?。進(jìn)程是資源分配的最小單位,而線(xiàn)程是CPU調(diào)度的最小單位。本文將帶大家全面解析線(xiàn)程相關(guān)問(wèn)題,感興趣的可以了解一下
    2022-11-11
  • Mybatis查詢(xún)時(shí)數(shù)據(jù)丟失的問(wèn)題及解決

    Mybatis查詢(xún)時(shí)數(shù)據(jù)丟失的問(wèn)題及解決

    Mybatis查詢(xún)時(shí)數(shù)據(jù)丟失的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • spring單元測(cè)試下模擬rabbitmq的實(shí)現(xiàn)

    spring單元測(cè)試下模擬rabbitmq的實(shí)現(xiàn)

    這篇文章主要介紹了spring單元測(cè)試下模擬rabbitmq的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • SpringCloud Gateway網(wǎng)關(guān)功能介紹與使用

    SpringCloud Gateway網(wǎng)關(guān)功能介紹與使用

    SpringCloud Gateway 是 Spring Cloud 的一個(gè)全新項(xiàng)目,它旨在為微服務(wù)架構(gòu)提供一種簡(jiǎn)單有效的統(tǒng)一的 API 路由管理方式。這篇文章主要介紹了SpringCloud Gateway網(wǎng)關(guān)作用,需要的朋友可以參考下
    2022-12-12
  • javaWeb傳收參數(shù)方式總結(jié)示例分析

    javaWeb傳收參數(shù)方式總結(jié)示例分析

    這篇文章主要為大家介紹了javaWeb傳收參數(shù)方式總結(jié)示例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • Java之進(jìn)程和線(xiàn)程的區(qū)別

    Java之進(jìn)程和線(xiàn)程的區(qū)別

    這篇文章主要介紹了進(jìn)程與線(xiàn)程的區(qū)別,線(xiàn)程具有許多傳統(tǒng)進(jìn)程所具有的特征,而把傳統(tǒng)的進(jìn)程稱(chēng)為重型進(jìn)程(Heavy—Weight Process),它相當(dāng)于只有一個(gè)線(xiàn)程的任務(wù),有感興趣的小伙伴可以參考閱讀本文
    2023-03-03
  • 淺析java 10中的var關(guān)鍵字用法

    淺析java 10中的var關(guān)鍵字用法

    2018年3月20日,Oracle發(fā)布java10。java10為java帶來(lái)了很多新特性。這篇文章主要介紹了Java 10 var關(guān)鍵字詳解和示例教程,需要的朋友可以參考下
    2018-10-10
  • Spring 注入static屬性值方式

    Spring 注入static屬性值方式

    文本介紹了Spring如何從屬性文件給static屬性注入值,在寫(xiě)一些與配置相關(guān)的工具類(lèi)時(shí)常用。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Java實(shí)現(xiàn)單詞倒序輸出

    Java實(shí)現(xiàn)單詞倒序輸出

    這篇文章主要介紹了Java實(shí)現(xiàn)單詞倒序輸出,幫助大家更好的理解和學(xué)習(xí)Java,感興趣的朋友可以了解下
    2020-08-08
  • 圖文詳解java內(nèi)存回收機(jī)制

    圖文詳解java內(nèi)存回收機(jī)制

    這篇文章主要以圖文結(jié)合的方式為大家詳細(xì)介紹了java內(nèi)存回收機(jī)制,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10

最新評(píng)論