SpringBoot Controller

来源:https://www.cnblogs.com/qiulimei/archive/2023/03/09/17201893.html
-Advertisement-
Play Games

SpringBoot Controller 控制器 SpringBoot提供了@Controller和@RestController兩種註解來標識此類負責接收和處理HTTP請求。 如果請求的是頁面和數據,使用@Controller註解即可;如果只是請求數據,則可以使用@RestController註 ...


SpringBoot Controller

控制器

  • SpringBoot提供了@Controller和@RestController兩種註解來標識此類負責接收和處理HTTP請求。

  • 如果請求的是頁面和數據,使用@Controller註解即可;如果只是請求數據,則可以使用@RestController註解。

@RestController的用法

  • 預設情況下,@RestController註解會將返回的對象數據轉換成JSON格式。

路由映射:控制器接收前端的請求

  • @RequestMapping註解主要負責URL的路由映射。它可以添加在Controller類或者具體的類方法上。

  • @RequestMapping(value="/xxx", method=RequestMethod.GET)等價於@GetMapping("/xxx")

參數傳遞

  • Get方式

@RestController //加上這個註解意味著這個類已經變成一個控制器了,可以接收客戶端的請求了
public class HelloController {

   // http://localhost:8080/hello?nickname=小白 單個參數
   // http://localhost:8080/hello?nickname=小白&phone=10086 多個參數情況
   @RequestMapping("/hello")                  //這個註解代表之後瀏覽器發起Get請求之後來訪問這個方法
   public String hello(String nickname){
       return "hello!"+nickname;
  }


}

上面這個方法的參數名要與前端請求的參數名稱一致。或者也可以不一致,但是要在方法頭裡面加上:

@RequestParam("nickname") //這個nickname與前端請求的參數名稱一致,然後後端方法的參數名稱可以任意。但是這種情況下參數一定要傳遞(也可以不傳遞,此時可寫成@RequestParam(value="nickname", required=false)),否則此方法將不會被訪問。前一種方式方法是可以被訪問到的。

@RestController //加上這個註解意味著這個類已經變成一個控制器了,可以接收客戶端的請求了
public class HelloController {

   // http://localhost:8080/hello?nickname=小白 單個參數
   // http://localhost:8080/hello?nickname=小白&phone=10086 多個參數情況
   @RequestMapping("/hello")                  //這個註解代表之後瀏覽器發起Get請求之後來訪問這個方法
   public String hello(@RequestParam("nickname") String nickname){
       return "hello!"+nickname;
  }
}
  • Post方式

method = RequestMethod.POST

如果前端傳遞的數據是json格式,那麼需要在方法頭中加上@RequestBody,如下:

傳參格式:(前後端參數名字及類型要一致)

{

"name": "zhangsan",

"pwd": "123"

}

@RequestMapping(value = "/postTest2", method = RequestMethod.POST)
   public String postTest2(@RequestBody User user){//註解在這裡!!!
       System.out.println(user.getName());
       System.out.println(user.getPwd());
       return "Post請求2";
  }

普通情況:前後端參數名要一致

@RequestMapping(value = "/postTest1", method = RequestMethod.POST)
   public String postTest1(User user){
       System.out.println(user.getName());
       System.out.println(user.getPwd());
       return "Post請求";
  }
 
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 定義 使用原型實例指定創建對象的種類,並且通過拷貝這些原型創建新的對象。原型模式是一種對象創建型模式 百科。 通俗的說就是原型模式是一種創建型設計模式,指定某個對象(通過某種方式)得到一個新的對象,在記憶體中擁有新的地址,得到的對象與原對象是是相互獨立的,即得到跟原對象一樣的對象 當我們需要兩個一模一 ...
  • 前端中介者模式(Mediator Pattern),用於將對象之間的通信解耦並集中管理。它通過引入一個中介者對象,將對象之間的交互轉移到中介者對象中,從而避免對象之間直接相互通信。 在前端開發中,中介者模式常常被用於管理複雜的用戶界面或組件之間的交互,比如 GUI 組件、聊天室、游戲等等。通過引入一 ...
  • 這篇文章主要描述如何解決消息重發的問題,目前主流的消息隊列產品都採用了At least once的服務質量,這就導致了很難避免消息重發的情況,我們可以將消費者業務邏輯設計成冪等服務來解決消息重發問題。 ...
  • 1. 減少記憶體使用 1.1. 減少堆記憶體的使用 1.1.1. 使用更少的記憶體意味著堆被填滿的頻率會降低,需要的GC周期會更少,其效果也可以成倍增強 1.1.2. 更少的新生代回收意味著對象的晉升年齡增加的頻率降低 1.1.3. 對象晉升到老年代的可能性也降低了 1.1.4. Full GC周期(或者 ...
  • Qt 學習筆記全系列傳送門: Qt 學習筆記 - 第一章 - 快速開始、信號與槽 Qt 學習筆記 - 第二章 - 添加圖片、佈局、界面切換 【本章】Qt 學習筆記 - 第三章 - Qt的三駕馬車之一 - 串口編程 + 程式打包成Windows軟體 1、創建項目 實現串口助手 創建 Qt Widget ...
  • find,grep,sed,awk find:常用在目錄下精確查找文件(最擅長找文件) grep:常用來做全局數據的查詢定位(最擅長文本過濾) sed:常用來做行數據增刪改查(最擅長取行) awk:常用來做列數據切分與提取(最擅長取列) 1.find【擅長在目錄下找文件】 find 命令用來在指定目 ...
  • 先看如下一個DEMO示例代碼:(其中doBatchGet被子類重寫了1次) public abstract class BaseDemoService<T> { public String batchGet(T... ints) { T one=ints[0]; System.out.println ...
  • 前置知識: Web 伺服器:可以指硬體上的,也可以指軟體上的。從硬體的角度來說, Web 伺服器指的就是一臺存儲了網路服務軟體的電腦;從軟體的角度來說, Web 伺服器指的是一種軟體,比如 Tomcat。 Servlet 容器:目前主流的 Servlet 容器軟體包括 Tomcat、Jetty、J... ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...