码迷,mamicode.com
首页 > 编程语言 > 详细

SpringMVC笔记(七)RESTFul风格的SringMVC

时间:2017-08-24 22:32:56      阅读:258      评论:0      收藏:0      [点我收藏+]

标签:新建   协议   action   str   pac   request   font   扩展   ext   

一、REST:

即 Representational State Transfer。(资源)表现层状态转化。是目前最流行的一种互联网软件架构。
它结构清晰、符合标准、易于理解、扩展方便, 所以正得到越来越多网站的采用.
HTTP 协议里面,四个表示操作方式的动词:GET、POST、PUT、DELETE。
它们分别对应四种基本操作:
GET 用来获 取资源,
POST 用来新建资源,
PUT 用来更新资源,
DELETE 用来删除资源。

二、示例:

 @Controller @RequestMapping("/rest") 
             public class RestController {
                 @RequestMapping(value="/user/{id}",method=RequestMethod.GET) 
                 public String get(@PathVariable("id") Integer id){
                     System.out.println("get"+id);
                     return "/hello";
                 }
                 @RequestMapping(value="/user/{id}",method=RequestMethod.POST) 
                 public String post(@PathVariable("id") Integer id){
                     System.out.println("post"+id);
                     return "/hello"; 
                 }
                 @RequestMapping(value="/user/{id}",method=RequestMethod.PUT)
                 public String put(@PathVariable("id") Integer id){
                     System.out.println("put"+id);
                     return "/hello";
                 } 
                 @RequestMapping(value="/user/{id}",method=RequestMethod.DELETE)
                 public String delete(@PathVariable("id") Integer id){
                     System.out.println("delete"+id);
                     return "/hello";
                 }
             }
前端URL 请求方式: Controller
/user/1 HTTP GET : 请求 method=RequestMethod.GET的方法
/user/1 HTTP DELETE: 请求 method=RequestMethod.DELETE的方法
/user/1 HTTP PUT: 请求 method=RequestMethod.PUT的方法
/userr HTTP POST: 请求 method=RequestMethod.POST的方法

三、浏览器只支持GET和POST请求,如何才能发起DELETE和PUT的请求呢

浏览器 form 表单只支持 GET 与 POST 请求,而DELETE、PUT 等 method 并不支 持,Spring3.0  添加了一个过滤器----HiddenHttpMethodFilter,

可以将这些请求转换 为标准的 http 方法,使得支持 GET、POST、PUT 与 DELETE 请求。

1.将POST请求转化为put请求和delele请求的步骤

 1).在web.xml文件中配置:

 

                       <!-- HiddenHttpMethodFilter过滤器可以将POST请求转化为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>

 

 2)在表单域中需要携带一个name值为_method, value值为put或者delete的参数,如下所示:

		<form action="${pageContext.request.contextPath }/user/1" method="post">
			<input type="hidden" name="_method" value="put"/>
			<input type="submit" value="Submit"/>
		</form>
		<form action="${pageContext.request.contextPath }/user/1" method="post">
			<input type="hidden" name="_method" value="delete"/>
			<input type="submit" value="Submit"/>
		</form>	   

 此时点击Submit按钮,两个表单会分别以put 和delete点的方式进行提交

 
 

SpringMVC笔记(七)RESTFul风格的SringMVC

标签:新建   协议   action   str   pac   request   font   扩展   ext   

原文地址:http://www.cnblogs.com/Actexpler-S/p/7425221.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!