【JavaEE进阶】Spring留言板实现

目录

🎍预期结果

🍀前端代码

🎄约定前后端交互接口

🚩需求分析

🚩接口定义

🌳实现服务器端代码

🚩lombok介绍

🚩代码实现

🌴运行测试

🎄前端代码实现

🚩获取列表

🚩实现"提交"


🎍预期结果

可以发布并显示

点击提交后,显示并清除输入框

并且再次刷新后,不会清除下面的缓存

🍀前端代码

由于本文章主要讲述后端相关内容,这里就不做过多讲解前端了

前端代码如下:

🎄约定前后端交互接口

🚩需求分析

后端需要提供两个服务

  1. 提交留⾔:⽤⼾输⼊留⾔信息之后,后端需要把留⾔信息保存起来
  2. 展⽰留⾔:⻚⾯展⽰时,需要从后端获取到所有的留⾔信息

🚩接口定义

  • 1. 提交(发布留言,保存到后端)

请求:

url:/message/publish

type: post

参数:Json

响应:操作成功/失败

true/false

  • 2. 获取留言(从后端获取留言信息,显示到列表)

注意:在接口设计中,尽量保持单一原则,例如不要当前接口做了提交留言又做返回留言

全部留⾔信息,我们⽤List来表⽰,可以⽤JSON来描述这个List数据.

请求:

url:/message/getList

type:get

响应:返回Json

浏览器给服务器发送⼀个GET /message/getList 这样的请求,就能返回当前⼀共有哪些留⾔记录.结果以 json 的格式返回过来

🌳实现服务器端代码

🚩lombok介绍

这个环节为大家推荐一个工具lombok,它的出现会使我们开发起来更加简单便捷

Lombok是⼀个Java⼯具库,通过添加注解的⽅式,简化Java的开发

首先我们需要在我们的pom.xml文件下面添加以下依赖

那它有什么作用呢?又怎么使用呢?

比如以下代码

我们在获取属性时要用大量的get和set,看起来非常的不好看。而当我们使用了lombok后,代码如下;

这样也可以达到相同的效果,不仅如此@Data 注解还会帮助我们⾃动⼀些⽅法,包含getter/setter,equals,toString等

如果觉得这样使用太粗暴了,lombok也提供了一些细化的方法

它们之间的关系可以理解为:

@Data=@Getter+@Setter+@ToString+@EqualsAndHashCode+@RequiredArgsConstructor+@NoArgsConstructor

但是呢,每一次都需要引入依赖,太麻烦了,所以我们可以下载相关的插件EditStarter,安装过程与使用如下:

  • 第一步:安装插件EditStarter,重启Idea
  • 第二步:在pom.xml⽂件中,单击右键,选择Generate - EditStarter

进⼊Edit Starters的编辑界⾯,添加对应依赖即可.

🚩代码实现

第一步:定义留⾔对象MessageInfo类

第二步:创建MessageController类

由于没有学习数据库内容,这里我们使用List来存储留⾔板信息

🌴运行测试

通过Postman进行测试

测试getList接口:测试当前没有留言信息,查看是否有空指针异常,发现并没有问题

测试publish接口:发布留言接口返回成功

再次测试getList接口:当前就能收到后端返回的信息了

那么经过以上测试,当前我们的后端代码是没有问题的

🎄前端代码实现

前端所要做的事情是"提交"按钮,以及在页面加载时从后端返回的结果显示在列表上

🚩获取列表

代码:后端返回结果加载到页面上

通过postman发起三次留言请求,发送一次获取留言结果(要点击刷新):

🚩实现"提交"

在上述的前端代码中的submit方法是已经实现了提交按钮的,但是它不会走后端,就是说输入信息后点击提交,再次刷新,当前的留言信息是不存在的

当前要做的是,点击"提交"之后,让后端把这个数据保存下来

代码:在点击"提交"时,去调用后端的接口

测试:

若出现报错:

1. 按F12,若出现415,可能是页面缓存的问题,crtl+f5进行强刷

2. 若前端没有报错,页面列表不显示,查看请求是否到达后端,可通过打印日志来判断

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

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

相关文章

1.23学习

misc buuctf-小明的保险箱 打开附件是一个在线图片首先将其另存为,然后仅仅只是一个图片,而无其他信息,那么我们再进行binwalk或者foremost文件分离,得到了一个文件夹,其中含有一个压缩包但是是一个加密的&#xff0…

【Python】第五弹---深入理解函数:从基础到进阶的全面解析

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】【MySQL】【Python】 目录 1、函数 1.1、函数是什么 1.2、语法格式 1.3、函数参数 1.4、函数返回值 1.5、变量作用域 1.6、函数…

【数据结构】(1)集合类的认识

一、什么是数据结构 1、数据结构的定义 数据结构就是存储、组织数据的方式,即相互之间存在一种或多种关系的数据元素的集合。 2、学习数据结构的目的 在实际开发中,我们需要使用大量的数据。为了高效地管理这些数据,实现增删改查等操作&…

大数据Hadoop入门2

第三部分(Hadoop MapReduce和Hadoop YARN) 1.课程内容-大纲-学习目标 2.理解先分再合、分而治之的思想 3.hadoop团队针对MapReduce的设计构思 map这里不能翻译成地图,翻译为mapping比较好一点 4.Hadoop MapReduce介绍、阶级划分和进程组成 5…

什么是BFF?他有什么用?

