springmvc對rest的支持

springmvc對rest的支持

RESTful的理解

REST,即Representational State Transfer的縮寫。我對這個詞組的翻譯是”表現層狀態轉化”。

REST的名稱”表現層狀態轉化”中,省略了主語。”表現層”其實指的是”資源”(Resources)的”表現層”。所謂”資源”,就是網絡上的一個實體,或者說是網絡上的一個具體信息

rest方式url要求簡潔,一個url對應互聯網上的一個資源:
http://www.bsw.com/user/001 001用戶資源 特點:將原來url請求參數放在url中傳入服務。
。。。

“資源”是一種信息實體,它可以有多種外在表現形式。我們把”資源”具體呈現出來的形式,叫做它的”表現層”(Representation)。
一個資源可以使用html展示、xml展示、json展示,,這此展示方式都不同的表現形式

通過url輸出json、xml等格式的數據。

就是HTTP協議裏面,四個表示操作方式的動詞:GET、POST、PUT、DELETE。它們分別對應四種基本操作:GET用來獲取資源,POST用來新建資源(也可以用於更新資源),PUT用來更新資源,DELETE用來刪除資源。

比如:
請求url:http://www.bsw.com/user/001
當請求的方法爲get時,表示獲取001的用戶資源,服務端程序應該根據http的方法類型判斷應該查詢001用戶
請求url:http://www.bsw.com/user/001
當請求的方法爲post時,表示新建一個001的用戶資源。

案例

第一步:編寫controller

// 使用rest的請求路徑
@RequestMapping("/itemViewRest/{id}")
@ResponseBody
public Items itemViewRest(@PathVariable("id") Integer id) {
    ItemsCustom items = itemService.findItemsById(id);
    return items;
}

@RequestMapping(value=”/ viewItems/{id}”):{×××}佔位符,請求的URL可以是“/viewItems/1”或“/viewItems/2”,通過在方法中使用@PathVariable獲取{×××}中的×××變量。
@PathVariable用於將請求URL中的模板變量映射到功能處理方法的參數上
如果RequestMapping中表示爲”/viewItems/{id}”,id和形參名稱一致,@PathVariable不用指定名稱。
第二步:配置前端控制器支持rest

<!-- springmvc的前端控制器支持rest -->
<servlet>
    <servlet-name>springmvc-rest</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!-- 加載springmvc的xml配置文件 注意:如果不加此配置,springmvc默認加載/WEB-INF/[DispatcherServlet 
        的Servlet 名字]-servlet.xml 即:/WEB-INF/springmvc-serlvet.xml -->
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:spring/springmvc.xml</param-value>
    </init-param>
</servlet>
<servlet-mapping>
    <servlet-name>springmvc-rest</servlet-name>
    <!-- rest的路徑爲/ -->
    <url-pattern>/</url-pattern>
</servlet-mapping>

第三步:解決靜態資源訪問問題-此問題因爲配置了支持rest的前端控制器所以必須配置,不然無法訪問靜態資源

<!-- 處理對靜態資源的訪問,因爲實現支持rest並且路徑爲/,就必須處理對靜態資源的訪問,使這些資源不走前端控制器 -->
<mvc:resources location="/js/" mapping="/js/**"/>
<mvc:resources location="/css/" mapping="/css/**"/>
  • 最終測試結果:
    請求路徑:
    這裏寫圖片描述
    得到結果:
    這裏寫圖片描述
發佈了73 篇原創文章 · 獲贊 41 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章