一.RESTful簡單介紹
RESTful架構(gòu),就是目前最流行的一種互聯(lián)網(wǎng)軟件架構(gòu)。它結(jié)構(gòu)清晰、符合標準、易于理解、擴展方便,所以正得到越來越多網(wǎng)站的采用。
RESTful(即Representational State Transfer的縮寫)其實是一個開發(fā)理念,是對http的很好的詮釋。
- 對url進行規(guī)范,寫RESTful格式的url
- 非REST的url:
http://...../queryItems.action?id=001&type=T01 - REST的url風(fēng)格:
http://..../items/001
- 非REST的url:
- http的方法規(guī)范
- 不管是刪除、添加、更新,等等。使用url是一致的,如果進行刪除,需要設(shè)置http的方法為delete,其他同理。
- 后臺controller方法:判斷http方法,如果是delete執(zhí)行刪除,如果是post執(zhí)行添加。
- 對http的contentType規(guī)范
- 請求時指定contentType,要json數(shù)據(jù),設(shè)置成json格式的type,要key/value 數(shù)據(jù)設(shè)置成key/value的格式type。
二.測試案例
- 查詢用戶信息,輸出json
-
itemsView/{id}里邊的{id}表示占位符,通過@PathVariable獲取占位符中的參數(shù), -
@PathVariable中名稱要和占位符一致,形參名無需和其一致 - 如果占位符中的名稱和形參名一致,在
@PathVariable可以不指定名稱
定義方法,進行url映射使用REST風(fēng)格的url,將查詢用戶信息的id傳入controller .
@RequestMapping("/itemsView/{id}")
public @ResponseBody List<User> itemsView(@PathVariable("id") Integer id)throws Exception{
//調(diào)用service查詢商品信息
List<User> user = userService.findUserById(id);
return user;
}
@RequestMapping(value="/ itemsView/{id}"):{×××}占位符,請求的URL可以是/viewItems/1121或/viewItems/212121,通過在方法中使用@PathVariable獲取{×××}中的×××變量。
@PathVariable用于將請求URL中的模板變量映射到功能處理方法的參數(shù)上。如果@RequestMapping中表示為/itemsView/{id},id和形參稱一致,@PathVariable不用指定名稱。

三.對靜態(tài)資源的解析
- 配置前端控制器的url-parttern中指定/,對靜態(tài)資源的解析會出現(xiàn)問題,報404錯誤。
- 在springmvc.xml中添加靜態(tài)資源解析方法。
<!--對靜態(tài)資源的解析-->
<mvc:resources mapping="/js/**" location="/js/"/>
<mvc:resources mapping="/css/**" location="/css/"/>
<mvc:resources mapping="/img/**" location="/img/"/>