Restful架構,就是目前 流行的一種互聯網架構。他結構清晰,符合標準,已於理解,擴展方便,所以正得到越來越多網站的採用。Restful架構對url進行規範,寫restful格式的url是怎麼樣子呢》我們一般請求的url是類似 這樣子的:
http://...../xxx.action?id=001&type=aaa
而rest的url的風格是什麼樣子的呢?一般他類似於:http://..../xxx/001
所以REST有個很明顯的特點:使url變得簡潔 ,將參數通過url傳到服務器,springmvc也是支持這種REST風格的url的,我們定義一個controller來測試一下:
//查詢商品信息,輸出json。使用RESTful。
@RequestMapping("/itemView/{id}")
public @ResponseBody ItemCustom itemView(@PathVariable(“id”) Integer id) throwException{
ItemsCustom itemsCustom = itemsService.findItemsById(id); return itemsCustom;
}
@ResponseBody是用來將itemsCustom轉成json註解的,而@PathVariable註解則是跟REST有關了。
@RequestMapping(value="/itemView/{id}")中的{id}表示一個佔位符,那麼這裏面傳過來的值會被傳到@PathVariable編輯的形參
,如果形參和佔位符中的變量是一樣的話,可以不用再註解中的指定了。否則註解中要指定這個佔位符 中的變量(即id).
這樣的話,參數就可以通過url傳到形參中來了。
但是這樣還不行。還要在前端控制器總針對REST進行配置,如下:
<!-- 配置springmvc的前端控制器DispatcherServlet,REST配置 -->
<servlet>
<servlet-name>springmvc_rest</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<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>
<url-pattern>/</url-pattern>
</servlet-mapping>
攔截的是多有的url(/).這個配置跟以前配置好的前端控制器是沒有衝突的。可以並存。經過這樣的配置後,就可以
在瀏覽器中輸入http://localhost:8080/SpringMVV_studyView/1 來測試返回到瀏覽器的數據了。樂意看到返回遺傳json數據。
但是有個問題,使用上面的配置後悔攔截所有的url.那麼對靜態資源也會攔截。所以DispatcherServlet也會解析靜態資源,但是這樣的話就會出錯,所以我們要設置一下不讓解析靜態資源springmvc.xml.如;
<!-- 靜態資源解析,包括js,css,img... --> <mvc:resources location="/js/" mapping="/js/**"></mvc:resources> <mvc:resources location="/img/" mapping="/img/**"></mvc:resources>
如果還有其他靜態資源的話,也要設置一下,這樣就不會去解析靜態資源呢了,訪問靜態資源的時候就可以直接訪問。
這裏是我轉載的 https://www.cnblogs.com/shanheyongmu/p/5882125.html