SpringMVC框架 第4章 處理請求數(shù)據(jù)


4?處理請求數(shù)據(jù)

4.1請求處理方法簽名

? 1)? Spring MVC 通過分析處理方法的簽名,HTTP請求信息綁定到處理方法的相應(yīng)人參中。

? 2)? Spring MVC 對控制器處理方法簽名的限制是很寬松的,幾乎可以按喜歡的任何方式對方法進(jìn)行簽名。

e```````````````````````````````````````````````````````````````````````````````

4.5 使用POJO作為參數(shù)

? 4)? Spring MVC 框架會將 HTTP 請求的信息綁定到相應(yīng)的方法入?yún)⒅校⒏鶕?jù)方法的返回值類型做出相應(yīng)的后續(xù)處理。

4.2 @RequestParam注解

1)在處理方法入?yún)⑻幨褂?@RequestParam 可以把請求參數(shù)傳遞給請求方法

2)value:參數(shù)名

3)required:是否必須。默認(rèn)為 true, 表示請求參數(shù)中必須包含對應(yīng)的參數(shù),若不存在,將拋出異常

4)defaultValue: 默認(rèn)值,當(dāng)沒有傳遞參數(shù)時使用該值

4.2.1 實(shí)驗(yàn)代碼

? 1)? 增加控制器方法

4.3 @RequestHeader 注解

? 1 )? 使用 @RequestHeader 綁定請求報(bào)頭的屬性值

? ?2)? 請求頭包含了若干個屬性,服務(wù)器可據(jù)此獲知客戶端的信息,通過 @RequestHeader 即

  • 可將請求頭中的屬性值綁定到處理方法的入?yún)⒅?/b>

4.3.1 實(shí)驗(yàn)代碼

4.4 @CookieValue 注解

? 1)? 使用 @CookieValue 綁定請求中的 Cookie 值

? 2)? @CookieValue 可讓處理方法入?yún)⒔壎硞€ Cookie 值

4.4.1實(shí)驗(yàn)代碼

? 1)? 增加控制器方法

/

4.5 使用POJO作為參數(shù)?

? 1)? 使用 POJO 對象綁定請求參數(shù)值

? 2)? Spring MVC 會按請求參數(shù)名和 POJO 屬性名進(jìn)行自動匹配,自動為該對象填充屬性值。支持級聯(lián)屬性。如:deptId、dept.address.tel 等

? 4.5.1實(shí)驗(yàn)代碼

? 1)? 增加控制器方法、表單頁面

? 4)? 如果中文有亂碼,需要配置字符編碼過濾器,且配置其他過濾器之前,

如(HiddenHttpMethodFilter),否則不起作用。(思考method=”get”請求的亂碼問題怎么解決的)

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)代碼