1. 程式人生 > 其它 >Java前後端請求Content-Type與接受方式

Java前後端請求Content-Type與接受方式

1.Get

Get方法沒有請求體,所以加不加Content-Type沒有意義。

引數通過拼接到Url來加入

url?key=value&key2=value2

SpringMVC後臺如何獲取引數:

  • Java後臺通過Request的getParameter來獲取kv引數

  • 通過引數接收

    public String calendarCloud(HttpServletRequest request,String key1,String key2){
    	//方法體
    }
    

2.Post

Post請求分為多種型別:

1.application/x-www-form-urlencoded

這應該是最常見的 POST 提交資料的方式了。瀏覽器的原生

表單,如果不設定 enctype 屬性,那麼最終就會以 application/x-www-form-urlencoded 方式提交資料。

SpringMVC後臺如何獲取引數:

  • Java後臺通過Request的getParameter來獲取kv引數

  • 通過引數接收1)

    public String calendarCloud(HttpServletRequest request,String key1,String key2){
    	//方法體
    }
    
  • @RequestParam

    public String calendarCloud(HttpServletRequest request,@RequestParam(value="key1") String key1,@@RequestParam(value="key2") String key2){
    	//方法體
    }
    

2.application/json

Google 的 AngularJS中的 Ajax 功能,預設就是提交 JSON 字串。

SpringMVC後臺如何獲取引數:

注意@RequestBody只能存在一個,但是@RequestParam可以有多個

  • 使用註解@RequestBody可以將body裡面所有的json資料傳到後端,後端再進行解析

    String method(@RequestBody String key,HttpServletRequest request){
    	//方法體
    }
    

3.multipart/form-data

我們使用表單上傳檔案時,必須讓 表單的 enctype

等於 multipart/form-data。

對於multipart/form-data,原生不支援,需要使用依賴jar解析:

<!-- 檔案上傳依賴包 -->
<dependency>
    <groupId>commons-fileupload</groupId>
    <artifactId>commons-fileupload</artifactId>
    <version>1.3.3</version>
</dependency>
<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.6</version>
</dependency>

在spring-mvc的配置檔案springmvc.xml中定義檔案上傳解析器,並配置相關引數:

<!-- 定義檔案上傳解析器 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <!-- 設定預設編碼 -->
    <property name="defaultEncoding" value="UTF-8"></property>
    <!-- 設定檔案上傳的最大值為5MB,5*1024*1024 -->
    <property name="maxUploadSize" value="5242880"></property>
    <!-- 設定檔案上傳時寫入記憶體的最大值,如果小於這個引數不會生成臨時檔案,預設為10240 -->
    <property name="maxInMemorySize" value="40960"></property>
    <!-- 上傳檔案的臨時路徑 -->
    <property name="uploadTempDir" value="fileUpload/temp"></property>
    <!-- 延遲檔案解析 -->
    <property name="resolveLazily" value="true"/>
</bean>

在Controller接收:

使用MultpartFile和@RequestParam接收檔案