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

springboot項目中后端接收前端傳參的方法示例詳解

 更新時間:2023年06月13日 10:43:01   作者:Bruce1801  
這篇文章主要介紹了springboot項目中一些后端接收前端傳參的方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

先創(chuàng)建一個springboot項目,并在pom文件中添加web依賴:

<dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
</dependency>

創(chuàng)建user對象:

public class User {
    private String name;
    private Integer age;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

創(chuàng)建一個controller:

@RestController
@RequestMapping("/store")
public class TestController {
}

1、java方法入?yún)⒗锩媸裁醋⒔舛紱]有

/**
     * 第一種:java方法入?yún)⒗锩媸裁醋⒔舛紱]有
     * */
    @RequestMapping("/noAnnotation")
    public String noAnnotation(User user){
        return user.toString();
    }

結(jié)果

適用于:請求參數(shù)比較少
缺點:請求參數(shù)比較多的時候,可能會丟參數(shù),因為get請求有長度限制。

如果參數(shù)重復(fù)了,比如:http://localhost:8080/store/noAnnotation?age=18&age=20&name=yuanhaoz,參數(shù)中age有兩個,一個等于18,另一個等于20,如果是int類型的則取最先聲明的那個;如果是String類型的,則會疊加

2、@PathVariable這種方式接收URL路徑參數(shù)作為參數(shù)

/**
     * 第二種:不使用?&來拼接參數(shù)
     * */
    @RequestMapping("/havaPathVariable/{name}/{age}")
    public String havaPathVariable(@PathVariable(value = "name")String name, @PathVariable(value = "age")int age ){
        return name+age;
    }

@PathVariable根據(jù)value將url中的參數(shù)取出來

結(jié)果:

適用于:參數(shù)比較少,以及動態(tài)接口情況

如何改成參數(shù)非必傳:
不僅要在@PathVariable()中加required = false,還要設(shè)置多個url path,這是因為url要求帶參,屬于REST參數(shù)。

結(jié)果:

如果只設(shè)置required = false話,是無法請求的。

3、@RequestBody這種方式接收前端發(fā)送過來的請求體

/**
     * 第三種:@RequestBody
     * */
    @RequestMapping("/haveRequestBody")
    public String haveRequestBody(@RequestBody User user){
        return user.toString();
    }

結(jié)果:

這個注解會從http請求的body當(dāng)中拿到j(luò)son,并且反序列化成java對象
適用于:請求參數(shù)非常多(因為body沒有長度限制)
如果參數(shù)重復(fù)了,無論什么類型取聲明的最后一個

解析list怎么寫
body:

controller:

解析嵌套對象怎么寫
body:
在json中的每個對象里添加一個phone對象

創(chuàng)建phone對象(可以根據(jù)json中的phone對象創(chuàng)建所有字段,也可設(shè)置部分字段)

public class Phone {
    private String name;
    private String code;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    @Override
    public String toString() {
        return "Phone{" +
                "name='" + name + '\'' +
                ", code='" + code + '\'' +
                '}';
    }
}

User中要添加與json中對應(yīng)的對象,才會將json中的嵌套對象解析出來。
在user對象中添加phone,并修改tostring方法;

controller:

結(jié)果:

4、RestFul風(fēng)格 概念

Restful就是一個資源定位及資源操作的風(fēng)格。不是標(biāo)準(zhǔn)也不是協(xié)議,只是一種風(fēng)格?;谶@個風(fēng)格設(shè)計的軟件可以更簡潔,更有層次,更易于實現(xiàn)緩存等機制。

功能

資源:互聯(lián)網(wǎng)所有的事物都可以被抽象為資源
資源操作:使用POST、DELETE、PUT、GET,使用不同方法對資源進行操作。
分別對應(yīng) 添加、 刪除、修改、查詢。
傳統(tǒng)方式操作資源:通過不同的參數(shù)來實現(xiàn)不同的效果!方法單一,post 和 get
http://127.0.0.1/item/queryItem.action?id=1 查詢,GET
http://127.0.0.1/item/saveItem.action 新增,POST
http://127.0.0.1/item/updateItem.action 更新,POST
http://127.0.0.1/item/deleteItem.action?id=1 刪除,GET或POST
使用RestFul操作資源:可以通過不同的請求方式來實現(xiàn)不同的效果!如下:請求地址一樣,但是功能可以不同!
http://127.0.0.1/item/1 查詢,GET
http://127.0.0.1/item 新增,POST
http://127.0.0.1/item 更新,PUT
http://127.0.0.1/item/1 刪除,DELETE
相比于傳統(tǒng)方式使用鏈接來訪問請求,Resful可以通過使用通過不同的請求方式來達到不同的效果

