Java中GET请求与POST请求,前端传参与后端接收实例

2023-11-17

此示例以代码方式展现,可直接结合controller层每个接口上方注释与其接口传递参数方式理解!

前端传参直接就以apiPost工具来代替

apiPost调用后端接口几种方式

 

代码:

 controller层:

package com.chensir.ceshi.controller;

import com.chensir.ceshi.entity.User;
import com.chensir.ceshi.service.GetAndPostService;
import com.chensir.handler.Result;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.List;

@RestController
@RequestMapping("/testGetAndPost")
public class GetAndPostController {

    @Resource
    private GetAndPostService getAndPostService;

    /**
     * 1、可查询全部(什么都不传):http://localhost:8088/testGetAndPost/select1
     * 2、body json方式  值传不过来
     * 3、可 ?拼接(query):http://localhost:8088/testGetAndPost/select1?sex=男
     * 4、body中form-data 值能传过来 可以查询 x-www-form-urlencoded 值传不过来 不能查询
     *
     */
    @GetMapping("/select1")
    public Result<Object> selectUser(User user) {
        List<User> userList= getAndPostService.selectUser(user);
        return Result.ok(userList);
    }

    /**
     * 1、查询全部(什么都不传)提示错误请求:http://localhost:8088/testGetAndPost/select2
     * 2、body json方式:可以查询
     * 3、?拼接(query)提示错误请求:http://localhost:8088/testGetAndPost/select1?sex=男
     * 4、body中form-data、x-www-form-urlencoded 提示错误请求
     *
     */
    @GetMapping("/select2")
    public Result<Object> selectUser1(@RequestBody User user) {
        List<User> userList= getAndPostService.selectUser(user);
        return Result.ok(userList);
    }

    /**
     * 1、body json方式:值传不过来 查询为空
     * 3、?拼接(query)可以查询:http://localhost:8088/testGetAndPost/select1?name=张三
     * 4、body中form-data:可以查询; x-www-form-urlencoded:值传不过来 查询为空
     *
     */
    @GetMapping("/select3")
    public Result<Object> selectUser2(String name) {
        List<User> userList= getAndPostService.selectUserByName(name);
        return Result.ok(userList);
    }

    /**
     * 1、body json方式:提示错误请求
     * 3、?拼接(query)可以查询:http://localhost:8088/testGetAndPost/select1?name=张三
     * 4、body中form-data:可以查询; x-www-form-urlencoded:提示错误请求
     *
     */
    @GetMapping("/select4")
    public Result<Object> selectUser3(@RequestParam String name) {
        List<User> userList= getAndPostService.selectUserByName(name);
        return Result.ok(userList);
    }

    /**
     * 1、只能以这样的方式:http://localhost:8088/testGetAndPost/selectUser/张三
     *
     */
    @GetMapping("/selectUser/{name}")
    public Result<Object> selectUser4(@PathVariable("name") String name) {
        List<User> userList= getAndPostService.selectUserByName(name);
        return Result.ok(userList);
    }

    /**
     * 和select3一样
     *
     */
    @GetMapping("/select5")
    public Result<Object> selectUser5(String name,Integer age) {
        List<User> userList= getAndPostService.selectUserByName1(name,age);
        return Result.ok(userList);
    }

    /**
     * 和select4一样
     *
     */
    @GetMapping("/select6")
    public Result<Object> selectUser6(@RequestParam("name") String name,@RequestParam("age") Integer age) {
        List<User> userList= getAndPostService.selectUserByName1(name,age);
        return Result.ok(userList);
    }

    /**
     * 1、只能以这样的方式:http://localhost:8088/testGetAndPost/selectUser/张三/18
     *
     */
    @GetMapping("/selectUser/{name}/{age}")
    public Result<Object> selectUser7(@PathVariable("name") String name,@PathVariable("age") Integer age) {
        List<User> userList= getAndPostService.selectUserByName1(name,age);
        return Result.ok(userList);
    }

