SpringMVC——RESTFul风格的简单使用

本文介绍了RESTful风格的原理及其在SpringMVC中的应用。REST(Representational State Transfer)是一种软件架构风格,强调资源、表现层和状态转换。在SpringMVC中,通过使用注解如@GetMapping、@PostMapping等实现RESTful接口。举例展示了如何创建一个简单的RESTFulController,通过路径变量简化URL并进行类型检查。测试结果显示,这种方式使得路径更简洁、安全且高效,便于参数获取和类型转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SpringMVC——RESTFul风格

1、什么是RESTFul

  • REST(Representational State Transfer):指的是一组架构约束条件和原则;

  • 满足这些约束条件和原则的应用程序或设计就是RESTFul;

  • RESTFul是一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件,它主要用于客户端和服务端交互类的软件。基于这个风格设计的软件可以更简介,更有层次,更易于实现缓存等机制。

2、RESTful的特性

资源(Resources):网络上的一个实体,或者说是网络上的一个具体信息。它可以是一段文本、一张图片、一首歌曲、一种服务,总之就是一个具体的存在。可以用一个URI(统一资源定位符)指向它,每种资源对应一个特性的URI。要获取这个资源,访问它的URI就可以,因此URI即为每一个资源的独一无二的识别符。

表现层(Representation):把资源具体呈现出来的形式,叫做它的表现层(Representation)。比如,文本可以用txt格式表现,也可以用HTML格式、XML格式、JSON格式表现,甚至可以采用二进制格式。

状态转换(State Transfer):每发出一个请求,就代表了客户端和服务器的一次交互过程。HTTP协议,是一个无状态协议,即所有的状态都保存在服务器端。因此,如果客户端想要操作服务器,必须通过某种手段,让服务器端发生“状态转换”(State Transfer)。而这种转换是建立在表现层之上的,所以就是“表现层状态转换”。具体说,就是HTTP协议里面,四个表示操作方式的动词:GET、POST、PUT、DELETE。他们分别对应四种基本操作:GET用来获取资源,POST用来新建资源,PUT用来更新资源,DELETE用来删除资源。

3、RESTFul风格的简单测试

1.新建一个类 RestFulController

package com.cheng.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;

@Controller
public class RESTFulController {
    //原来的访问路径:http://localhost:8080/add?a=1&b=99
    //RESTFul风格的访问路径:http://localhost:8080/s2/add/1/99  表示a=1,b=99

//  @RequestMapping(value = "/add/{a}/{b}",method = RequestMethod.GET) 使用method属性指定请求类型 ,当不指定请求类型时,写法为@RequestMapping("/add/{a}/{b}")
    @GetMapping("/add/{a}/{b}")//也可以用注解,等价于上面的代码
    public String test(@PathVariable int a, @PathVariable int b, Model model){// @PathVariable:让方法参数的值对应绑定到一个URI模板变量上。
        int res = a+b;
        model.addAttribute("msg","结果为"+res);
        return "hello";
    }
}

路径变量@PathVariable:让方法参数的值对应绑定到一个URI模板变量上。

2.测试结果

在这里插入图片描述

使用路径变量@PathVariable的好处:

    • 使路径变得更加简洁,安全,高效;
    • 获得参数更加方便,框架会自动进行类型转换。
    • 通过路径变量的类型可以约束访问参数,如果类型不一样,则访问不到对应的请求方法,如这里访问是的路径是/add/1/a,则路径与方法不匹配,而不会是参数转换失败。

方法级别的注解变体有如下几个:

@GetMapping(默认)
@PostMapping
@PutMapping
@DeleteMapping
@PatchMapping
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

万里顾—程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值