淺談SpringMVC對RESTfull的支持
本文研究的主要是SpringMVC對RESTfull的支持的相關(guān)內(nèi)容,具體如下。
RESTful架構(gòu),就是目前流行的一種互聯(lián)網(wǎng)軟件架構(gòu)。它結(jié)構(gòu)清晰、符合標準、易于理解、擴展方便,所以正得到越來越多網(wǎng)站的采用。RESTful架構(gòu)對url進行規(guī)范,寫RESTful格式的url是什么樣子的呢?我們一般請求的url是類似這樣子的:
http://...../xxx.action?id=001&type=aaa
而REST的url風格是什么樣子呢?一般它類似于:
http://..../xxx/001
所以REST有個很明顯的特點:使url變得簡潔,將參數(shù)通過url傳到服務端。springmvc也是支持這種REST風格的url的,我們定義一個controller來測試一下:
//查詢商品信息,輸出json,使用RESTful @RequestMapping("/itemsView/{id}") public @ResponseBody ItemsCustom itemsView(@PathVariable("id") Integer id) throws Exception { ItemsCustom itemsCustom = itemsService.findItemsById(id); return itemsCustom; }
@ResponseBody
是用來將itemsCustom
轉(zhuǎn)成json的注解,而@PathVariable
注解則是跟REST有關(guān)了,@RequestMapping(value=”/ itemsView/{id}”)
中的{id}表示一個占位符,那么這里面?zhèn)鬟^來的值會傳到被@PathVariable
標記的形參上,如果形參和占位符中的變量一樣的話,可以不用再注解中指定,否則注解中要指定這個占位符中的變量(即id)。這樣的話,參數(shù)就可以通過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(/),這個配置跟之前配置好的前端控制器是沒有沖突的,可以并存。經(jīng)過這樣配置后,就可以在瀏覽器中輸入http://localhost:8080/SpringMVC_Study/itemsView/1來測試返回到瀏覽器的數(shù)據(jù)了,可以看到返回一串json數(shù)據(jù)。
但是有個問題,使用上面的配置后會攔截所有的url,那么對靜態(tài)資源也會攔截,所以DispatcherServlet也會解析靜態(tài)資源,但是這樣的話就會出錯,所以我們要設置一下不讓它解析靜態(tài)資源。如:
<!-- 靜態(tài)資源解析,包括js,css,img... --> <mvc:resources location="/js/" mapping="/js/**"></mvc:resources> <mvc:resources location="/img/" mapping="/img/**"></mvc:resources>
如果還有其他靜態(tài)資源的話,也要設置一下,這樣就不會去解析靜態(tài)資源了,訪問靜態(tài)資源的時候就直接訪問即可。
總結(jié)
以上就是本文關(guān)于淺談SpringMVC對RESTfull的支持的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
- 解決SpringMVC同時接收Json和Restful時Request里有Map的問題
- SpringMVC開發(fā)restful API之用戶查詢代碼詳解
- Spring MVC利用Swagger2如何構(gòu)建動態(tài)RESTful API詳解
- SpringMVC Restful api接口實現(xiàn)的代碼
- Spring MVC集成springfox-swagger2構(gòu)建restful API的方法詳解
- Spring mvc實現(xiàn)Restful返回json格式數(shù)據(jù)實例詳解
- SpringMVC restful 注解之@RequestBody進行json與object轉(zhuǎn)換
- SpringMVC RESTful支持實現(xiàn)過程演示
相關(guān)文章
SpringBoot實現(xiàn)無限級評論回復的項目實踐
本文主要介紹了SpringBoot實現(xiàn)無限級評論回復的項目實踐,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-03-03Javaweb使用thymeleaf局部刷新結(jié)合Layui插件實現(xiàn)Html分頁
本文主要介紹了Javaweb使用thymeleaf局部刷新結(jié)合Layui插件實現(xiàn)Html分頁,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-10-10springboot?@Async?注解如何實現(xiàn)方法異步
這篇文章主要介紹了springboot?@Async?注解如何實現(xiàn)方法異步,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11根據(jù)list中對象的屬性去重和排序小結(jié)(必看篇)
下面小編就為大家?guī)硪黄鶕?jù)list中對象的屬性去重和排序小結(jié)(必看篇)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-05-05Java 數(shù)據(jù)結(jié)構(gòu)與算法系列精講之二叉堆
二叉堆是一種特殊的堆,其實質(zhì)是完全二叉樹。二叉堆有兩種:最大堆和最小堆。最大堆是指父節(jié)點鍵值總是大于或等于任何一個子節(jié)點的鍵值。而最小堆恰恰相反,指的是父節(jié)點鍵值總是小于任何一個子節(jié)點的鍵值2022-02-02