日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

SpringMVC_4.请求数据

發布時間:2024/10/8 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringMVC_4.请求数据 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

請求數據

說明:

????????SpringMVC提供了從請求對象中獲取請求數據的?兩種?方式 :??自動獲取?和?手動獲取?.
注意 :

  • ????????若注入的數據亂碼或類型不匹配,會導致注入失敗.[性別亂碼,年齡非數字]
  • ????????被注入數據的對象,無需裝入Spring容器[無需@Component標注].
  • ? ? ? ? ? ? ? ? ?備注:反射原理實現,所以無需把注入數據的對象裝入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(從客戶端Cookie中獲得)
  • @PathVariable(從請求路徑中獲得)
  • Servlet API(傳統Servlet類方法中的寫法)
  • 備注 :

    ????????@RequestParam????????@RequestHeader????????@CookieValue????????@PathVariable

    ????????用法,格式和注釋的參數完全相同,區別在于獲得數據的來源不同

    @RequestParam :

    格式:
    ?? ?

    public 返回值 方法名(@RequestParam((參數列..) 參數類型 參名,..){//方法體 }


    說明:

  • ?? ?@RequestParam獲得請求中指定參數的值,賦給標注的方法參數.
  • ?? ?@RequestParam參數:
  • 屬性名作用
    value將請求信息中指定參數名的值,賦給標注的參數
    defaultValue當請求信息中沒有提供指定參數或參數為空時,將默認值賦給標注的參數
    required請求中是否必須有指定的參數.默認為true且未設置默認值,當請求中無指定參數時將報錯


    Servlet API類型參數:
    ????????若處理方法含有Servlet API類型參數,SpringMVC會自動向處理方法注入Servlet API參數值.

    ????????SpringMVC支持以下類型參數的注入.

  • HttpServletRequest
  • HttpServletResponse
  • HttpSession
  • java.security.Principal
  • Locale
  • InputStream
  • OutputStream
  • Reader
  • Writer
  • 格式:

    @RequestMapping(value="/映射路徑") 權限 返回值 方法名(HttpServletRequest request,..){//方法體 }


    ?? ?說明:

    ?? ?當執行處理方法時,SpringMVC自動將Servlet相關對象傳遞給方法參數

    ? ? 此手動獲取方法和傳統的Servlet文件中獲取提交數據寫法一致,更方便的是還會被編碼過濾器過濾,省去了在Servlet文件中寫時還需寫這兩行代碼來進行轉碼:

    response.setContentType("text/html;charset=UTF-8"); request.setCharacterEncoding("utf-8");

    ? ? Writer對象獲取 [ response.getWriter ( ) ]

    總結

    以上是生活随笔為你收集整理的SpringMVC_4.请求数据的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。