前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >springmvc的PUT请求和DELETE请求

springmvc的PUT请求和DELETE请求

作者头像
周杰伦本人
发布2023-10-12 14:32:05
2580
发布2023-10-12 14:32:05
举报
文章被收录于专栏:同步文章

springmvc 支持rest风格 一般我们发送请求 都是get请求或post请求 而rest风格告诉我们

  • 通过GET请求获取资源
  • 通过POST请求 添加资源
  • 通过PUT请求修改资源
  • 通过DELETE请求删除资源

那么 普通的springmvc搭建好之后 我们应该如何支持restful呢 web.xml中配置:

代码语言:javascript
复制
<!--4.使用Rest风格的URI,将页面普通的post请求转为指定的delete或put请求-->
    <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>
    <filter>
        <filter-name>HttpPutFormContentFilter</filter-name>
        <filter-class>org.springframework.web.filter.HttpPutFormContentFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>HttpPutFormContentFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

get和post代码就不贴了 因为我们平常玩的就是get和post请求 PUT请求 ajax:

代码语言:javascript
复制
function pauseJob(jobName,jobGroup) {
        $.ajax({
            url:url+"/quartz/pauseJob",
            data:{jobName:jobName,jobGroup:jobGroup},
            dataType:'json',
            type:"PUT",
            success:function (data) {
                if (data.status=='success') {
                    window.location.reload();
                }
            }
        });
    }

后台代码

代码语言:javascript
复制
	@RequestMapping(value = "pauseJob", method = RequestMethod.PUT)
    @ResponseBody
    public String pauseJob(@RequestParam("jobName") String jobName, @RequestParam("jobGroup") String jobGroup) {
        JSONObject jsonObject = new JSONObject();
        if (StringUtils.isEmpty(jobName) || StringUtils.isEmpty(jobGroup)) {
            jsonObject.put("status", "error");
        } else {
            quartzService1.pauseJob(jobName, jobGroup);
            jsonObject.put("status", "success");
        }
        return jsonObject.toJSONString();
    }

在发送DELETE请求时 请求参数有多个 在用RequestParma接收的时候接收不到 因此我们用RequestBody接收请求 1.引入jackson-databind包 不引入会报Http415错误

代码语言:javascript
复制
<!--@RequestBody支持-->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.5.3</version>
        </dependency>

2.DELETE请求

代码语言:javascript
复制
function deleteJob(jobName,jobGroupName,triggerName,triggerGroupName) {
        var jsonstr = {jobName:jobName,jobGroupName:jobGroupName,triggerName:triggerName,triggerGroupName:triggerGroupName};
        $.ajax({
            url:url+"/quartz/deleteJob",
            data:JSON.stringify(jsonstr),
            contentType:"application/json",
            dataType:'json',
            type:"DELETE",
            success:function (data) {
                if (data.status=='success') {
                    window.location.reload();
                }
            }
        });
    }

3.后台:

代码语言:javascript
复制
	@RequestMapping(value = "deleteJob", method = RequestMethod.DELETE)
    @ResponseBody
    public String deleteJob(@RequestBody TriggerEntity triggerEntity) {
        JSONObject jsonObject = new JSONObject();
        if (StringUtils.isEmpty(triggerEntity.getJobName()) || StringUtils.isEmpty(triggerEntity.getJobGroupName())
                || StringUtils.isEmpty(triggerEntity.getTriggerName()) || StringUtils.isEmpty(triggerEntity.getTriggerGroupName())) {
            jsonObject.put("status", "error");
        } else {
            quartzService1.deleteJob(triggerEntity);
            jsonObject.put("status", "success");
        }
        return jsonObject.toJSONString();
    }

这就可以了。 参考博客: https://blog.csdn.net/tiantiandjava/article/details/46125141#commentBox https://blog.csdn.net/liuyuanjiang109/article/details/78972644

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-10-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档