目录

JavaEE进阶Spring留言板实现

【JavaEE进阶】Spring留言板实现

目录


🎍预期结果

可以发布并显示 https://i-blog.csdnimg.cn/direct/a6b708405e3c43c8bea5c15431103b23.png

点击提交后,显示并清除输入框 https://i-blog.csdnimg.cn/direct/8c96270dd2544e99a9fb019c2bf54c09.png

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

🍀前端代码

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

前端代码如下: https://i-blog.csdnimg.cn/direct/eca43799da5849b8b5af591feb1d3205.png https://i-blog.csdnimg.cn/direct/bc9d336890714cfeb83c88d10ab5ade8.png https://i-blog.csdnimg.cn/direct/ed3d1d7bbc72422b9a94166f412585a4.png https://i-blog.csdnimg.cn/direct/6b05795ba7a24137ace66d0f2224cd00.png

🎄约定前后端交互接口

🚩需求分析

后端需要提供两个服务

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

🚩接口定义

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

请求:

url:/message/publish

type: post

参数:Json

https://i-blog.csdnimg.cn/direct/7f7fa2427e2c4f29908986e320532b11.png

响应:操作成功/失败

true/false

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

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

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

请求:

url:/message/getList

type:get

响应:返回Json

https://i-blog.csdnimg.cn/direct/a0592ccd4f144961ba62864bb115de54.png

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

🌳实现服务器端代码

🚩lombok介绍

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

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

首先我们需要在我们的pom.xml文件下面添加以下依赖 https://i-blog.csdnimg.cn/direct/fd3937cd1f2c431db0af842602919493.png

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

比如以下代码 https://i-blog.csdnimg.cn/direct/c0578de0fd21490697a0e855cd6835ed.png

我们在获取属性时要用大量的get和set,看起来非常的不好看。而当我们使用了lombok后,代码如下; https://i-blog.csdnimg.cn/direct/56d9ac12189c4ec392ae6686e2cd1d52.png

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

如果觉得这样使用太粗暴了,lombok也提供了一些细化的方法 https://i-blog.csdnimg.cn/direct/2f68c5816d4e48c49a8b26559f76b348.png

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

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

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

  • 第一步:安装插件EditStarter,重启Idea https://i-blog.csdnimg.cn/direct/930ada28892c463cb8262d2bc88c73b6.png
  • 第二步:在pom.xml⽂件中,单击右键,选择Generate - EditStarter https://i-blog.csdnimg.cn/direct/ef2f620843954ed2a263c62ebe952fb9.png

进⼊Edit Starters的编辑界⾯,添加对应依赖即可. https://i-blog.csdnimg.cn/direct/c20ddc3949494b4db65403af1efe3971.png

🚩代码实现

第一步:定义留⾔对象MessageInfo类 https://i-blog.csdnimg.cn/direct/d5f118c35c9849f6b66a7f7acfd38cb3.png

第二步:创建MessageController类

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

https://i-blog.csdnimg.cn/direct/c64099b88cf34478830105c06b1dfd37.png

🌴运行测试

通过Postman进行测试

测试getList接口:测试当前没有留言信息,查看是否有空指针异常,发现并没有问题 https://i-blog.csdnimg.cn/direct/e7635cd7c8284dcaa3a917aac0ea980d.png

测试publish接口:发布留言接口返回成功 https://i-blog.csdnimg.cn/direct/112eab6faff44199956e5594b69b06c8.png

再次测试getList接口:当前就能收到后端返回的信息了 https://i-blog.csdnimg.cn/direct/271ae3117d2741cc9ab4f7b4a4856812.png

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

🎄前端代码实现

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

🚩获取列表

代码:后端返回结果加载到页面上 https://i-blog.csdnimg.cn/direct/d10edb20c9f441f2969b30b360568c0e.png

通过postman发起三次留言请求,发送一次获取留言结果(要点击刷新): https://i-blog.csdnimg.cn/direct/3cf249f649dd46b2959b0c7f2860fd82.png

🚩实现"提交"

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

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

代码:在点击"提交"时,去调用后端的接口 https://i-blog.csdnimg.cn/direct/bc4b08983f5041c7b1ae89eb8bb35912.png

测试: https://i-blog.csdnimg.cn/direct/db42da4802f5411886037dd5ab1897ae.png

若出现报错:

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

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