REST到底是什麼
REST是Web服務的一種架構風格,輕量級、跨平臺、跨語言的架構設計。REST是一種設計風格。它不是一種標準,也不是一種軟件,而是一種思想。
REST 架構的主要原則
網絡上的所有事物都可被抽象爲資源(Resource)
每個資源都有一個唯一的資源標識符(Resource Identifier)
同一資源具有多種表現形式(xml、json等)
對資源的各種操作不會改變資源標識符
所有的操作都是無狀態的(Stateless)
符合REST原則的架構方式即可稱爲RESTful
RESTful是什麼
RESTful對應的中文是 REST式的。
RESTful Web Service是一種常見的REST的應用,是遵守了REST風格的web服務。
REST式的web服務是一種ROA(面向資源的架構)
資源操作
http://example.com/users/
GET : 獲取一個資源
POST : 創建一個新的資源
PUT : 修改一個資源的狀態
DELETE : 刪除一個資源
資源展現
XML
JSON
……
http響應狀態碼
PUT、DELETE表單提交
默認情況下,PUT和DELETE請求是無法提交表單數據的。
解決方案:在web.xml中配置Spring提供的過濾器解決。
<!-- 默認情況下,PUT請求是無法提交表單數據的,需要在web.xml中添加如下過濾器解決 -->
<!-- 此過濾器只能解決PUT請求問題 -->
<filter>
<filter-name>HttpMethodFilter</filter-name>
<filter-class>org.springframework.web.filter.HttpPutFormContentFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>HttpMethodFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 將POST請求轉化爲DELETE或者PUT請求時,要用_method指定真正的請求參數 -->
<!-- 此過濾器可以解決DELETE或者PUT請求問題,只是需要加額外的請求參數:_method = "DELETE" 或 "PUT" -->
<filter>
<filter-name>HiddenHttpMethodFilter</filter-name>
<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>HiddenHttpMethodFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>