三.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请求发送成功";
    }
相关推荐
杂货铺的小掌柜4 分钟前
apache poi excel 字体数量限制
java·excel·poi
大厂码农老A12 分钟前
你打的日志,正在拖垮你的系统:从P4小白到P7专家都是怎么打日志的?
java·前端·后端
摇滚侠14 分钟前
Spring Boot 3零基础教程,深度理解 Spring Boot 自动配置原理,笔记11
spring boot·笔记·后端
艾菜籽28 分钟前
Spring MVC入门补充2
java·spring·mvc
爆更小哇38 分钟前
统一功能处理
java·spring boot
程序员鱼皮40 分钟前
我造了个程序员练兵场,专治技术焦虑症!
java·计算机·程序员·编程·自学
n8n1 小时前
SpringAI 完全指南:为Java应用注入生成式AI能力
java·后端
不爱编程的小九九1 小时前
小九源码-springboot082-java旅游攻略平台
java·开发语言·旅游
只是懒得想了1 小时前
用C++实现一个高效可扩展的行为树(Behavior Tree)框架
java·开发语言·c++·design-patterns
码农阿树1 小时前
Java 离线视频目标检测性能优化:从 Graphics2D 到 OpenCV 原生绘图的 20 倍性能提升实战
java·yolo·目标检测·音视频