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