当前位置: 首页 > news >正文

网站设计酷站电商培训学校

网站设计酷站,电商培训学校,水利建设工程网站,黑龙江政府采购网一、RESTFUL简介 Rest风格支持(使用HTTP请求方式,动词来表示对资源的操作) 以前:/getUser 获取用户 /deleteUser 删除用户 /editUser 修改用户 /saveUser 保存用户 现在: /user GET-获取用户 DELETE-删除用户 PUT-修改…

一、RESTFUL简介

Rest风格支持(使用HTTP请求方式,动词来表示对资源的操作)
以前:/getUser 获取用户 /deleteUser 删除用户 /editUser 修改用户 /saveUser 保存用户
现在: /user GET-获取用户 DELETE-删除用户 PUT-修改用户 POST-保存用户

可以简单理解为,请求接口的路径就1个,但是,提交请求时,多了一个参数,从而定位到后端的具体接口。

二、案例

controller接口

    @RequestMapping(value = "/user",method = RequestMethod.GET)public String getUser(){return "GET-张三";}@RequestMapping(value = "/user",method = RequestMethod.POST)public String saveUser(){return "POST-张三";}@RequestMapping(value = "/user",method = RequestMethod.PUT)public String putUser(){return "PUT-张三";}@RequestMapping(value = "/user",method = RequestMethod.DELETE)public String deleteUser(){return "DELETE-张三";}

form表单请求
用法: 对于put、delete、patch类型请求,表单method=post,隐藏域 _method=put

<form action="/user" method="get"><input value="REST-GET 提交" type="submit"/>
</form>
<form action="/user" method="post"><input value="REST-POST 提交" type="submit"/>
</form>
<form action="/user" method="post"><input name="_method" type="hidden" value="delete"/><input value="REST-DELETE 提交" type="submit"/>
</form>
<form action="/user" method="post"><input name="_method" type="hidden" value="PUT"/><input value="REST-PUT 提交" type="submit"/>
</form>

yml开启配置

spring:mvc:hiddenmethod:filter:enabled: true

三、源码解读

对于web form表单请求,都归WebMvcAutoConfiguration管理
具体位置:
org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration#hiddenHttpMethodFilter
在这里插入图片描述
org.springframework.web.filter.HiddenHttpMethodFilter#doFilterInternal
主要处理逻辑代码
在这里插入图片描述
代码解释:
put、delete、patch必须以post form表单的影藏参数传到后端,才能正常处理。
this.methodParam
在这里插入图片描述
ALLOWED_METHODS
在这里插入图片描述

四、扩展

我们注意到this.methodParam变量
在这里插入图片描述
它提供了对应的set方法,所以,我们可以修改这个值,来将影藏参数改成自己喜欢的样子。

此时,需要借助配置类,向IOC容器中,注册一个HiddenHttpMethodFilter,并set我们自定义的值。
来覆盖springboot自动装配的Bean实例

    @Beanpublic HiddenHttpMethodFilter hiddenHttpMethodFilter(){HiddenHttpMethodFilter methodFilter = new HiddenHttpMethodFilter();methodFilter.setMethodParam("_hiddenParam");return methodFilter;}

我们注意到,源码的一个判断逻辑
"POST".equals(request.getMethod())
那么,如果form表单提交的method=put、delete、patch是不是就直接放行了呢?
实际上是不行的,html的form表单的method属性值,只有get和post两个值可选择
比如,你给method赋值put,后端会当做get请求处理。

另外,如果我们用Postman客户端工具发送put请求,那么,就可以直接放行。
客户端工具,直接修改了request.getMethod()的值。

http://www.dinnco.com/news/60862.html

相关文章:

  • 女性时尚资讯+淘宝客模式系列网站源码seo优化服务
  • 网站建设的基本术语百度助手手机下载
  • php在电子商务网站建设中的应用研究 戴书浩开发网站建设
  • 做单页网站要多少钱加盟教育培训哪个好
  • 做外卖网站阿里指数在哪里看
  • 360做网站经常打骚扰电话网站推广的目的
  • wordpress ajax查询文章seo能从搜索引擎中获得更多的
  • 小公司网站建设费用台州百度关键词排名
  • 网站业务需求文档免费建站免费网站
  • 企业做网站电话约见客户的对话重庆网站建设公司
  • 做网站被骗去哪投诉新手怎么学做电商
  • cms网站开发框架网站推广的途径和方法
  • 社交网站开发背景百度推广查询
  • 网站栏目怎么做301定向中国营销网官网
  • 苍溪网站建设制作站长推荐
  • wordpress中front-pagehyein seo
  • wordpress 招聘网站模板百度收录量查询
  • 大良营销网站建设价格seo是做什么工作的
  • 深圳公司免费网站建设微信朋友圈广告投放代理
  • 公司网站怎么能被百度收录百度电话怎么转人工客服
  • vs2015网站开发插入日历网站测速工具
  • 怎么做网站视频基本营销策略有哪些
  • 什么静态网站容易做百度官网认证免费
  • 外包网站建设百度是国企还是央企
  • 网站建设界面建议网站推广搜索
  • 中山一站式营销推广平台广告营销案例分析
  • 建设银行网站修改手机号seo优化方案模板
  • 什么语言建手机网站友情链接搜读
  • 热点链接到另一个网站怎么做网站免费seo
  • 网站开发课设如何注册一个域名