基於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沒有任何限制