本篇博客主要學習Controller 層常用的註解。
一、 原生Servlet API 使用
在導入依賴包後,只需要在控制器中的方法中添加參數 :HttpServletRequest 和 HttpServletResponse
@RequestMapping("/servletApi")
public String servletApi(HttpServletRequest request, HttpServletResponse response) {
String name = request.getParameter("name");
String age = request.getParameter("age");
System.out.println("用戶名:" + name + " , 年齡:" + age);
String method = request.getMethod();
System.out.println("請求方式: "+ method);
return "success";
}
二、 @RequestParam 註解
可以給請求中的參數名設置別名並給控制器中的形參賦值
<a href="/param?name=姚明&password=123456" style="color: darkmagenta;">SpringMVC</a>
@RequestMapping("/param")
public String sayHello(@RequestParam(value = "name") String userName, String password) {
System.out.println("用戶名:" + userName + " , 密碼:" + password);
return "success";
}
三、 @RequestBody 註解
@RequestBody接收的是一個Json對象的字符串,而不是一個Json對象。
前端提交的form表單
<form action="/requestBody" method="post">
姓名:
<input type="text" name="name">
<br>
年齡:
<input type="text" name="age"><br>
出生日期:
<input type="text" name="birthday"><br>
<input type="submit" value="提交">
</form>
後端方法:
@RequestMapping("/requestBody")
public String requestBody(@RequestBody String user) {
System.out.println(" 獲取請求體內容 json字符串: "+user);
return "success";
}
運行結果:
獲取請求體內容 json字符串: name=admin_host&age=66&birthday=121
四、 @PathVariable 註解
用於綁定url中的佔位符。
<a href="/pathVaribale/姚明" style="color: darkmagenta;">pathVaribale</a>
@RequestMapping("/pathVaribale/{name}")
public String pathVaribale(@PathVariable("name") String name) {
System.out.println(" 路徑傳值: "+name);
return "success";
}
五、 @RequestHeader 註解
@RequestHeader 獲取請求頭文件的信息
1、value值:對應頭文件中的鍵
2、defaultValue 該參數的默認值
當鍵值沒有傳輸時將使用這個參數進行賦值
3、required:是否必須。默認爲 true, 表示請求參數中必須包含對應
的參數,若不存在,將拋出異常
<a href="/requestHeader" style="color: darkmagenta;">requestHeader</a>
@RequestMapping("/requestHeader")
public String requestHeader(@RequestHeader("Accept-Language") String header) {
System.out.println(" 獲取請求頭的值: "+ header);
return "success";
}
獲取請求頭的值: zh-CN,zh;q=0.9
六、 @CookieValue 註解
@CookieValue方便我們獲取指定Cookie數據。
<a href="/cookieValueTest" style="color: darkmagenta;">cookieValueTest</a>
@RequestMapping("/cookieValueTest")
public String cookieValue(@CookieValue(value="JSESSIONID") String sessionId) {
System.out.println("通過@CookieValue獲得JSESSIONID:"+sessionId);
return "success";
}
如有不當之處請多多指教,如對你有所幫助,請留言或點贊予以支持,謝謝!