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请求,前端传参与后端接收实例 的相关文章

随机推荐

  • 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