    /**
     * 1、body json方式:值传不过来
     * 3、?拼接(query)值能传来,能新增:http://localhost:8088/testGetAndPost/select1?name=张三&age=18
     * 4、body中form-data、x-www-form-urlencoded:值都能传来,都可以新增
     *
     */
    @PostMapping("/add1")
    public Result<Object> addUser(User user){
        String msg=getAndPostService.addUser(user);
        return Result.ok(msg);
    }

    /**
     * 只能以body json
     *
     */
    @PostMapping("/add2")
    public Result<Object> addUser1(@RequestBody User user){
        String msg=getAndPostService.addUser(user);
        return Result.ok(msg);
    }

    /**
     * 1、body json方式:值传不过来
     * 3、?拼接(query)值能传来,能新增:http://localhost:8088/testGetAndPost/select1?name=张三
     * 4、body中form-data、x-www-form-urlencoded:值都能传来,都可以新增
     *
     */
    @PostMapping("/add3")
    public Result<Object> addUser2(@RequestParam("name") String name){
        String msg=getAndPostService.addUserName(name);
        return Result.ok(msg);
    }

    /**
     * 只能以 http://localhost:8088/testGetAndPost/selectUser/张三
     *
     */
    @PostMapping("/add4/{name}")
    public Result<Object> addUser3(@PathVariable("name") String name){
        String msg=getAndPostService.addUserName(name);
        return Result.ok(msg);
    }
}

service层:

public interface GetAndPostService {
    List<User> selectUser(User user);

    List<User> selectUserByName(String name);

    List<User> selectUserByName1(String name, Integer age);

    String addUser(User user);

    String addUserName(String name);
}





@Service
public class GetAndPostServiceImpl implements GetAndPostService {

    @Resource
    private GetAndPostMapper getAndPostMapper;


    @Override
    public List<User> selectUser(User user) {
        System.out.println(user.getName());
        return getAndPostMapper.selectUserList(user);
    }

    @Override
    public List<User> selectUserByName(String name) {
        return getAndPostMapper.selectUserByName(name);
    }

    @Override
    public List<User> selectUserByName1(String name, Integer age) {
        return getAndPostMapper.selectUserByName1(name,age);
    }

    @Override
    public String addUser(User user) {
        if (user==null){
            return "user为空";
        }
        int insert = getAndPostMapper.insert(user);
        return insert>0?"ok":"false";
    }

    @Override
    public String addUserName(String name) {
        if (name==null){
            return "name为空";
        }
        User user= User.builder()
                .name(name)
                .build();
        int insert = getAndPostMapper.insert(user);
        return insert>0?"ok":"false";
    }
}

mapper层:

public interface GetAndPostMapper extends BaseMapper<User> {

    List<User> selectUserList(@Param("query") User user);

    List<User> selectUserByName(String name);

    List<User> selectUserByName1(String name, Integer age);
}

xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.chensir.ceshi.mapper.GetAndPostMapper">

    <select id="selectUserList" resultType="com.chensir.ceshi.entity.User">
        select * from user
        where 1=1
        <if test="query.name != null and query.name != ''">
            and name = #{query.name}
        </if>
        <if test="query.age != null">
            and age = #{query.age}
        </if>
        <if test="query.sex != null and query.sex != ''">
            and sex = #{query.sex}
        </if>
    </select>
    <select id="selectUserByName" resultType="com.chensir.ceshi.entity.User">
        select * from user where name=#{name}
    </select>
    <select id="selectUserByName1" resultType="com.chensir.ceshi.entity.User">
        select * from user where name=#{name} and age=#{age}
    </select>
