1.什么是restful風格
答出這兩點就夠了:
1.1 統一接口
rest其實是基於HTTP的,四種方式。
RESTful架構風格規定,數據的元操作,即CRUD(create, read, update和delete,即數據的增刪查改)操作,分別對應於HTTP方法:GET用來獲取資源,POST用來新建資源(也可以用於更新資源),PUT用來更新資源,DELETE用來刪除資源。
這樣就統一了數據操作的接口,僅通過HTTP方法,就可以完成對數據的所有增刪查改工作。即:
- GET(SELECT):從服務器取出資源(一項或多項)。
- POST(CREATE):在服務器新建一個資源。
- PUT(UPDATE):在服務器更新資源(客戶端提供完整資源數據)。
- PATCH(UPDATE):在服務器更新資源(客戶端提供需要修改的資源數據)。
- DELETE(DELETE):從服務器刪除資源。
1.2 URI(統一資源定位符)
每個URI(UniformResourceIdentifier)對應特定的資源,即資源標識。
可以用一個URI指向資源,即每個URI都對應一個特定的資源。要獲取這個資源,訪問它的URI就可以,因此URI就成了每一個資源的地址或識別符。
一般的,每個資源至少有一個URI與之對應,最典型的URI即URL。
2. 區分URL與URI
需要對HTTP協議更多的理解
1.URL格式:協議://域名/路徑?查詢#HASH,實際的一個HTTP請求,還會包括Header(含Cookie、Method等)
2.資源的URI格式:協議://域名/路徑,它只是URL的子集,表征一個資源實體。比如,http://a.com/users/1。
3.測試樣例
這里給出請求一個“資源”的寫法demo,自己可以根據業務去具體實現
前端jsp:
<% pageContext.setAttribute("ctp", request.getContextPath()); %>
項目路徑ctp /order請求隨便起名字比如叫做emp/${id}
后端Controller:
@RequestMapping(value = "/emp/{id}", method = RequestMethod.GET) public String getEmp(@PathVariable("id") Integer id, Model model) { … }
或者繞過前端之間在地址欄輸入同樣的請求訪問服務器:
localhost:8080/emp/1即可查詢出1號員工
4. restful四種方式
但是默認只有get/post兩種方式,怎么配置其他兩種方式呢?
Spring提供了對Rest風格的支持--即從頁面發起PUT、DELETE形式的請求,具體實現如下:
支持Rest風格轉換的filter
去web.xml配置這個filter
<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>
filter配置之后開始寫具體的頁面
按照以下要求;
1、創建一個post類型的表單
2、表單項中攜帶一個_method的參數
3、這個_method的值就是DELETE、PUT
代碼示例:
<form action="book/1" method="post"> <input name="_method" value="put"/> <input type="submit" value="更新1號圖書"/> </form> <form action="book/1" method="post"> <input name="_method" value="delete"/> <input type="submit" value="刪除1號圖書"/> </form>