1. 程式人生 > 其它 >Android Framework實戰視訊--Zygote的啟動

Android Framework實戰視訊--Zygote的啟動

SpringMVC獲取請求引數

1、通過ServletAPI獲取

將HttpServletRequest作為控制器方法的形參,此時HttpServletRequest型別的引數表示封裝了當前請求的請求報文的物件

2、通過控制器方法的形參獲取請求引數

在控制器方法的形參位置,設定和請求引數同名的形參,當瀏覽器傳送請求,匹配到請求對映時,在DispatcherServlet中就會將請求引數賦值給相應的形參

  • @RequestParam

    @RequestParam是將請求引數和控制器方法的形參建立對映關係

    @RequestParam註解一共有三個屬性:

    value:指定為形參賦值的請求引數的引數名

    required:設定是否必須傳輸此請求引數,預設值為true

    若設定為true時,則當前請求必須傳輸value所指定的請求引數,若沒有傳輸該請求引數,且沒有設定defaultValue屬性,則頁面報錯400:Required String parameter 'xxx' is not present;若設定為false,則當前請求不是必須傳輸value所指定的請求引數,若沒有傳輸,則註解所標識的形參的值為null

    defaultValue:不管required屬性值為true或false,當value所指定的請求引數沒有傳輸或傳輸的值為""時,則使用預設值為形參賦值

  • @RequestHeader

    @RequestHeader是將請求頭資訊和控制器方法的形參建立對映關係

    @RequestHeader註解一共有三個屬性:value、required、defaultValue,用法同@RequestParam

  • @CookieValue

    @CookieValue是將cookie資料和控制器方法的形參建立對映關係

    @CookieValue註解一共有三個屬性:value、required、defaultValue,用法同@RequestParam

3、通過POJO獲取請求引數

可以在控制器方法的形參位置設定一個實體類型別的形參,此時若瀏覽器傳輸的請求引數的引數名和實體類中的屬性名一致,那麼請求引數就會為此屬性賦值

4、解決獲取請求引數的亂碼問題

解決獲取請求引數的亂碼問題,可以使用SpringMVC提供的編碼過濾器CharacterEncodingFilter,但是必須在web.xml中進行註冊