SpringMVC笔记(七)RESTFul风格的SringMVC

一、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点的方式进行提交

时间: 2024-08-28 08:24:22

SpringMVC笔记(七)RESTFul风格的SringMVC的相关文章

springMVC+json构建restful风格的服务

首先.要知道什么是rest服务,什么是rest服务呢? REST(英文:Representational State Transfer,简称REST)描写叙述了一个架构样式的网络系统.比方 web 应用程序. 它首次出如今 2000 年 Roy Fielding 的博士论文中,他是 HTTP 规范的主要编写者之中的一个. 在眼下主流的三种Web服务交互方案中.REST相比于SOAP(Simple Object Access protocol,简单对象訪问协议)以及XML-RPC更加简单明了,不管

springMvc框架之Restful风格

method: @Controller @RequestMapping("/test") public String MyController{ @RequestMapping("/begin") public String hi(HttpServletRequest request){ String name=request.getParameter("name"); System.out.println(name); return "

Restful风格API接口开发springMVC篇

Restful风格的API是一种软件架构风格,设计风格而不是标准,只是提供了一组设计原则和约束条件.它主要用于客户端和服务器交互类的软件.基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制. 在Restful风格中,用户请求的url使用同一个url而用请求方式:get,post,delete,put...等方式对请求的处理方法进行区分,这样可以在前后台分离式的开发中使得前端开发人员不会对请求的资源地址产生混淆和大量的检查方法名的麻烦,形成一个统一的接口. 在Restful风格中,现

springmvc学习笔记(19)-RESTful支持

springmvc学习笔记(19)-RESTful支持 springmvc学习笔记19-RESTful支持 概念 REST的样例 controller REST方法的前端控制器配置 对静态资源的解析 本文介绍RESTful的概念,并通过一个小样例展示怎样编写RESTful风格的controller和配置前端控制器,最后展示静态资源的解析 概念 首先附上两篇博客链接 理解RESTful架构 - 阮一峰的网络日志 RESTful API 设计指南- 阮一峰的网络日志 RESTful架构.就是眼下最流

Web Service笔记(五):CXF开发RESTful风格的Web Service

前言: 1.Web Service笔记(五):利用CXF结合Spring开发web service 2.XML学习笔记(三):Jaxb负责xml与javaBean映射 3.jax-rs详解 4.可以使用浏览器的工具调试:如 Firefox 的RESTClient 和chrome的REST Console. 一.配置Spring的配置文件 1.需要引入新的 jar 包. 2.配置 applicationContext-server.xml 文件.使用 jaxrs:server ,记得引入jaxrs

构造Restful风格的SpringMVC

pringmvc 3.0 中增加 RESTful URL功能,构造出类似javaeye现在的URL. rest介绍 , 这里还有struts2 rest构造的一篇文章: 使用 Struts 2 开发 RESTful 服务 简单例子如下,比如如下URL Java代码  /blog/1  HTTP GET =>    得到id = 1的blog /blog/1  HTTP DELETE => 删除 id = 1的blog /blog/1  HTTP PUT  =>   更新id = 1的bl

SpringMVC实现Restful风格的WebService

1.环境 JDK7 MyEclipse2014 tomcat8 maven 3.3.3 spring4.1.4 2.创建maven工程 使用MyEclipse创建maven工程的方式可以参考这篇博文(链接1), 该博文中的第四小结是关于如何创建SpringMVC+maven教程.下面只给出创建好的目录结构,其中的部分文件如java程序是后面要完成的. 3.指定依赖文件 maven具有特定的文件结构,并通过pom.xml来管理工程.下面是在实现Restful时需要的依赖. 1 <project x

【Spring学习笔记-MVC-18.1】Spring MVC实现RESTful风格-同一资源,多种展现:xml-json-html

概要 要实现Restful风格,主要有两个方面要讲解,如下: 1. 同一个资源,如果需要返回不同的形式,如:json.xml等: 不推荐的做法: /user/getUserJson /user/getUserXML 这样做不符合Restful的原则,1个资源相当于变成了两个资源: 2. 对同一资源的CRUD操作 不推荐的做法: /user/addUser/ /user/getUser/123 /user/deleteUser/123 /user/updateUser/123 这样做也不符合Res

springMvc中restful风格的api路径中把小数点当参数,SpringMvc中url有小数点

在springMvc web项目中restful风格的api路径中有小数点会被过滤后台拿不到最后一个小数点的问题, 有两种解决方案: 1:在api路径中加入:.+ @RequestMapping("/findByIp/{ip:.+}") public Object test(@PathVariable String ip) { System.out.println(ip); return ""; } 但这种方式在web服务中感觉太过于鸡肋 所以在springMvc.