0
点赞
收藏
分享

微信扫一扫

SpringBoot中Rest映射

zmhc 2022-03-19 阅读 66
java
@RequestMapping(value = "/user",method = RequestMethod.GET)
    @ResponseBody
    public String getUser(){
        return "GET-张三";
    }

    @RequestMapping(value = "/user",method = RequestMethod.POST)
    @ResponseBody
    public String saveUser(){
        return "POST-张三";
    }


    @RequestMapping(value = "/user",method = RequestMethod.PUT)
    @ResponseBody
    public String putUser(){
        return "PUT-张三";
    }

    @RequestMapping(value = "/user",method = RequestMethod.DELETE)
    @ResponseBody
    public String deleteUser(){
        return "DELETE-张三";
    }
<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 type="hidden" name = "_method" value="PUT">
        <input value="REST-PUT 提交" type="submit"/>
    </form>
    <form action="/user" method="post">
        <input type="hidden" name = "_method" value="DELETE">
        <input value="REST-DELETE 提交" type="submit"/>
    </form>
spring:
  mvc:
    hiddenmethod:
      filter:
        enabled: true
	@Bean
    @ConditionalOnMissingBean(HiddenHttpMethodFilter.class)
    @ConditionalOnProperty(prefix = "spring.mvc.hiddenmethod.filter", name = "enabled", matchIfMissing = false)
    public OrderedHiddenHttpMethodFilter hiddenHttpMethodFilter() {
        return new OrderedHiddenHttpMethodFilter();
    }


    //自定义filter
    @Bean
    public HiddenHttpMethodFilter hiddenHttpMethodFilter(){
        HiddenHttpMethodFilter methodFilter = new HiddenHttpMethodFilter();
        methodFilter.setMethodParam("_m");
        return methodFilter;
    }
Rest原理(表单提交要使用REST的时候)
表单提交会带上_method=PUT
请求过来被HiddenHttpMethodFilter拦截
请求是否正常,并且是POST
获取到_method的值。
兼容以下请求;PUT.DELETE.PATCH
原生request(post),包装模式requesWrapper重写了getMethod方法,返回的是传入的值。
过滤器链放行的时候用wrapper。以后的方法调用getMethod是调用requesWrapper的。
Rest使用客户端工具,
如PostMan直接发送Put、delete等方式请求,无需Filter。
举报

相关推荐

0 条评论