BFF(Backend for Frontend) 是一种架构模式,专门为前端应用提供定制化的后端服务。它的核心思想是为不同的前端客户端(如 Web、移动端、桌面端等)提供专门的后端服务,而不是让所有客户端共享同一个通用的后…

【深度之眼cs231n第七期】笔记(三十一)

目录 强化学习什么是强化学习?马尔可夫决策过程(MDP)Q-learning策略梯度SOTA深度强化学习 还剩一点小尾巴,还是把它写完吧。(距离我写下前面那行字又过了好几个月了【咸鱼本鱼】)(汗颜&#xff…

K8S极简教程(4小时快速学会)

1. K8S 概览 1.1 K8S 是什么 K8S官网文档:https://kubernetes.io/zh/docs/home/ 1.2 K8S核心特性 服务发现与负载均衡:无需修改你的应用程序即可使用陌生的服务发现机制。存储编排:自动挂载所选存储系统,包括本地存储。Secret和…

SPDK vhost介绍

目录 1. vhost技术的背景与动机Virtio 介绍virtio-blk数据路径为例 2. vhost技术的核心原理2.1 vhost-kernel2.2 vhost-user举例 2.3 SPDK vhostvhost的优势IO请求处理数据传输控制链路调整 3. SPDK vhost的实现与配置3.1 环境准备3.2 启动SPDK vhost服务3.3 创建虚拟块设备3.4…

【C++数论】880. 索引处的解码字符串|2010

本文涉及知识点 数论:质数、最大公约数、菲蜀定理 LeetCode880. 索引处的解码字符串 给定一个编码字符串 s 。请你找出 解码字符串 并将其写入磁带。解码时,从编码字符串中 每次读取一个字符 ,并采取以下步骤: 如果所读的字符是…

[创业之路-270]:《向流程设计要效率》-2-企业流程架构模式 POS架构(规划、业务运营、支撑)、OES架构(业务运营、使能、支撑)

目录 一、POS架构 二、OES架构 三、POS架构与OES架构的差异 四、各自的典型示例 POS架构典型示例 OES架构典型示例 示例分析 五、各自的典型企业 POS架构典型企业 OES架构典型企业 分析 六、各自典型的流程 POS架构的典型流程 OES架构的典型流程 企业流程架构模式…

FFmpeg音视频采集

文章目录 音视频采集音频采集获取设备信息录制麦克风录制声卡 视频采集摄像机画面采集 音视频采集 DirectShow(简称DShow)是一个Windows平台上的流媒体框架,提供了高质量的多媒体流采集和回放功能,它支持多种多样的媒体文件格式&…

qt-QtQuick笔记之常见项目类简要介绍

qt-QtQuick笔记之常见项目类简要介绍 code review! 文章目录 qt-QtQuick笔记之常见项目类简要介绍1.QQuickItem2.QQuickRectangle3.QQuickImage4.QQuickText5.QQuickBorderImage6.QQuickTextInput7.QQuickButton8.QQuickSwitch9.QQuickListView10.QQuickGridView11.QQuickPopu…

Autosar-Os是怎么运行的?(多核系统运行)

写在前面: 入行一段时间了,基于个人理解整理一些东西,如有错误,欢迎各位大佬评论区指正!!! 目录 1.Autosar多核操作系统 1.1多核启动过程 1.2多核运行过程 1.2.1核间任务同步 1.2.2Counte…

spring万字面试题汇总

Spring Springboot 目录 1.什么是依赖循环? 2.Spring 如何解决循环依赖? 3. 为什么Spring解决循环依赖要用到三级缓存,二级缓存不够吗? 4.什么是Spring 的IOC? 5.什么是Spring的DI? 6.什么是spring的bean? 7.…

UiAutomator的详细介绍

UIAutomator作为一种高效的测试框架,通过自动化手段显著提升了用户界面(UI)测试的效率与准确性。它不仅支持自动生成功能测试用例,还允许开发者在不同设备上执行这些测试,确保了应用程序的一致性和稳定性。 以下是对 …

SpringBoot源码解析(八):Bean工厂接口体系

SpringBoot源码系列文章 SpringBoot源码解析(一):SpringApplication构造方法 SpringBoot源码解析(二):引导上下文DefaultBootstrapContext SpringBoot源码解析(三):启动开始阶段 SpringBoot源码解析(四):解析应用参数args Sp…

Agent群舞,在亚马逊云科技搭建数字营销多代理(Multi-Agent)(下篇)

在本系列的上篇中,小李哥为大家介绍了如何在亚马逊云科技上给社交数字营销场景创建AI代理的方案,用于社交动态的生成和对文章进行推广曝光。在本篇中小李哥将继续本系列的介绍,为大家介绍如何创建主代理,将多个子代理挂载到主代理…

美国本科申请文书PS写作中的注意事项

在完成了introduction之后,便可进入到main body的写作之中。美国本科申请文书PS的写作不同于学术论文写作,要求你提出论点进行论证之类。PS更多的注重对你自己的经历或者motivation的介绍和描述。而这一描述过程只能通过对你自己的过往的经历的展现才能体…

2024.1.22 安全周报

政策/标准/指南最新动态 01 工信部印发《关于加强互联网数据中心客户数据安全保护的通知》 原文: https://www.secrss.com/articles/74673 互联网数据中心作为新一代信息基础设施,承载着千行百业的海量客户数据,是关系国民经济命脉的重要战略资源。…