javascript
03-SpringMVC-获得用户请求数据
一、處理requet uri 部分:@PathVariable
@PathVariable是Spring3.0新增的功能
通過@PathVariable可以將URL中占位符參數綁定到控制器處理方法的傳入參數中。源碼如下
? ??
URL中的{xxx}點位符,通過@PathVariable("xxx")綁定到操作方法中的傳入參數
1、測試
控制器
請求
2、總結
@RequestMapping("/testPathVariable/{id}")也可以放在類上面,如下所示
? ??? ??那么它對應的請求:/owers/1/pets/2
上面代碼把URI template 中變量 ownerId的值和petId的值,綁定到方法的參數上。若方法參數名稱和需要綁定的uri template中變量名稱不一致,需要在@PathVariable("name")指定uri template中的名稱。
二、處理request header部分@RequestHeader, @CookieValue
1、@RequestHeader
1.1 知識點
請求頭,包含了若干屬性,服務器可據此獲知客戶端的信息(可以通過firebug來查看)
? ??
通過@RequestHeader即可將請求頭的屬性值綁定到處理方法的傳入參數中。源碼如下
? ??
1.2 測試
控制器類
請求
2、使用@CookieValue綁定請求中的Cookie值
2.1、知識點
查看Cookie
? ??? ??
@CookieValue可以處理方法傳入綁定某個Cookie值
2.2 測試
測試類
請求
三、處理request body部分的注解:@RequestParam, ?使用POJO對象綁定請求參數值;
1、使用@RequestParam綁定請求參數值
1.1 知識點
? 源代碼
? ??? ??
在處理方法的傳入參數處,使用@RequestParam可以把請求參數傳遞給方法
value:參數名
required:是否必須,默認為true,表示參數中必須包含對應的參數,若不存在,將拋出異常。
defaultValue:請求參數的默認值
1.2、測試
控制器類
請求
2、使用POJO對象綁定請求參數值
2.1、 知識點
SpringMVC會按請求參數名和POJO屬性名進行自動匹配,自動為該對象填充屬性值
支持級聯屬性。如dept.deptId、dept.address.tel
2.2 、測試
bean
控制器
請求
2.3 總結
如果請求的表單參數中不存在pojo對象中的某個域名稱的項目,則綁定后pojo該屬性為null。?
如果請求的表單參數中存在pojo對象中沒有包含的域的項目,則綁定后該參數丟失。?
如果表單項目的數據會自動從String轉換為相應pojo的域類型。但如果類型無法轉換,則報錯。如果我輸入age為dafsdfa,那么報錯。
四、使用servlet api對象作為入參
1、使用servlet api對象作為入參
1.1、知識點
使用servlet api類作為入參時,spring mvc會自動將web層對應的servlet API對象傳遞給處理方法入參,處理方法入參可同時使用其它符合要求的入參,位置順序無特殊要求。
如果處理方法自行使用HttpServletResponse返回響應,則處理方法返回值需設置成void.
Spring mvc在org.springframework.web.context.request包下提供了若干個可代理Servlet原生API類的接口
? ??? ??
1.2 測試
控制器
請求
1.3 總結
? ??可以使用Servlet原生的Api作為目標方法的參數,具體支持以下類型
HttpServletRequest
HttpServletResponse
HttpSession
Java.security.Principal
InputStream
OutputStream
Reader
Writer
關注我們
? ??師享空間的宗旨是分享知識,傳播價值。關注我們,及時獲得更多信息。
? ??如果您對我們的成果表示認同并且覺得對你有所幫助,歡迎您對我們捐贈^_^。
? ?????
轉載于:https://blog.51cto.com/imentors/1720552
總結
以上是生活随笔為你收集整理的03-SpringMVC-获得用户请求数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 纹理mag filter不能取GL_XX
- 下一篇: 值传递、指针传递、引用传递的区别