在SpringMVC中,控制器負責處理由DIspatchServlet接收並分發過來的請求。它把用戶請求的數據通過業務處理層封裝成一個Model,然後把該model返回給對應的View進行展示。 Controller無需繼承特定的類或實現特定的藉口。只需使用@Controller(@RestCont ...
在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沒有任何限制