SpringMVC_4.请求数据
請求數據
說明:
????????SpringMVC提供了從請求對象中獲取請求數據的?兩種?方式 :??自動獲取?和?手動獲取?.
注意 :
? ? ? ? ? ? ? ? ?備注:反射原理實現,所以無需把注入數據的對象裝入Spring容器
自動獲取
? ? ? ? 1.當請求參數名與處理方法參數名相同時,SpringMVC將請求中參數的值賦給方法的同名參數.
? ? ? ? 2.SpringMVC支持級聯屬性[復雜參數],將請求參數名與方法參數表示的對象的屬性名匹配,并進行賦值.
?補充:如果一級復合對象中還有復合對象,使用二級復合對象,要用一級符合對象名打點調用二級復合對象名,例如圖中:
dept.deptName? ? ? ? 3.若請求中不含與"處理方法參數"同名的參數時,SpringMVC將null作為處理方法的參數的值 [ null值無法轉為基本數據類型 ] .
注意(自動獲取和手動獲取都要注意):
因為null無法轉為基本數據類型,int,char...都屬于基本數據類型(點擊詳情)
如果方法參數中有基本數據類型參數,對應(基本數據類型)參數傳過去一個null值會報錯
所以在方法參數中用封裝類型代替基本數據類型,如int -?Integer , char -?Character【封裝類型可以賦 null 或原本類型值】
POST 請求編碼處理,配置編碼過濾器 :
說明:
? ? ? ? 1. 因為為了保證數據安全,一般都是POST方式提交,所以需要配置編碼過濾器,把請求來的數據轉換為utf-8格式
? ? ? ? 2. 編碼過濾器固定格式內容
? ? ? ? 3. 編碼過濾器配置在web.xml中,寫在<web-app>標簽下...
代碼:
?? ?<!-- 配置編碼過濾器,防止請求數據類型轉換失敗: 只對POST請求有效 --><filter><filter-name>CharacterEncodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>utf-8</param-value></init-param></filter><filter-mapping><filter-name>CharacterEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>補充:
? ? ? ? 1.地址欄中最大1024 字節的請求內容????????(也就是512中文)
? ? ? ? 2.編碼過濾器原本只對POST請求有轉碼效果,但是,在IDEA中因為IDEA的特性,對POST和GET請求都有效
手動獲取 :
說明 :
????????Spring提供了四種注解方式,編寫在方法參數類型前,將指定數據名的值賦給標注的方法參數.
備注 :
????????@RequestParam????????@RequestHeader????????@CookieValue????????@PathVariable
????????用法,格式和注釋的參數完全相同,區別在于獲得數據的來源不同
@RequestParam :
格式:
?? ?
說明:
| 屬性名 | 作用 |
| value | 將請求信息中指定參數名的值,賦給標注的參數 |
| defaultValue | 當請求信息中沒有提供指定參數或參數為空時,將默認值賦給標注的參數 |
| required | 請求中是否必須有指定的參數.默認為true且未設置默認值,當請求中無指定參數時將報錯 |
Servlet API類型參數:
????????若處理方法含有Servlet API類型參數,SpringMVC會自動向處理方法注入Servlet API參數值.
????????SpringMVC支持以下類型參數的注入.
格式:
@RequestMapping(value="/映射路徑") 權限 返回值 方法名(HttpServletRequest request,..){//方法體 }
?? ?說明:
?? ?當執行處理方法時,SpringMVC自動將Servlet相關對象傳遞給方法參數
? ? 此手動獲取方法和傳統的Servlet文件中獲取提交數據寫法一致,更方便的是還會被編碼過濾器過濾,省去了在Servlet文件中寫時還需寫這兩行代碼來進行轉碼:
response.setContentType("text/html;charset=UTF-8"); request.setCharacterEncoding("utf-8");? ? Writer對象獲取 [ response.getWriter ( ) ]
總結
以上是生活随笔為你收集整理的SpringMVC_4.请求数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: u怎么修复 如何修复u?
- 下一篇: 用javascript实现以下功能!_模