</mapper>

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java中GET请求与POST请求,前端传参与后端接收实例 的相关文章

  • Gradle 构建错误:无法从 https://repo1.maven.org/maven2/io/fabric/tools/gradle/maven-metadata.xml 加载 Maven 元数据

    我在 Android studio 中遇到 gradle 构建错误 如下所示 Error A problem occurred configuring project MyApp Could not resolve all dependen
  • 如何让 BlazeDS 忽略属性?

    我有一个 java 类 它有一个带有 getter 和 setter 的字段 以及第二对 getter 和 setter 它们以另一种方式访问 该字段 public class NullAbleId private static final
  • Mockito:如何通过模拟测试我的服务?

    我是模拟测试新手 我想测试我的服务方法CorrectionService correctPerson Long personId 实现尚未编写 但这就是它将执行的操作 CorrectionService将调用一个方法AddressDAO这将
  • 在内存中使用 byte[] 创建 zip 文件。 Zip 文件总是损坏

    我创建的 zip 文件有问题 我正在使用 Java 7 我尝试从字节数组创建一个 zip 文件 其中包含两个或多个 Excel 文件 应用程序始终完成 没有任何异常 所以 我以为一切都好 当我尝试打开 zip 文件后 Windows 7 出
  • 使用 LinkedList 实现下一个和上一个按钮

    这可能是一个愚蠢的问题 但我很难思考清楚 我编写了一个使用 LinkedList 来移动加载的 MIDI 乐器的方法 我想制作一个下一个和一个上一个按钮 以便每次单击该按钮时都会遍历 LinkedList 如果我硬编码itr next or
  • .properties 中的通配符

    是否存在任何方法 我可以将通配符添加到属性文件中 并且具有所有含义 例如a b c d lalalala 或为所有以结尾的内容设置一个正则表达式a b c anything 普通的 Java 属性文件无法处理这个问题 不 请记住 它实际上是
  • jQuery AJAX 调用 Java 方法

    使用 jQuery AJAX 我们可以调用特定的 JAVA 方法 例如从 Action 类 该 Java 方法返回的数据将用于填充一些 HTML 代码 请告诉我是否可以使用 jQuery 轻松完成此操作 就像在 DWR 中一样 此外 对于
  • Java 集合的并集或交集

    建立并集或交集的最简单方法是什么Set在 Java 中 我见过这个简单问题的一些奇怪的解决方案 例如手动迭代这两个集合 最简单的单行解决方案是这样的 set1 addAll set2 Union set1 retainAll set2 In
  • 在 junit 测试中获取 javax.lang.model.element.Element 类

    我想测试我的实用程序类 ElementUtils 但我不知道如何将类作为元素获取 在 AnnotationProcessors 中 我使用以下代码获取元素 Set
  • 帮助将图像从 Servlet 获取到 JSP 页面 [重复]

    这个问题在这里已经有答案了 我目前必须生成一个显示字符串文本的图像 我需要在 Servlet 上制作此图像 然后以某种方式将图像传递到 JSP 页面 以便它可以显示它 我试图避免保存图像 而是以某种方式将图像流式传输到 JSP 自从我开始寻
  • jdbc mysql loginTimeout 不起作用

    有人可以解释一下为什么下面的程序在 3 秒后超时 因为我将其设置为在 3 秒后超时 12秒 我特意关闭了mysql服务器来测试mysql服务器无法访问的这种场景 import java sql Connection import java
  • 像 Java 这样的静态类型语言中动态方法解析背后的原因是什么

    我对 Java 中引用变量的动态 静态类型和动态方法解析的概念有点困惑 考虑 public class Types Override public boolean equals Object obj System out println i
  • 内部类的构造函数引用在运行时失败并出现VerifyError

    我正在使用 lambda 为内部类构造函数创建供应商ctx gt new SpectatorSwitcher ctx IntelliJ建议我将其更改为SpectatorSwitcher new反而 SpectatorSwitcher 是我正
  • 如何在谷歌地图android上显示多个标记

    我想在谷歌地图android上显示带有多个标记的位置 问题是当我运行我的应用程序时 它只显示一个位置 标记 这是我的代码 public class koordinatTask extends AsyncTask
  • java for windows 中的文件图标叠加

    我正在尝试像 Tortoise SVN 或 Dropbox 一样在文件和文件夹上实现图标叠加 我在网上查了很多资料 但没有找到Java的解决方案 Can anyone help me with this 很抱歉确认您的担忧 但这无法在 Ja
  • 专门针对 JSP 的测试驱动开发

    在理解 TDD 到底是什么之前 我就已经开始编写测试驱动的代码了 在没有实现的情况下调用函数和类可以帮助我以更快 更有效的方式理解和构建我的应用程序 所以我非常习惯编写代码 gt 编译它 gt 看到它失败 gt 通过构建其实现来修复它的过程
  • 包 javax.el 不存在

    我正在使用 jre6 eclipse 并导入 javax el 错误 包 javax el 不存在 javac 导入 javax el 过来 这不应该是java的一部分吗 谁能告诉我为什么会这样 谢谢 米 EL 统一表达语言 是 Java
  • 使用反射覆盖最终静态字段是否有限制?

    在我的一些单元测试中 我在最终静态字段上的反射中遇到了奇怪的行为 下面是说明我的问题的示例 我有一个基本的 Singleton 类 其中包含一个 Integer public class BasicHolder private static
  • 在java中为组合框分配键

    我想添加一个JComboBox在 Swing 中这很简单 但我想为组合中的每个项目分配值 我有以下代码 JComboBox jc1 new JComboBox jc1 addItem a jc1 addItem b jc1 addItem
  • 如果没有抽象成员,基类是否应该标记为抽象?

    如果一个类没有抽象成员 可以将其标记为抽象吗 即使没有实际理由直接实例化它 除了单元测试 是的 将不应该实例化的基类显式标记为抽象是合理且有益的 即使在没有抽象方法的情况下也是如此 它强制执行通用准则来使非叶类抽象 它阻止其他程序员创建该类

