springboot 控制器

server/2024/9/24 7:10:55/

springboot 控制器

文章目录

    • springboot 控制器
    • 1.Controller和RestController
      • **Controller:数据和页面**
      • **RestController:数据**
      • 所以我们的controller一般在springmvc中使用,返回页面,但是现在的项目基本上都是前后端分离项目,可以多使用RestController
      • 也就是说,RequestMapping是一个标准的写法,可以替换GetMapping等,如以下代码
      • 也就是说,以下两个方式是等同的,post、delete、update等类推
    • 2.参数传递
      • @RequestParam:把传送参数绑定到方法上
        • 1.当传送参数名称和方法一样时,可以省略
        • 反之不可以
        • post方法测试参数传递
      • @PathVaraible
        • @PathVariable 是 Spring MVC 中用于处理 RESTful Web 服务时的一个注解,它允许你从 URL 中提取变量值,并将这些值绑定到控制器处理方法的参数上。这个注解通常与 @RequestMapping 或其派生注解(如 @GetMapping、@PostMapping 等)一起使用,来指定哪些请求路径和方法应该被映射。
      • @RequestBody
        • 当我们需要接受一个json的数据时,可以使用这样一个注解
        • 接口写法:
        • 测试写法:

1.Controller和RestController

在这里插入图片描述

Controller:数据和页面

在这里插入图片描述

RestController:数据

在这里插入图片描述

所以我们的controller一般在springmvc中使用,返回页面,但是现在的项目基本上都是前后端分离项目,可以多使用RestController

在这里插入图片描述

也就是说,RequestMapping是一个标准的写法,可以替换GetMapping等,如以下代码

package com.example.demo.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;@RestController
public class HelloController {//标准写法@RequestMapping(value = "/bz",method = RequestMethod.GET)public String bz(){return "bz!!";}//任何一种访问方式都行@RequestMapping("/any")public String any(){return "any!!";}//get访问方式@GetMapping("/hello")public String  hello(){return "hello啊书法大赛 world!";}
}

也就是说,以下两个方式是等同的,post、delete、update等类推

在这里插入图片描述
在这里插入图片描述

2.参数传递

在这里插入图片描述

@RequestParam:把传送参数绑定到方法上

1.当传送参数名称和方法一样时,可以省略

在这里插入图片描述

java"> @GetMapping("/hello")public String  hello(String nikename){return nikename+"你好";}
反之不可以

在这里插入图片描述

java">  @GetMapping("/hello")public String  hello(@RequestParam(value = "nikename") String name){return name+"你好";}
post方法测试参数传递
java">//Post测试参数传递@RequestMapping(value = "/test",method = RequestMethod.POST)public String test(String name,String password){return name + password;}    

这个时候我们不能单独的在浏览器测试了,需要借助postman或者是其他软件模拟浏览器发送请求,因为在输入栏我们无法传递post请求。

我这里借助idea自带的http文件测试接口

java">###
POST http://localhost:8080/test
Content-Type: application/x-www-form-urlencodedname=John+Doe&password=30<> 2024-09-23T090528.200.txt

在这里插入图片描述
对应的post接口
在这里插入图片描述
当我们使用这样的方式去传递类数据时,也是直接按照类里的各个属性,传送参数要和类里的各个属性名相同,这样代码会自动帮我们匹配,例:

java"> //Post测试参数(使用json发送多个参数,或者类参数)@RequestMapping(value = "/test1",method = RequestMethod.POST)public User test1(User user){System.out.println(user.getName());return user;}

对应的测试接口写法

java">POST http://localhost:8080/test1
Content-Type: application/x-www-form-urlencodedid=1&name=king&phone=1841891561

@PathVaraible

@PathVariable 是 Spring MVC 中用于处理 RESTful Web 服务时的一个注解,它允许你从 URL 中提取变量值,并将这些值绑定到控制器处理方法的参数上。这个注解通常与 @RequestMapping 或其派生注解(如 @GetMapping、@PostMapping 等)一起使用,来指定哪些请求路径和方法应该被映射。
java">@RestController  
@RequestMapping("/users")  
public class UserController {  @GetMapping("/{userId}")  public User getUserById(@PathVariable("userId") Long userId) {  // 这里根据userId获取用户信息,并返回User对象  // 示例代码,实际情况需要替换为真实的用户数据获取逻辑  return new User(userId, "John Doe");  }  
}

@RequestBody

当我们需要接受一个json的数据时,可以使用这样一个注解

例:

接口写法:
java">  //Post测试参数(使用json发送多个参数,或者类参数)@RequestMapping(value = "/test2",method = RequestMethod.POST)public User test2(@RequestBody User user){System.out.println(user);return user;}
}
测试写法:
java">POST http://localhost:8080/test2
Content-Type:application/json{"id": 1,"name": "king","phone": 18474314
}

http://www.ppmy.cn/server/121228.html

相关文章

GitLab 批量创建用户

GitLab 批量创建用户 引言 在团队管理中&#xff0c;经常需要为多个新成员创建 GitLab 账户。手动创建每个账户不仅耗时&#xff0c;而且容易出错。为了提高效率&#xff0c;我们可以编写一个简单的 Bash 脚本来批量创建用户。本文将详细介绍如何使用 GitLab API 和 Bash 脚本…

win10 win11 设置文件权限以解决Onedrive不能同步问题

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的&#xff0c;可以在任何平台上使用。 源码指引&#xff1a;github源…

使用llama.cpp 在推理MiniCPM-1.2B模型

llama.cpp 是一个开源项目&#xff0c;它允许用户在C中实现与LLaMA&#xff08;Large Language Model Meta AI&#xff09;模型的交互。LLaMA模型是由Meta Platforms开发的一种大型语言模型&#xff0c;虽然llama.cpp本身并不包含LLaMA模型的训练代码或模型权重&#xff0c;但它…

前端大屏自适应方案

一般后台管理页面&#xff0c;需要自适应的也就是大屏这一个&#xff0c;其他的尺寸我感觉用第三方框架继承好的就挺合适的&#xff0c;当然自适应方案也可以同步到所有页面&#xff0c;但我感觉除了 to c 的项目&#xff0c;不太需要所有页面自适应&#xff0c;毕竟都是查看和…

C++继承(上)

1.继承的概念 继承是一个类继承另外一个类&#xff0c;称继承的类为子类/派生类&#xff0c;被继承的类称为父类/基类。 比如下面两个类&#xff0c;Student和Person&#xff0c;Student称为子类&#xff0c;Person称为父类。 #include<iostream> using namespace std…

PhpStudy —— README

本教程为 PhpStudy 教程合集&#xff0c;有啥问题尽管留言笔者刚好完善一下。 0x01&#xff1a;PhpStudy 入门手册 0x0101&#xff1a;PhpStudy 简介0x0102&#xff1a;PhpStudy 安装0x0103&#xff1a;PhpStudy PHP 版本切换流程 0x02&#xff1a;PhpStudy 问题解决

计算机毕业设计之:微信小程序的校园闲置物品交易平台(源码+文档+讲解)

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…

16、斑马设备的ppocer-4进行文字识别,和opencv-mobile中文显示

基本思想:手上有个斑马设备,是客户的,简单记录一下开发过程和工程项目,同时记录跟着android小哥学习了很多anroid的知识,转ppocr-4参考之前的ppocr-3转换即可,整个框架仍然使用c++ ncnn jni框架推理和现实,图像库使用opencv-mobile 一、首先转paddle-cor-4 到ncnn的框架…