SpringMVC框架 第4章 處理請(qǐng)求數(shù)據(jù)
第4章?處理請(qǐng)求數(shù)據(jù)
4.1請(qǐng)求處理方法簽名
? 1)? Spring MVC 通過分析處理方法的簽名,HTTP請(qǐng)求信息綁定到處理方法的相應(yīng)人參中。
? 2)? Spring MVC 對(duì)控制器處理方法簽名的限制是很寬松的,幾乎可以按喜歡的任何方式對(duì)方法進(jìn)行簽名。
e```````````````````````````````````````````````````````````````````````````````
4.5 使用POJO作為參數(shù)
? 4)? Spring MVC 框架會(huì)將 HTTP 請(qǐng)求的信息綁定到相應(yīng)的方法入?yún)⒅?,并根?jù)方法的返回值類型做出相應(yīng)的后續(xù)處理。
4.2 @RequestParam注解
1)在處理方法入?yún)⑻幨褂?@RequestParam 可以把請(qǐng)求參數(shù)傳遞給請(qǐng)求方法
2)value:參數(shù)名
3)required:是否必須。默認(rèn)為 true, 表示請(qǐng)求參數(shù)中必須包含對(duì)應(yīng)的參數(shù),若不存在,將拋出異常
4)defaultValue: 默認(rèn)值,當(dāng)沒有傳遞參數(shù)時(shí)使用該值
4.2.1 實(shí)驗(yàn)代碼
? 1)? 增加控制器方法
4.3 @RequestHeader 注解
? 1 )? 使用 @RequestHeader 綁定請(qǐng)求報(bào)頭的屬性值
? ?2)? 請(qǐng)求頭包含了若干個(gè)屬性,服務(wù)器可據(jù)此獲知客戶端的信息,通過 @RequestHeader 即
- 可將請(qǐng)求頭中的屬性值綁定到處理方法的入?yún)⒅?/b>
4.3.1 實(shí)驗(yàn)代碼
4.4 @CookieValue 注解
? 1)? 使用 @CookieValue 綁定請(qǐng)求中的 Cookie 值
? 2)? @CookieValue 可讓處理方法入?yún)⒔壎硞€(gè) Cookie 值
4.4.1實(shí)驗(yàn)代碼
? 1)? 增加控制器方法
/
4.5 使用POJO作為參數(shù)?
? 1)? 使用 POJO 對(duì)象綁定請(qǐng)求參數(shù)值
? 2)? Spring MVC 會(huì)按請(qǐng)求參數(shù)名和 POJO 屬性名進(jìn)行自動(dòng)匹配,自動(dòng)為該對(duì)象填充屬性值。支持級(jí)聯(lián)屬性。如:deptId、dept.address.tel 等
? 4.5.1實(shí)驗(yàn)代碼
? 1)? 增加控制器方法、表單頁(yè)面
? 4)? 如果中文有亂碼,需要配置字符編碼過濾器,且配置其他過濾器之前,
如(HiddenHttpMethodFilter),否則不起作用。(思考method=”get”請(qǐng)求的亂碼問題怎么解決的)
4.6 使用Servlet原生API作為參數(shù)
? 1)? MVC 的 Handler 方法可以接受哪些 ServletAPI 類型的參數(shù)
- HttpServletRequest
- HttpServletResponse
- HttpSession
- security.Principal
- Locale
- InputStream
- OutputStream
- Reader
- Writer
? 2)? 源碼參考:AnnotationMethodHandlerAdapterL866
? 3)?
4.6.1 實(shí)驗(yàn)代碼