章
目
录
1.restful风格介绍:
Restful 一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。
Restful是一种设计风格。对于我们Web开发人员来说。就是使用一个url地址表示一个唯一的资源。然后把原来的请求参数加入到请求资源地址中。然后原来请求的增,删,改,查操作。改为使用HTTP协议中请求方式GET、POST、PUT、DELETE表示。
2.举例:
比如:http://ip:port/工程名/资源名?请求参数
举例:http://127.0.0.1:8080/springmvc/user?action=delete&id=1
比如:http://ip:port/工程名/资源名/请求参数
举例:http://127.0.0.1:8080/springmvc/user/1
删除动作由DELETE请求决定
3.restful风格中请求方式
restful风格中请求方式为GET
、POST
、PUT
、DELETE
分别表示查、增、改、删。
1)GET请求——对应查询
Restful请求 | 对应HTTP | 含义 |
http://ip:port/工程名/user/1 | HTTP请求GET | 表示要查询id为1的用户 |
http://ip:port/工程名/user | HTTP请求GET | 表示查询全部的用户 |
2)POST请求——对应添加
Restful请求 | 对应HTTP | 含义 |
http://ip:port/工程名/user | HTTP请求POST | 表示要添加一个用户 |
3)PUT请求——对应修改
Restful请求 | 对应HTTP | 含义 |
http://ip:port/工程名/user/1 | HTTP请求PUT | 表示要修改id为1的用户信息 |
4)DELETE请求——对应删除
Restful请求 | 对应HTTP | 含义 |
http://ip:port/工程名/user/1 | HTTP请求DELETE | 表示要删除id为1的用户信息 |
4.SpringMVC中如何发送Restful请求
SpringMVC发送GET请求、POST请求、PUT请求、DELETE请求等Restful请求。
我们知道发起GET请求和POST请求,只需要在表单的form标签中,设置method="get"
就是GET请求,设置form标签的method="post"
,就会发起POST请求。普通浏览器只支持get和post请求,那么PUT请求和DELETE请求,要如何发起呢?
1)要有post请求的form标签
2)在form表单中,添加一个额外的隐藏域_method="PUT"
或_method="DELETE"
3)在web.xml
中配置一个Filter过滤器org.springframework.web.filter.HiddenHttpMethodFilter
(注意,这个Filter一定要在处理乱码的Filter后面)
<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>
4)在controller中@RequestMapping添加对应请求方式:
PUT请求:method=RequestMethod.PUT
DELETE请求:method=RequestMethod.DELETE
GET请求:method=RequestMethod.GET
POST请求:method=RequestMethod.POST
5.表单写法
6.controller写法:
6、测试
发现:PUT和DELETE执行时,控制台正常,但浏览器出现405报错
在高版本的tomcat中,不支持PUT和DELETE的转发
1)使用Tomcat7以下版本
2)将转发改为重定向,但WEB-INF下的页面重定向是无法访问的,只能重定向到webcontent下的jsp
3)如果想转发到WEB-INF下的jsp,则只能先重定向到新的Controller,通过新的Controller转发到对应的jsp