基本使用

    @RequestMapping("/noAnnotation",method = {RequestMethod.GET})
    public String noAnnotation(User user){
        return user.toString();
    }

也可通過將RequestMapping替換為:

@GetMapping
@PostMapping
@PutMapping
@DeleteMapping
@PatchMapping

例如:

    @GetMapping("/noAnnotation")
    public String noAnnotation(User user){
        return user.toString();
    }

注:所有的地址欄請求默認都會是 HTTP GET 類型的。

到此這篇關(guān)于springboot項目中一些后端接收前端傳參的方法的文章就介紹到這了,更多相關(guān)springboot后端接收前端傳參內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解spring-boot actuator(監(jiān)控)配置和使用

    詳解spring-boot actuator(監(jiān)控)配置和使用

    本篇文章主要介紹了spring-boot actuator(監(jiān)控)配置和使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • Java中GC與四種引用的關(guān)系詳解

    Java中GC與四種引用的關(guān)系詳解

    這篇文章主要介紹了Java中GC與四種引用的關(guān)系詳解,Java 中一共有 4 種類型的引用 : StrongReference、 SoftReference、 WeakReference 以及 PhantomReference這 4 種類型的引用與 GC 有著密切的關(guān)系, 讓我們逐一來看它們的定義和使用場景,需要的朋友可以參考下
    2023-09-09
  • springmvc實現(xiàn)跨服務(wù)器文件上傳功能

    springmvc實現(xiàn)跨服務(wù)器文件上傳功能

    這篇文章主要為大家詳細介紹了springmvc實現(xiàn)跨服務(wù)器文件上傳功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • 詳解springboot+atomikos+druid?數(shù)據(jù)庫連接失效分析

    詳解springboot+atomikos+druid?數(shù)據(jù)庫連接失效分析

    本文主要介紹了springboot+atomikos+druid?數(shù)據(jù)庫連接失效分析,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • 你所不知道的Spring自動注入詳解

    你所不知道的Spring自動注入詳解

    這篇文章主要給大家介紹了關(guān)于你所不知道的Spring自動注入的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • SpringBoot配置Hikari數(shù)據(jù)庫連接池的詳細步驟

    SpringBoot配置Hikari數(shù)據(jù)庫連接池的詳細步驟

    Spring Boot是一個開源的Java框架,它簡化了基于Spring的應(yīng)用程序的開發(fā)和部署,HikariCP是一個高性能的Java數(shù)據(jù)庫連接池,被廣泛應(yīng)用于Java開發(fā)領(lǐng)域,它是目前最快和最輕量級的連接池之一,本文介紹了SpringBoot配置Hikari數(shù)據(jù)庫連接池的詳細步驟,需要的朋友可以參考下
    2024-08-08
  • SpringBoot搭配AOP實現(xiàn)自定義注解

    SpringBoot搭配AOP實現(xiàn)自定義注解

    這篇文章主要為大家詳細介紹了SpringBoot如何搭配AOP實現(xiàn)自定義注解,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-12-12
  • 如何使用java寫Student類的功能

    如何使用java寫Student類的功能

    這篇文章主要介紹了如何使用java寫Student類的功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • Spring線程池ThreadPoolTaskExecutor的用法及說明

    Spring線程池ThreadPoolTaskExecutor的用法及說明

    這篇文章主要介紹了Spring線程池ThreadPoolTaskExecutor的用法及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Java 日期格式y(tǒng)yyy-MM-dd與YYYY-MM-dd區(qū)別

    Java 日期格式y(tǒng)yyy-MM-dd與YYYY-MM-dd區(qū)別

    我們在java中常用的規(guī)范格式為:
    yyyy-MM-dd HH:mm:ss:SSS 24小時制或yyyy-MM-dd hh:mm:ss:SSS 12小時制,本文就來介紹一下兩者的區(qū)別,感興趣的可以了解一下
    2023-11-11

最新評論