随机推荐

  • Failed to configure a DataSource: ‘url‘ attribute is not specified and no embedd(究极踩坑完美解决)

    前言 Failed to configure a DataSource url attribute is not specified and no embedd这个错误想必大家已经非常非常熟悉了 关于数据库配置的问题 但是这种错误还有一种坑
  • 2017服务器cpu性能排行,CPU性能怎么看?桌面CPU天梯图2017年12月最新版

    马上注册 结交更多好友 享用更多功能 您需要 登录 才可以下载或查看 没有帐号 注册 x 本帖最后由 哼哈二将 于 2018 4 10 13 44 编辑 CPU性能怎么看 桌面CPU天梯图2017年12月最新版 今天是12月11日 每个月本
  • 【翻译】如何使混合型会议不至于太糟糕

    混合会议又回来了 人们正在享受它们 并发现它们很有用 这是犹他大学的会议科学家约瑟夫 艾伦博士的新研究的惊人发现 这个发现让艾伦博士感到惊讶 当然也让我感到惊讶 像大多数远程团队工作的专家一样 我长期以来一直建议采用 一个远程 所有远程 的
  • 使用Arduino开发ESP32(17):固件更新演示

    文章目录 目的 基础说明 使用演示 通过SD卡更新固件 通过网页更新固件 总结 目的 很多时候我们会有因为bug修复 功能增加等情况需要对已投产使用的设备更新固件 这种情况下再使用工具通过串口烧录固件就不是那么方便了 比较常用的是通过网络或
  • 分享一下

    链接 https pan baidu com s 1RxTElM9DLqSjhKeWPY Ww 提取码 hwsv
  • iframe子页面获取父页面控件赋值时报错Uncaught SyntaxError: Invalid or unexpected token

    在父页面嵌入了一个iframe来实现上传图片 上传成功后获取父页面的一个input并把图片保存路径赋值给它 这是我之前在ssh里面的写法 是可以的 但是拿过来用就不行了 通过浏览器调试发现报错 Uncaught SyntaxError In
  • MySQL监控和预警

    1 摘要 本人从事Java Web开发 在项目开发中会用到很多中间件 本文主要介绍MySQL监控的一点心得和使用 公司DBA也有相应的监控 但是我们的业务比较重要 想做一个备份监控 对MySQL监控需要做监控和预警 首先需要有数据 数据采集
  • Android进阶宝典 -- 插件化1(加载插件中类)

    什么是插件化 插件化对于Android应用能起到什么好处 可能对于插件化不熟悉的伙伴们都会有这个疑问 或许你在项目中已经遇到过这个问题 只不过是不知道需要采用什么样的方式去解决 我们看下面这个场景 一个应用主模块20M 其他3个模块可以看做
  • 国王和金矿问题

    国王和金矿问题 描述 有一个国家发现了max n座金矿 参与挖矿工人的总数是max people人 每座金矿的黄金储量不同为一维数组gold 需要参与挖掘的工人数也不同为一维数组peopleNeed 每座金矿要么全挖 要么不挖 不能派出一半
  • python爬虫学习笔记-CSS(大致了解)

    CSS中文译作 层叠样式表 或者是 级联样式表 是用于控制网页外观处理并允许将网页的表现与内容分离的一种标记性语言 CSS不需要编译 可以直接由浏览器执行 属于浏览器解释型语言 是Web网页开发技术的重要组成部分 那么接下来 继续看下 使用
  • 6种JavaScript判断数组是否包含某个值的方法

    我们在项目开发过程中 经常会要检查一个数组 无序 是否包含一个特定的值 这是一个在JavaScript中经常用到的并且非常有用的操作 下面给出几种实现方式 方式一 利用循环 这种方式是比较老的实现方案 但不可否认的是在浏览器中效率较高 fu
  • 标识符与关键字,常量和变量

    标识符 标识符是有效字符序列 是一个对象的名字 用于标识用户自己定义大的变量 符号常量 函数名 数组名 类型名等 前面学习大的例子中的整型变量num 浮点型变量fnum 字符变量ch等等 均为用户定义的标识符 命名规则 不能是关键字 只能由
  • 使用HTTPS模式建立高效爬虫IP服务器详细步骤

    嘿 各位爬虫小伙伴们 想要自己建立一个高效的爬虫IP服务器吗 今天我就来分享一个简单而强大的解决方案 使用HTTPS模式建立工具 本文将为你提供详细的操作步骤和代码示例 让你快速上手 轻松建立自己的爬虫IP服务器 1 准备工作 在开始之前
  • 漏洞复现----ThinkCMF框架任意内容包含漏洞分析复现

    0x00 简介 ThinkCMF是一款基于ThinkPHP MySQL开发的中文内容管理框架 ThinkCMF提出灵活的应用机制 框架自身提供基础的管理功能 而开发者可以根据自身的需求以应用的形式进行扩展 每个应用都能独立的完成自己的任务
  • Error - Found cycle in the ListNode

    这是我在刷力扣206题时遇到的问题 报错的原因很简单 在我反转链表的时候 先定义了一个新的头结点first 把原来的头结点head放在了新的链表的第一个 然后以此遍历原有链表 把每个链表加到新链表头结点first的后面 形成了链表的反转 但
  • 迷惑度/困惑度/混乱度(preplexity)

    语言模型构造完成后 如何确定好坏呢 目前主要有两种评价方法 实用方法 通过查看该模型在实际应用 如拼写检查 机器翻译 中的表现来评价 优点是直观 实用 缺点是缺乏针对性 不够客观 理论方法 迷惑度 困惑度 混乱度 preplexity 其基
  • 【VS安装记录】Visual Studio 2022安装教程(超详细)

    大家好 我是雷工 由于更换了电脑 很多软件需要重新安装 为了方便学习C 今天有时间安装下Visual Studio 2022 顺便记录安装过程 1 从官网下载并解压软件压缩包 然后打开文件夹 2 双击 visual studio 2022
  • 搭建微服务下统一认证授权服务,鉴权客户端大致流程(基于无状态)

    1 简介 基于无状态令牌 jwt 的认证方案 服务端无需保存用户登陆状态 基于spring security框架 oauth2协议 搭建 基于spring cloud nacos 服务调用使用RestTemplate 前置知识 jwt 也就
  • VUE 常用指令

    目录 Vue概念 同类产品 官网 特点 渐进式框架 入门案例 html 改造入门案例 html MVVM框架 基础语法 运算符 operator 方法 methods Vue解析数据 三种data值的写法 高级用法 v 命令 指令集 双向绑
  • Java中GET请求与POST请求,前端传参与后端接收实例

    此示例以代码方式展现 可直接结合controller层每个接口上方注释与其接口传递参数方式理解 前端传参直接就以apiPost工具来代替 apiPost调用后端接口几种方式 代码 controller层 package com chensi