91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

spring框架 Request請求 content-Type設置和配置

發布時間:2020-08-01 10:12:18 來源:網絡 閱讀:7292 作者:ybyron 欄目:軟件技術

1.  Content-Type

  MediaType,即是Internet Media Type,互聯網媒體類型;也叫做MIME類型,在Http協議消息頭中,使用Content-Type來表示具體請求中的媒體類型信息。



 常見的媒體格式類型如下:

  •     text/html : HTML格式

  •     text/plain :純文本格式      

  •     text/xml :  XML格式

  •     p_w_picpath/gif :gif圖片格式    

  •     p_w_picpath/jpeg :jpg圖片格式 

  •     p_w_picpath/png:png圖片格式


   以application開頭的媒體格式類型:

  •    application/xhtml+xml :XHTML格式

  •    application/xml     : XML數據格式

  •    application/atom+xml  :Atom XML聚合格式    

  •    application/json    : JSON數據格式

  •    application/pdf       :pdf格式  

  •    application/msword  : Word文檔格式

  •    application/octet-stream : 二進制流數據(如常見的文件下載)

  •    application/x-www-form-urlencoded :

  •    <form encType=””>中默認的encType,form表單數據被編碼為key/value格式發    送到服務器(表單默認的提交數據的格式)




   另外一種常見的媒體格式是上傳文件之時使用的:

  •     multipart/form-data : 需要在表單中進行文件上傳時,就需要使用該格式

       以上就是我們在日常的開發中,經常會用到的若干content-type的內容格式。





2.   Spring MVC中關于關于Content-Type類型信息的使用


        首先我們來看看RequestMapping中的Class定義


  1. @Target({ElementType.METHOD, ElementType.TYPE})  

  2. @Retention(RetentionPolicy.RUNTIME)  

  3. @Documented  

  4. @Mapping  

  5. public @interface RequestMapping {  

  6.       String[] value() default {};  

  7.       RequestMethod[] method() default {};  

  8.       String[] params() default {};  

  9.       String[] headers() default {};  

  10.       String[] consumes() default {};  

  11.       String[] produces() default {};  

  12. }




各參數含義:

        value:  指定請求的實際地址, 比如 /action/info之類。
        method:  指定請求的method類型, GET、POST、PUT、DELETE等
        consumes: 指定處理請求的提交內容類型(Content-Type),例如application/json, text/html;
        produces:    指定返回的內容類型,僅當request請求頭中的(Accept)類型中包含該指定類型才返回
        params: 指定request中必須包含某些參數值是,才讓該方法處理
        headers: 指定request中必須包含某些指定的header值,才能讓該方法處理請求


其中,consumes, produces使用content-typ信息進行過濾信息;headers中可以使用content-type進行過濾和判斷。


3. 使用示例


  3.1 headers

  1. @RequestMapping(value = "/test", method = RequestMethod.GET, headers="Referer=http://www.ifeng.com/")    

  2. public void testHeaders(@PathVariable String ownerId, @PathVariable String petId) {        

  3.   // implementation omitted    

  4. }   

這里的Headers里面可以匹配所有Header里面可以出現的信息,不局限在Referer信息。


3.2 params的示例

  1. @RequestMapping(value = "/test/{userId}", method = RequestMethod.GET, params="myParam=myValue")    

  2. public void findUser(@PathVariable String userId) {        

  3.   // implementation omitted    

  4. }    

    僅處理請求中包含了名為“myParam”,值為“myValue”的請求,起到了一個過濾的作用。



3.3 consumes/produces


  1. @Controller    

  2. @RequestMapping(value = "/users", method = RequestMethod.POST, consumes="application/json", produces="application/json")    

  3. @ResponseBody  

  4. public List<User> addUser(@RequestBody User userl) {        

  5.     // implementation omitted    

  6.     return List<User> users;  

  7. }  



  方法僅處理request Content-Type為“application/json”類型的請求. produces標識==>處理request請求中Accept頭中包含了"application/json"的請求,同時暗示了返回的內容類型為application/json; 


4.應用場景


GET、POST方式提交的請求:

 Content-type: 1、application/x-www-form-urlencoded:@RequestBody不是必須加的

 2、mutipart/form-data:@RequestBody不能處理這種格式 

3、其他格式,比如application/json,application/xml等,必須使用@RequestBody來處理 

@ResquestBody注解可以使http消息轉換器會根據content-type對請求體進行解析


 PUT方式提交的請求:

以上1和3的場景都是必須使用@RequestBody來處理的,2場景也是不支持的


實例:

如: $.ajax({    

         url:"/login",     

        type:"post",     

        contentType:"application/json;charset=UTF-8",     

        data:JSON.stringify({"name":"test","pass":"123456"}) 

});  


后臺接收代碼示例:

 @RequestMapping(value="/login")

 @ResponseBody 

public ModelAndView loadForm(@RequestBody Login login){ 

    // implementation omitted  

 }

   

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

琼结县| 宣汉县| 安仁县| 且末县| 巴青县| 阜南县| 乡宁县| 揭阳市| 延寿县| 大邑县| 新竹市| 枞阳县| 仙桃市| 清水县| 芮城县| 竹山县| 大埔县| 兰州市| 邹城市| 灌阳县| 松潘县| 团风县| 莱西市| 闵行区| 扎鲁特旗| 阿拉善盟| 金门县| 惠安县| 阜康市| 防城港市| 上林县| 嘉祥县| 巴彦淖尔市| 昔阳县| 环江| 万源市| 锡林浩特市| 武功县| 广州市| 肃北| 揭西县|