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