javascript
SpringMVC实现RESTful风格
RESTful簡介
?
1,REST架構(gòu)師一個抽象的概念,目前主要是基于HTTP協(xié)議實現(xiàn),其目的是為了提高系統(tǒng)的可伸縮性,降低應(yīng)用之間的耦合度,便于框架分布式處理程序。
?
2,REST主要對以下兩方面進行了規(guī)范
-定位資源的URL風(fēng)格,例如
?http://baidu.com/admin/1234
?http://baidu.com/admin/1234/10/11
-如何對資源操作
?采用HTTP協(xié)議規(guī)定的GET、POST、PUT、DELETE動作處理資源的增刪該查操作
?
?
3,什么是RESTful?
?-符合REST約束風(fēng)格和原則的應(yīng)用程序或設(shè)計就是RESTful.
?eg: ?/emp/1 ?HTTP GET ? ? ?查詢id=1的emp
? ? ? ?/emp/1 ?HTTP DELETE ? ?刪除id=1的emp,實驗中直接刪除會報405錯誤,但是采用$.ajax異步刪除就沒問題
? ? ? ?/emp/1 ?HTTP PUT ? ?跟新emp
? ? ? ?/emp/add ?HTTP POST ? ? 新增emp
?
4,Spring對RESTful的支持
- Spring MVC 對 RESTful應(yīng)用提供了以下支持
- 利用@RequestMapping 指定要處理請求的URI模板和HTTP請求的動作類型
- 利用@PathVariable講URI請求模板中的變量映射到處理方法參數(shù)上
- 利用Ajax,在客戶端發(fā)出PUT、DELETE動作的請求
?
eg:?@RequestMapping(value = "/{id}", method = RequestMethod.GET)
? ? ? public String toUpdate(@PathVariable("id") Integer id, Model model) {}
?
5,RequestMapping的一般應(yīng)用格式。
?
?@RequestMapping(value = "/{id}", method = RequestMethod.GET)
?
?@RequestMapping(value = "/{id}", method = RequestMethod.POST)
?
?@RequestMapping(value = "/{id}", method = RequestMethod.DELETE) ? // 因為這個需要Ajax請求,所有返回的是個json
?@ResponseBody
?
?@RequestMapping(value = "/{id}", method = RequestMethod.PUT)
?
6,客戶端發(fā)送PUT,DELETE請求
? 可以采用Ajax方式發(fā)送PUT和DELETE請求
?
Java代碼???
?
7,靜態(tài)資源訪問處理
采用RESTful架構(gòu)后,需要將web.xml中控制器攔截的請求設(shè)置為/,這樣會將css,js等靜態(tài)資源進行攔截,發(fā)送404錯誤。
解決方法:
--配置<mvc:resources/>?
?<mvc:resources mapping="請求URI" location="資源位置" />
--配置<mvc:default-servlet-handler/>
?<mvc:default-servlet-handler/>
?
新人創(chuàng)作打卡挑戰(zhàn)賽發(fā)博客就能抽獎!定制產(chǎn)品紅包拿不停!總結(jié)
以上是生活随笔為你收集整理的SpringMVC实现RESTful风格的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: git rm–r folder/file
- 下一篇: gradle idea java ssm