1. 程式人生 > 其它 >基於SpringBoot分層2開發web應用學習筆記之控制器的理解以及常見註解

基於SpringBoot分層2開發web應用學習筆記之控制器的理解以及常見註解

在SpringMVC中,控制器負責處理由DIspatchServlet接收並分發過來的請求。它把使用者請求的資料通過業務處理層封裝成一個Model,然後把該model返回給對應的View進行展示。

Controller無需繼承特定的類或實現特定的藉口。只需使用@Controller(@RestController)來標記一個控制器,然後用註解@RequestMapping定義URL請求和Controller方法之間的對映,這樣Controller就能被

訪問到。並且可以包含多個請求方法。

常用註解
1.@Controller

標記在類上,表示的是SpringMVC的controller物件。分發處理器將會掃描使用了該註解的類,並檢測其中的方法是否使用了RequestMapping

2.@RestController

等價於@Controller+@ResponseBody。直接返回字串,用來標註Rest風格的控制器類

3.RequestMapping

用來處理請求地址對映的註解,可用在類或方法上。如果用在類上,則表示類中的所有響應請求的方法都以該地址作為父路徑。

該註解有六個屬性:

  1.value:指定請求的地址
  2.method:指定請求的method型別--GET,POST,PUT,DELETE,PATCH,HEAD等
  3.consumes:消費訊息,指定處理請求的提交內容型別
  4.produces:生產訊息,指定返回的內容型別
  5.params:指定request中必須包含某些引數值才讓該方法處理請求
  6.headers:指定request中必須包含某些指定的header值才能讓該方法處理請求

4.@PathVariable:將請求URL中的模版變數對映到功能處理方法的引數上,即獲取URI中的變數作為引數。

將URL對映到方法

將URl(統一資源定位符)對映到方法,是通過註解@RequestMapping來處理的,URL對映其實就是用控制器定義訪問的URL路徑。使用者通過輸入路徑來訪問某個方法。

SpringBoot還提供了更簡潔的編寫,@GetMapping,@PostMapping,@DeleteMapping,@PutMapping分別表示處理get請求,post請求,delete請求,put請求。

簡單分析一下GET請求和POST請求的區別!!!

  1.GET可以在瀏覽器中回退,而POST訪問同一個地址時也是再次提交請求
  2.GET請求會被瀏覽器主動快取,而POST不會
  3.GET中的引數會被完整的儲存在瀏覽器的歷史記錄裡,而POST中的引數不會
  4.GET的引數是通過URL傳遞的,而POST中的引數是被放到request body中的
  5.GET只能接受ASCII字元,而POST沒有任何限制