Rest风格介绍
REST風(fēng)格
是什么
綜合上面的解釋,我們總結(jié)一下什么是RESTful架構(gòu):
1)每一個(gè)URI代表一種資源;
2)客戶端和服務(wù)器之間,傳遞這種資源的某種表現(xiàn)層;
3)客戶端通過(guò)四個(gè)HTTP動(dòng)詞,對(duì)服務(wù)器端資源進(jìn)行操作,實(shí)現(xiàn)"表現(xiàn)層狀態(tài)轉(zhuǎn)化"。
增-POST
method=RequestMethod.POST
刪-DELETE
method=RequestMethod.DELETE
改-PUT
method=RequestMethod.PUT
查-GET
method=RequestMethod.GET
Restful適配
web.xml里配置過(guò)濾器HiddenHttpMethodFilter
<!-- 配置org.springframework.web.filter.HiddenHttpMethodFilter,實(shí)現(xiàn)POST轉(zhuǎn)換為PUT、DELETE -- ><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>method的隱藏域
Delete
<form action="${pageContext.request.contextPath}/order/38" method="post"><input type="hidden" name="_method" value="DELETE"><input type="submit" value="Delete_commit"> </form>Put
Update:<br> <form action="${pageContext.request.contextPath}/order/38" method="post"><input type="hidden" name="_method" value="PUT"><input type="submit" value="Update_commit"> </form> <%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body><fieldset> REST風(fēng)格:<br>POST:<br><form action="${pageContext.request.contextPath}/order" method="post"><input type="submit" value="post_commit"></form>DELETE:<br><form action="${pageContext.request.contextPath}/order/1022" method="post"><input type="hidden" name="_method" value="DELETE"><input type="submit" value="delete_commit"></form> PUT:<br><form action="${pageContext.request.contextPath}/order/1022" method="post"><input type="hidden" name="_method" value="PUT"><input type="submit" value="put_commit"></form><br>GET:<a href="${pageContext.request.contextPath}/order/1022">testGet</a> </fieldset></html> package com.learn.springmvc.test;import java.io.IOException; import java.io.Writer; import java.util.Map;import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.CookieValue; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestHeader; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.servlet.ModelAndView;import com.learn.springmvc.entities.User;@Controller //@SessionAttributes(value="user") public class Test001 {@RequestMapping(value="/order",method=RequestMethod.POST)public String testPost(){System.out.println("-----testPost");return "ok";}@RequestMapping(value="/order/{uuid}",method=RequestMethod.DELETE)public String testDelete(@PathVariable("uuid") String uuid){System.out.println("-----testDelete uuid: "+uuid);return "ok";}@RequestMapping(value="/order/{uuid}",method=RequestMethod.PUT)public String testPut(@PathVariable("uuid") String uuid){System.out.println("-----testPut uuid: "+uuid);return "ok";} @RequestMapping(value="/order/{uuid}",method=RequestMethod.GET)public String testGet(@PathVariable("uuid") String uuid){System.out.println("-----testGet uuid: "+uuid);return "ok";} }?
總結(jié)
- 上一篇: RequestMapping介绍
- 下一篇: 映射请求参数介绍