在RestController中獲取各種信息的方法


內容 獲取方法
URL中路徑的一部分 首先需要在RequestMapping做映射, 之后在方法中可以通過注解使用映射的變量
@GetMapping("/{id}")
public Student getStudent(@PathVariable("id") int id {}
可以寫多個)
POST方法傳遞過來的Json 給參數前加個@RequestBody注解, Spring會自動把POST的Request Body部分的Json轉成方法聲明的類。如果轉化失敗會返回4xx錯誤,表示請求參數有問題。
public Student updateOne(@RequestBody Student student)
POST方法傳遞的是表單數據 首先需要聲明傳入的是application/x-www-form-urlencoded的格式,可在RequestMapping增加consumes參數:
@PostMapping(value="/students",consumes=MediaType.APPLICATION_FORM_URLECODED_VALUE)
在方法上增加參數,參數使用@RequestParam注解即可
public Object insert(@RequestParam(value="name", required=false) String name)
凡是可以通過HTTPServletRequest.getParameter(String)方法取到的值,包含表單提交的、QueryString附帶的,都可以使用@RequestParam注解得到
默認request=true
QueryString的參數 使用@RequestParam注解, 通過參數獲得, 例:
public Object query(@RequestParam(value="page", required=false)int page)
Request Header 可以使用@RequestHeader注解獲取Request的頭信息, 例:
public ResultJson editCompany(@RequestHeader("user-agent") String userAgent)
注意: @RequestHeader后面的頭名字不區分大小寫, 但@RequestParam, @PathVariable等是區分大小寫的。
如果RequestHeader后面不寫參數, 會用后面的變量名替代。
獲取cookie值 使用@CookieValue注解,和其他類似,除非為了兼容老現有客戶端,新API里不建議使用cookie。
獲取當前的Request & Response 直接寫參數, 例
public Object doSomething(HttpServletRequest request, HttpServletResponse response)
獲取當前用戶 直接在方法上增加參數類型, 類型為:
org.springframework.security.core.Authentication, 例:
public Student deleteStudent(Authentication auth)參數auth內會儲存當前用戶信息。
文件上傳 首先要設置consumes為multipart/form-data
@PostMapping(value = "/files", consumes=MediaType.MULTIPART_FORM_DATA_VALUE)
在方法中寫參數:
public Map<String, Object> uploadFile(@RequestParam("file")MultipartFile file)
在方法中就可以直接使用MultipartFile中的流保存文件了。

以上整理自網易雲課堂的葛香東老師所授的課程


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM