前后端交互案例,图书管理系统

先引入前端代码运行看看是否有问题

图书管理系统

定义前后端交互接口

1.登录

URL : /user/login

参数 : userName=?&password=?

响应 : true/false

2.图书列表展示 :

URL : /book/getBookList

参数 : 无

响应 : List<BookInfo>

后端代码如下:

package com.example.book;

import lombok.Data;

import java.math.BigDecimal;

@Data
public class BookInfo {
    private Integer id;
    private String bookName;
    private String author;
    private Integer count;
    private BigDecimal price;
    private String publish;
    private Integer status;//0表示可借阅,1表示不可借阅
    private String statusCN;
}
package com.example.book;

import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpSession;

@RequestMapping("/user")
@RestController
public class UserController {
    @RequestMapping("/login")
    public Boolean login(String userName, String password, HttpSession session){
        //校验参数
        if (!StringUtils.hasLength(userName) || !StringUtils.hasLength(password)){
            return false;
        }
        //验证账号密码是否正确
        if ("aaa".equals(userName)&&"aaa".equals(password)){
            //这里不要写成 if(userName.equals("aaa")){}这种写法,因为如果userName为null,会报空指针异常
            //这是开发习惯,需要养成
            //存Session
            session.setAttribute("userName",userName);
            //账号密码正确
            return true;
        }
        return false;
    }
}
package com.example.book;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.awt.print.Book;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;

@RequestMapping("/book")
@RestController
public class BookController {
    @RequestMapping("/getBookList")
    public List<BookInfo> getBookList(){
        //1.获取图书的数据
        //2.对图书的数据进行一些处理
        //3.返回数据
        //4.mock 表示虚拟的假数据,专业术语
        List<BookInfo> bookInfos = mockData();
        for (BookInfo bookInfo:bookInfos){
            if (bookInfo.getStatus()==1){
                bookInfo.setStatusCN("可借阅");
            }else{
                bookInfo.setStatusCN("不可借阅");
            }
        }
        return bookInfos;
    }

    private List<BookInfo> mockData() {
        //优化小tip:对于已知的数据量,或者大概知道这个集合的数据量时,创建List时,建议指定初始化容量
        List<BookInfo> bookInfos = new ArrayList<>(15);
        for (int i = 0;i<15;i++){
            BookInfo bookInfo = new BookInfo();
            bookInfo.setId(i);
            bookInfo.setBookName("图书"+i);
            bookInfo.setAuthor(("作者"+i));
            bookInfo.setCount(new Random().nextInt(200));
            bookInfo.setPrice(new BigDecimal(new Random().nextInt(100)));
            bookInfo.setPublish("出版社"+1);
            bookInfo.setStatus(i%5==0?2:1);
            bookInfos.add(bookInfo);
        }
        return bookInfos;
    }
}

然后我们在postman 先进行测试看看有没有问题,返回 true 那就是没问题了

另一个也没问题

然后对前端的代码进行补充,这样就做完了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/139763.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

飞天使-django概念之urls

urls 容易搞混的概念&#xff0c;域名&#xff0c;主机名&#xff0c;路由 网站模块多主机应用 不同模块解析不同的服务器ip地址 网页模块多路径应用 urlpatterns [ path(‘admin/’, admin.site.urls), path(‘’, app01views.index), path(‘movie/’, app01views.movi…

完整版Java电子病历EMR编辑器系统源码

电子病历&#xff08;EMR&#xff09;是提供给医院机构内部使用&#xff0c;利用电子计算机保存、管理、传输和重现数字化的病人的医疗记录&#xff0c;在此基础上充分考虑患者信息的保密性&#xff0c;提高医疗质量和医治效率等服务功能的计算机信息系统。 一、电子病历编辑器…

成都爱尔周进院长解析高度近视可能引发哪些疾病

当代各类人群面对电脑、手机屏幕的时长显著增加&#xff0c;导致用眼过度、疲劳&#xff0c;视觉质量下降&#xff0c;近视人群越来越多。而当父母有一方为高度近视甚至可能将近视遗传给孩子。 目前&#xff0c;全球近视人数约25亿&#xff0c;中国近视人群人数多达6亿。据预测…

美国BGP服务器有哪些优势?

​  在当今数字化时代&#xff0c;网络连接的性能和可靠性对于企业和个人来说至关重要。而美国作为全球互联网的中心之一&#xff0c;其地区BGP服务器拥有许多优势。  网络性能和可靠性&#xff1a;美国BGP专线服务器采用BGP协议&#xff0c;一种高级动态路由协议&#xff…

幼师一旦开窍,工作真的没有这么难

真心希望所有新手幼教老师都能知道啊 只有输入关键词和要求&#xff0c;几秒就能生成一篇教案&#xff0c;从教学目标到教学内容都能给你安排的妥妥的。而且可以多次生成&#xff0c;每次生成都是不一样的内容。 什么教案、发言稿、总结、评语都能用的上啊&#xff0c;幼师姐…

计算机网络:IP 地址的编址

IP 地址的编址方式经历了三个历史阶段&#xff1a; 1. 分类的 IP 地址&#xff1b; 2. 子网的划分&#xff1b; 3. 构成超网。 1. 分类的 IP 地址 由两部分组成&#xff0c;网络号和主机号&#xff0c;其中不同类别具有不同的网络号长度&#xff0c;并且是固定的。 IP 地址 :: …

2024年武汉市中级工程师职称申报流程

很多人评审职称不知道职称申报需要走哪些步骤&#xff0c;不是很了解职称申报的一个过程&#xff0c;今天秋禾火告诉大家武汉职称申报流程是哪些&#xff0c;带你快速了解 首先是职称申报方式 职称评审目前是系统网上申报和线下送审纸质材料的双结合方式申报个人通过“湖北省…

系统韧性研究(4)| 系统韧性的技术分类

系统韧性技术是任何提高系统韧性的架构、设计或实现技术。这些技术&#xff08;例如缓解措施&#xff0c;如冗余、保障措施和网络安全对策&#xff09;或被动地抵御逆境或主动检测逆境&#xff0c;并对其做出反应&#xff0c;亦或者从它们造成的伤害中恢复过来。系统韧性技术是…

Makefile的简单语法学习

通配符 假如一个目标文件所依赖的依赖文件很多&#xff0c;那样岂不是我们要写很多规则&#xff0c;这显然是不合乎常理的&#xff0c;我们可以使用通配符&#xff0c;来解决这些问题。 我们对上节程序进行修改&#xff0c;代码如下&#xff1a; test : a.o b.ogcc -o test $…

腾讯云服务器多少钱一年?2023年腾讯云优惠云服务器推荐

作为一名程序员&#xff0c;技术的突飞猛进是从拥有第一台云服务器开始的。那时&#xff0c;我开始尝试使用Linux系统&#xff0c;并成功上线了自己的第一个小程序。自此之后&#xff0c;我和我的同事们都开始拥有自己的云服务器&#xff0c;用来搭建各种小项目或者好玩的东西。…

ubuntu操作系统的docker更换存储目录

前言 要将Docker的存储目录更改为/home/docker&#xff0c;你需要进行以下步骤&#xff1a; 目录 前言1、停止Docker服务2、创建新的存储目录3、编辑Docker配置文件4、启动Docker服务5、验证更改 1、停止Docker服务 首先停止Docker守护进程&#xff0c;可以使用以下命令&…

多语言TTS:Multilingual speech synthesis

文章目录 [Learning to Speak Fluently in a Foreign Language:Multilingual Speech Synthesis and Cross-Language Voice Cloning](https://arxiv.org/abs/1907.04448)[2019interspeech][google][Improving Cross-lingual Speech Synthesis with Triplet Training Scheme](htt…

107.am40刷机折腾记3-firefly镜像的烧写

1. 平台&#xff1a; rk3399 am40 4g32g 2. 内核&#xff1a;firefly的内核&#xff08;整体镜像&#xff09; 3. 交叉编译工具 &#xff1a;暂时不编译 4. 宿主机&#xff1a;ubuntu18.04 5. 需要的素材和资料&#xff1a;boot-am40-20231113.img(自编译) 准备的情况&a…

四点定球-克拉默法则

一、原理 使用克拉默法则进行四点定球 - 知乎 二、代码实现 c /// <summary> /// 四个不共面的点 用克拉默法则 计算球心和半径 /// </summary> /// <param name"p1"></param> /// <param name"p2"></param> /// &l…

考前须知-2024年上半年系统集成项目管理工程师

可以看看23年下半年软考集成考试的难度 一、考试时间安排&#xff1a; 集成考试一年会考2次&#xff0c;上半年一次、下半年一次。考试时间4h&#xff0c;分批进行 系统集成项目管理工程师教材共655页&#xff0c;分为23章。其中,前3章为信息化与系统集成基础知识的内容,第4章…

阿里回应多款应用崩了

在11月12日晚间&#xff0c;一场突如其来的故障席卷了阿里云&#xff0c;导致包括淘宝、钉钉、阿里云盘在内的多款应用无法正常使用。这场故障引起了用户和业界的广泛关注&#xff0c;许多用户纷纷在社交媒体上表达了对此的不满和担忧。据用户反馈&#xff0c;当晚突然发现包括…

python中的字符串转字节码

res int.from_bytes(hello.encode(), byteorderlittle)res的结果为478560413032&#xff0c;这个结果怎么计算得到的呢&#xff1f; 将hello的每个字母的ascii码从右往左排列&#xff0c;拼接起来转成十进制就是res的结果。 拼接的结果为&#xff1a;011011110110110001101100…

【Unity插件】2D模拟绳子的插件——Rope 2D Editor

文章目录 前言资源unity商店地址&#xff1a;我这里有一个比较老旧的版本&#xff1a; 使用创建绳子场景使用时效果 参考完结 前言 最近发现一个很有意思的插件Rope 2D Editor&#xff0c;这是一个简单而强大的 2d 绳索编辑器。这是我为我的游戏&#xff08;Dabdob&#xff09…

[WSL] 安装hive3.1.2成功后, 使用datagrip连接失败

org.apache.hadoop.ipc.RemoteException:User: xxx is not allowed to impersonate anonymous 下载driver-hive-jdbc-3.1.2-standalone 解决 修改hadoop 配置文件 etc/hadoop/core-site.xml,加入如下配置项 <property><name>hadoop.proxyuser.你的用户名.hosts…

Postgresql数据类型-数组类型

PostgreSQL支持一维数组和多维数组&#xff0c;常用的数组类型为数字类型数组和字符型数组&#xff0c;也支持枚举类型、复合类型数组。 数组类型定义 先来看看数组类型的定义&#xff0c;创建表时在字段数据类型后面加方括号“[]”即可定义数组数据类型&#xff0c;如下所示…