03-SpringMVC_RESTful

SpringMVC_RESTful1. REST风格是什么2. URL示例3. 实验代码3.1 配置HiddenHttpMethodFilter过滤器3.2 代码3.3 请求链接1. REST风格是什么资源(Resources):网络上的一个实体,或者说是网络上的一个具体信息。它可以是一段文本、一张图片、一首歌曲、一种服务,总之就是一个具体的存在。可以用一个URI(统一资源定位符)指向...
摘要由CSDN通过智能技术生成

1. REST风格是什么

  1. 资源(Resources):网络上的一个实体,或者说是网络上的一个具体信息。
    它可以是一段文本、一张图片、一首歌曲、一种服务,总之就是一个具体的存在。
    可以用一个URI(统一资源定位符)指向它,每种资源对应一个特定的 URI 。
    获取这个资源,访问它的URI就可以,因此 URI 即为每一个资源的独一无二的识别符。
  2. 表现层(Representation):把资源具体呈现出来的形式,叫做它的表现层(Representation)。比如,文本可以用 txt 格式表现,也可以用 HTML 格式、XML 格式、JSON 格式表现,甚至可以采用二进制格式。
  3. 状态转化(State Transfer):每发出一个请求,就代表了客户端和服务器的一次交互过程。HTTP协议,是一个无状态协议,即所有的状态都保存在服务器端。因此,如果客户端想要操作服务器,必须通过某种手段,让服务器端发生“状态转化”(State Transfer)。 而这种转化是建立在表现层之上的,所以就是 “表现层状态转化”。
  4. 具体说,就是 HTTP 协议里面,四个表示操作方式的动词:GET、POST、PUT、DELETE。 它们分别对应四种基本操作:GET 用来获取资源,POST 用来新建资源,PUT 用来更新资源,DELETE 用来删除资源。

以简洁的URL地址提交请求, 以请求方式区分对资源的操作

2. URL示例

示例:/资源名/资源标识符

/order/1  	HTTP GET :		得到 id = 1 的 order   
/order/1  	HTTP DELETE:	删除 id = 1的 order   
/order/1  	HTTP PUT:		更新id = 1的 order   
/order     	HTTP POST:		新增 order 

3. 实验代码

3.1 配置HiddenHttpMethodFilter过滤器

<!-- 支持REST风格的过滤器:可以将POST请求转换为PUT或DELETE请求 -->
<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>

3.2 代码

package com.lz.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * @ClassName MyFirstController
 * @Description: TODO
 * @Author MAlone
 * @Date 2020/2/10
 * @Version V1.0
 **/

@Controller
@RequestMapping("/springmvc")
public class RESTController {

    @RequestMapping(value = "/testRESTGet/{id}", method = RequestMethod.GET)
    public String testRESTGet(@PathVariable("id") Integer id) {
        System.out.println("get id =" + id);
        return "success";
    }

    @RequestMapping(value = "/testRESTPost", method = RequestMethod.POST)
    public String testRESTPost() {
        return "success";
    }

    @ResponseBody
    @RequestMapping(value = "/testRESTDelete/{id}", method = RequestMethod.DELETE)
    public String testRESTDelete(@PathVariable("id") Integer id) {
        System.out.println("delete id =" + id);
        return "success";
    }

    @ResponseBody
    @RequestMapping(value = "/testRESTPut/{id}", method = RequestMethod.PUT)
    public String testRESTPut(@PathVariable("id") Integer id) {
        System.out.println("put id = " + id);
        return "success";
    }
}

3.3 请求链接

<%@ page contentType="text/html;charset=UTF-8" language="java" isErrorPage="true" %>

<html>
<body>
    <!-- 实验1 测试 REST风格 GET 请求 -->
    <a href="springmvc/testRESTGet/1">testREST GET</a><br/><br/>

    <!-- 实验2 测试 REST风格 POST 请求 -->
    <form action="springmvc/testRESTPost" method="POST">
        <input type="submit" value="testRESTPost">
    </form>

    <!-- 实验3 测试 REST风格 PUT 请求 -->
    <form action="springmvc/testRESTPut/1" method="POST">
        <input type="hidden" name="_method" value="PUT">
        <input type="submit" value="testRESTPut">
    </form>

    <form action="springmvc/testRESTDelete/1" method="POST">
        <input type="hidden" name="_method" value="DELETE">
        <input type="submit" value="testRESTDelete">
    </form>
</body>
</html>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值