SpringBoot学习篇4[RESTful介绍、Controller编写、视图解析器、拦截器、参数转换器]

本文详细介绍了SpringBoot中RESTful接口设计,Controller的编写,包括如何接收前端数据,如单个值、表单、JSON,以及如何利用Model、Map、Session和JSON返回数据。此外,还讨论了视图解析器、拦截器和参数转换器的配置与使用,帮助理解Spring MVC的扩展功能。
摘要由CSDN通过智能技术生成

1.1 RESTful风格接口介绍

RESTful是目前最流行的 API 设计规范,用于 Web 数据接口的设计。通过不同的HTTP请求方法来实现对资源的CRUD操作,请求URL为"/资源名称/资源标识"的形式,用到的HTTP请求方法如下:

  • GET:读取(Read)
  • POST:新建(Create)
  • PUT:更新(Update)
  • PATCH:更新(Update),通常是部分更新
  • DELETE:删除(Delete)

举例:

操作 普通接口URL RESTful接口URL
查询全部 /getDevices (GET) /devices
查询单个 /getDevice?id=xxx (GET) /devices/{id}
添加 /addDevice (POST) /devices
修改 /updateDevice (PUT) /devices/{id}
删除 /deleteDevice (DELETE) /devices/{id}

通过上面的对比,可以看到RESTful风格接口更加简洁。
关于更为详细的RESTful接口介绍推荐这一篇文章

1.2 编写Controller

Controller的编写非常简单,只需要两个注解+一个处理方法即可。
在controller包下编写UserController类,代码结构如下:

@Controller
public class UserController
{
   
    @PostMapping("/login")
    public String login()
    {
   
    	....
		return "success";
    }
}
  • @Controller表明该类为Spring MVC的一个控制器
  • @PostMapping("/login")表示只要是uri为/login的POST请求,就交由该方法处理。等同于@RequestMapping(value = “/login”,method = RequestMethod.POST)
  • return "success"表示返回/success界面。
    在这里插入图片描述

1.3 前端提交数据给后端

1.3.1 获取单个值

编写login.html,代码如下:

<!DOCTYPE html>
<html lang="en">
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>用户登陆</title>
</head>
<body>
    <form action="/login" method="POST">
        用户名:<input type="text" name="userName"><br>
        密码:<input type="password" name="password"><br>
        <input type="submit" value="提交">
        <input type="reset" value="重置">
    </form>
</body>
</html>

UserController代码如下:

@Controller
public class UserController
{
   
    Logger logger = LoggerFactory.getLogger(UserController.class);
    @PostMapping("/login")
    public String login(@RequestParam(value = "userName") String userName,@RequestParam(value = "password") String password)
    {
   
        logger.info("username:" + userName + ",password:" + password);
        return "success";
    }
}

在这里使用@RequestParam注解单个获取值,并注入到参数列表中。可以看到成功获取到了数据:
在这里插入图片描述
注:如果Controller中的变量名和html页面中的变量名一致,可以不加@RequestParam注解,Spring会自动匹配。

public String login(String userName,String password)
{
   
	...
}

1.3.2 表单提交数据到对象

新创建User对象,代码如下:

public class User
{
   
    private String userName;
    private String password;
    getter().....
    setter().....
    toString()....
}

修改Controller代码如下:

    @PostMapping("/login")
    public String login(User user)
    {
   
        logger.info(String.valueOf(user));
        return "success";
    }

值同样被注入进来了
在这里插入图片描述

1.3.3 获取PathValue

在前面的RESTful章节,我们看到了类似于这样的URI:devices/{id},那这里的id怎么获取呢?接下来演示一下:
在UserController新创建以下方法:

	@GetMapping("/user/{id}")
    public String get(@PathVariable("id") Integer id)
    {
   
        logger.
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值