javascript
Spring MVC开发RESTful风格的URI
一、寫在前面
RESTful結構可參考博文:https://blog.csdn.net/codejas/article/details/79799386
我們知道在HTTP 協議中,有四種操作方式的動作:GET、POST、PUT和DELETE,分別對應四種基本的操作。GET 用來獲取資源,POST 用來新建資源(也可以用于更新資源),PUT用來更新資源,DELETE 用來刪除資源。
關于RESTful 風格的URI 標準寫法如下:
GET:/restUrl/{id}POST:/restUrlPUT:/restUrl/{id}DELETE:/restUrl/{id}瀏覽器的form 表單只支持GET 與POST 方式的請求,對于PUT與DELETE 并不支持,在Spring MVC中提供了一個過濾器(HiddenHttpMethodFilter),可以通過該過濾器將POST 形式的請求轉化為PUT 與DELETE 形式的請求。
二、在Spring MVC中開發RESTful風格的URI
2.1步驟
1.在web.xml中配置HiddenHttpMethodFilter 過濾器
2.將POST 請求轉換為DELETE 與PUT請求,即在發送POST 請求時,需要攜帶一個name="_method" 的隱藏域,值為對應的DELETE 與PUT。
2.2代碼實現
1.在web.xml中配置HiddenHttpMethodFilter 過濾器
<filter><filter-name>hiddenHttpMethodFilter</filter-name><filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class></filter><filter-mapping><filter-name>hiddenHttpMethodFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>2.編寫前端代碼
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>test</title> </head> <body><!--默認為'GET' 請求--><a href="user/1">test GET</a><br><!--通過表單指定請求的格式為'POST'--> <form action="user" method="post"><input type="submit" value="test POST"/></form><br><!--通過隱藏域將表單'POST' 請求格式轉化為'PUT'--><form action="user/1" method="post"><input type="hidden" name="_method" value="PUT"/><input type="submit" value="test POST"/></form><br><!--通過隱藏域將表單'POST' 請求格式轉化為'DELETE'--><form action="user/1" method="post"><input type="hidden" name="_method" value="DELETE"/><input type="submit" value="test POST"/></form><br> </body> </html>3.編寫控制器代碼
@Controller public class TestController {private static final String SUCCESS = "success";/*** 根據id 獲取用戶信息* @RequestMapping 默認處理'GET'形式的請求* @PathVariable 用于獲取請求占位符中的值,并綁定到'id' 中*/@RequestMapping("/user/{id}")public String testGet(@PathVariable(value = "id")Integer id) {// 可以根據id 調用對應的服務接口 ........return SUCCESS;}/*** 新增用戶,可以指定接收的參數類型* 這里簡單的實現一下* 在@RequestMapping 中指定方法為'POST'*/@RequestMapping(value = "/user", method = RequestMethod.POST)public String testPost(){// 在開發的過程中可以根據需求調用對應的服務接口return SUCCESS;}/*** 根據id 修改用戶信息* 在@RequestMapping 中指定方法為'PUT'*/@RequestMapping(value = "/user/{id}", method = RequestMethod.PUT)public String testPut(@PathVariable(value = "id")Integer id) {// 根據id 調用對應的服務接口 ........return SUCCESS;}/*** 根據id 刪除用戶* 在@RequestMapping 中指定方法為'DELETE'*/@RequestMapping(value = "/user/{id}", method = RequestMethod.DELETE)public String testDelete(@PathVariable(value = "id")Integer id) {// 根據id 調用對應的服務接口 ........return SUCCESS;}}三、總結
通過上面的例子我們應該知道,對于同一組(比如操作用戶)增刪改查的操作,我們可以統一它們的URI,可能這些URI 是相同的,但是卻代表著不同的資源,通過對應的請求方式從而執行增刪改查操作。使用RESTful 風格的架構,可以使設計的軟件更簡潔,更有層次,更易于實現緩存機制等。
總結
以上是生活随笔為你收集整理的Spring MVC开发RESTful风格的URI的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 加ssd后怎么设置 加装SSD后设置方法
- 下一篇: 进入pe模式 安装不了怎么办 如何在PE