Restful风格——SpringMVC框架系列教程(3)

Java技术 潘老师 3年前 (2021-03-08) 1000 ℃ (0) 扫码查看

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

restful风格是:

比如:http://ip:port/工程名/资源名/请求参数
举例:http://127.0.0.1:8080/springmvc/user/1
删除动作由DELETE请求决定

3.restful风格中请求方式
restful风格中请求方式为GETPOSTPUTDELETE分别表示查、增、改、删。
 
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>

Restful风格——SpringMVC框架系列教程(3)
4)在controller中@RequestMapping添加对应请求方式:
PUT请求:method=RequestMethod.PUT
DELETE请求:method=RequestMethod.DELETE
GET请求:method=RequestMethod.GET
POST请求:method=RequestMethod.POST

5.表单写法

1)查询:
Restful风格——SpringMVC框架系列教程(3)
2)添加:
Restful风格——SpringMVC框架系列教程(3)
3)修改:
Restful风格——SpringMVC框架系列教程(3)
4)删除:
Restful风格——SpringMVC框架系列教程(3)

6.controller写法:

1)查询:
Restful风格——SpringMVC框架系列教程(3)
2)添加:
Restful风格——SpringMVC框架系列教程(3)
3)修改:
Restful风格——SpringMVC框架系列教程(3)
4)删除:
Restful风格——SpringMVC框架系列教程(3)

6、测试

发现:PUT和DELETE执行时,控制台正常,但浏览器出现405报错
Restful风格——SpringMVC框架系列教程(3)
Restful风格——SpringMVC框架系列教程(3)

原因:

在高版本的tomcat中,不支持PUT和DELETE的转发

解决方案:

1)使用Tomcat7以下版本
2)将转发改为重定向,但WEB-INF下的页面重定向是无法访问的,只能重定向到webcontent下的jsp
3)如果想转发到WEB-INF下的jsp,则只能先重定向到新的Controller,通过新的Controller转发到对应的jsp


版权声明:本站文章,如无说明,均为本站原创,转载请注明文章来源。如有侵权,请联系博主删除。
本文链接:https://www.panziye.com/java/2321.html
喜欢 (0)
请潘老师喝杯Coffee吧!】
分享 (0)
用户头像
发表我的评论
取消评论
表情 贴图 签到 代码

Hi,您需要填写昵称和邮箱!

  • 昵称【必填】
  • 邮箱【必填】
  • 网址【可选】

  • 版权声明

    本站的文章和资源无特殊说明均为站长
    原创,按照 CC BY -NC -SA 3.0 CN
    协议发布和共享,转载或引用本站文章
    应遵循相同协议。如果有侵犯版权的资
    源请尽快联系站长,我们会在24h内删
    除有争议的资源。
  • 本站目标

    我们的目标是:

    →Java学习更简单,培训不遇坑
    → Java毕设更容易,答辩一次过
    → Java面试更轻松,高薪工作更愉悦
  • 本站宗旨

    潘子夜个人博客,专注于Java学习
    Java培训、Java毕设、与Java面试题
    等方向的整理与分享,帮助同学们轻
    松学技术,顺利毕业,找到一个满意
    的工作。
  • 支持博主

    微信赞赏码
  • 如遇问题,请联系站长 在线QQ 在线邮件
    知无不言 · 言无不尽 潘子夜个人博客
  • 微信号 · 冷雨夜
    君子力学 · 昼夜不息
  • 微信扫 · 赞赏码
    赠人玫瑰 · 手留余香
  • 给潘老师留言
  • 返回顶部