三.SpringBoot-controller控制器

SpringBoot-controller控制器

web入门-控制器

  • Spring Boot将传统Web开发的mvc、json、 tomcat等框架整合,提供了 spring-boot-starter-web组件,简化了Web应用配置。
  • 创建SpringBoot项目勾选Spring Web选项后,会自动将spring-boot-starter web组件加入到项目中。
  • spring-boot-starter-web启动器主要包括web、webmvc、 json、 tomcat等 基础依赖组件,作用是提供Web开发场景所需的所有底层依赖。
  • webmvc为Web开发的基础框架,json为JSON数据解析组件,tomcat为自带 的容器依赖。
Java 复制代码
SpringBoot提供了@Controller和@RestController两种注解来标识此类负责接收和处理HTTP请求。
如果请求的是页面和数据,使用@Controller注解即可;
如果只是请求数据,则可以使用@RestController注解。

@RestController注解

默认情况下,@RestController注解会将返回的对象数据转化为JSON格式


路由映射

  • @RequestMapping注解主要负责URL的路由映射。它可以添加在Controller 类或者具体的方法上。
  • 如果添加在Controller类上,则这个Controller中的所有路由映射都将会加上此 映射规则,如果添加在方法上,则只对当前方法生效。
  • @RequestMapping注解包含很多属性参数来定义HTTP的请求映射规则。常 用的属性参数如下:
  • value:请求URL的路径,支持URL模板、正则表达式,注意这里有通配符的问题需要注意 *,**,?
  • method: HTTP请求方法

参数传递

java 复制代码
@RequestParam将请求参数绑定到控制器的方法参数上,接收的参数来自
HTTP请求体或请求url的QueryString,当请求的参数名称与Controller的业务
方法参数名称一致时@RequestParam可以省略
@PathVaraible:用来处理动态的URL,URL的值可以作为控制器中处理方法
的参数
@RequestBody接收的参数是来自requestBody中,即请求体。一般用于处理
非Content-Type: application/x-www-form-urlencoded编码格式的数据,
比如:'application/json^、 application/xml 等类型的数据

实例:

get请求参数拼接在请求地址后后面,在浏览器直接访问

java 复制代码
//前端传入参数名和后端方法参数明相同时直接接收
@RestController
public class HelloWorld {
    @RequestMapping(value = "/hello1",method = RequestMethod.GET)
    public String hello1(String username,String phone){
        return "hello bad world " + username;
    }
}

//不同的时候需要使用注解@RequestParam将传入的参数和后端接收的参数绑定
//此时如果前端没有传入注解中命名的参数会报错
 @RequestMapping(value = "/hello2",method = RequestMethod.GET)
    public String hello2(@RequestParam(name = "username") String name, String phone){
        return "hello bad world " + name;
    }

post请求参数放在请求体中(其实也可以放在url后面),需要借助工具: postman ApiPost等发送post请求

java 复制代码
    //此时的post请求参数要和我们后端方法的参数一致
    // 这里我们使用了一个实体类来接收参数,多个此段不用一一写出
    @RequestMapping(value = "/hello3",method = RequestMethod.POST)
    public String hello3(User user){
        System.out.println(user);
        return "Post请求发送成功";
    }

postman发送post请求

注意如果Post请求发送的是JSON格式的数据,后端方法中需要使用@RequestBody获取对应的json参数

java 复制代码
 @RequestMapping(value = "/hello3",method = RequestMethod.POST)
    public String hello3(@RequestBody User user){
        System.out.println(user);
        return "Post请求发送成功";
    }
相关推荐
Java猿_1 小时前
Spring Boot 集成 Sa-Token 实现登录认证与 RBAC 权限控制(实战)
android·spring boot·后端
小王师傅662 小时前
【轻松入门SpringBoot】actuator健康检查(上)
java·spring boot·后端
醒过来摸鱼2 小时前
Java classloader
java·开发语言·python
专注于大数据技术栈2 小时前
java学习--StringBuilder
java·学习
loosenivy2 小时前
企业银行账户归属地查询接口如何用Java调用
java·企业银行账户归属地·企业账户查询接口·企业银行账户查询
IT 行者2 小时前
Spring Security 6.x 迁移到 7.0 的完整步骤
java·spring·oauth2
JIngJaneIL2 小时前
基于java+ vue农产投入线上管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot
东东的脑洞2 小时前
【面试突击二】JAVA基础知识-volatile、synchronized与ReentrantLock深度对比
java·面试
川贝枇杷膏cbppg3 小时前
Redis 的 AOF
java·数据库·redis
吃喝不愁霸王餐APP开发者3 小时前
Java后端系统对接第三方外卖API时的幂等性设计与重试策略实践
java·开发语言