【JavaEEj进阶】 Spring实现留言板

这篇具有很好参考价值的文章主要介绍了【JavaEEj进阶】 Spring实现留言板。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

🎍预期结果

可以发布并显示
【JavaEEj进阶】 Spring实现留言板,JavaEE进阶,spring,java,后端,java-ee
显示后实现输入框的清除
【JavaEEj进阶】 Spring实现留言板,JavaEE进阶,spring,java,后端,java-ee
并且再次刷新后,不会清除下面的缓存

🍀前端代码

这里由于博主主要从事后端相关工作,这里就不做过多讲解了

相关知识点可以参考博主写的【JavaEE初阶】 JavaScript相应的WebAPI中表白墙的书写

如果有看不懂的地方也可以找博主,博主也略知一二。代码如下:
【JavaEEj进阶】 Spring实现留言板,JavaEE进阶,spring,java,后端,java-ee

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>留言板</title>
    <style>
        .container {
            width: 350px;
            height: 300px;
            margin: 0 auto;
            /* border: 1px black solid; */
            text-align: center;
        }

        .grey {
            color: grey;
        }

        .container .row {
            width: 350px;
            height: 40px;

            display: flex;
            justify-content: space-between;
            align-items: center;
        }

        .container .row input {
            width: 260px;
            height: 30px;
        }

        #submit {
            width: 350px;
            height: 40px;
            background-color: orange;
            color: white;
            border: none;
            margin: 10px;
            border-radius: 5px;
            font-size: 20px;
        }
    </style>
</head>

<body>
<div class="container">
    <h1>留言板</h1>
    <p class="grey">输入后点击提交, 会将信息显示下方空白处</p>
    <div class="row">
        <span>:</span> <input type="text" name="" id="from">
    </div>
    <div class="row">
        <span>对谁:</span> <input type="text" name="" id="to">
    </div>
    <div class="row">
        <span>说什么:</span> <input type="text" name="" id="say">
    </div>
    <input type="button" value="提交" id="submit" onclick="submit()">
    <!-- <div>AB: hello</div> -->
</div>

<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.4/jquery.min.js"></script>
<script>
    load();
    function load() {
        $.ajax({
            type: "get",
            url: "/message/getList",
            success: function (result) {
                for (var message of result) {
                var divE = "<div>" + message.from + "对" + message.to + "说:" + message.message;
                $(".container").append(divE);
            }
            }
        });
    }
    function submit() {
//1. 获取留⾔的内容
        var from = $('#from').val();
        var to = $('#to').val();
        var say = $('#say').val();
        if (from == '' || to == '' || say == '') {
            return;
        }
        $.ajax({
            type: "post",
            url: "/message/publish",
            data: {
                from: from,
                to: to,
                message: say
            },
            success: function (result) {
                if (result) {
//2. 构造节点
                    var divE = "<div>" + from + "对" + to + "说:" + say + "</div>";
//3. 把节点添加到⻚⾯上
                    $(".container").append(divE);
//4. 清空输⼊框的值
                    $('#from').val("");
                    $('#to').val("");
                    $('#say').val("");
                } else {
                    alert("发表留⾔失败!");
                }
            }
        });
    }

</script>
</body>

</html>

🎄约定前后端交互接⼝

🚩需求分析

后端需要提供两个服务

  1. 提交留⾔:⽤⼾输⼊留⾔信息之后,后端需要把留⾔信息保存起来

  2. 展⽰留⾔:⻚⾯展⽰时,需要从后端获取到所有的留⾔信息

🚩接⼝定义

  1. 获取全部留⾔

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

请求:

GET /message/getLis

响应:JSON格式

[
	{
		"from": "⿊猫",
		"to": "⽩猫",
		"message": "喵"
	},{
		"from": "⿊狗",
		"to": "⽩狗",
		"message": "汪"
	},
	//...
]

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

  1. 发表新留⾔

请求:body也为JSON格式

POST /message/publish
{
	"from": "⿊猫",
	"to": "⽩猫",
	"message": "喵"
}

响应格式:JSON格式

true

🌳实现服务器端代码

🚩lombok

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

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

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

<dependency>
	<groupId>org.projectlombok</groupId>
	<artifactId>lombok</artifactId>
	<optional>true</optional>
</dependency>

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

比如以下代码

public class Person {
    private int id;
    private String name;
    private String password;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

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

@Data
public class Person {
    private int id;
    private String name;
    private String password;
}

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

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

注解 作⽤
@Getter ⾃动添加 getter ⽅法
@Setter ⾃动添加 setter ⽅法
@ToString ⾃动添加 toString ⽅法
@EqualsAndHashCode ⾃动添加 equals 和 hashCode ⽅法
@NoArgsConstructor ⾃动添加⽆参构造⽅法
@AllArgsConstructor ⾃动添加全属性构造⽅法,顺序按照属性的定义顺序
@NonNull 属性不能为null
@RequiredArgsConstructor ⾃动添加必需属性的构造⽅法,final+@NonNull的属性为必需

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

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

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

  1. 安装插件EditStarter,重启Idea
    【JavaEEj进阶】 Spring实现留言板,JavaEE进阶,spring,java,后端,java-ee
  2. 在pom.xml⽂件中,单击右键,选择Generate,操作如下图所⽰

【JavaEEj进阶】 Spring实现留言板,JavaEE进阶,spring,java,后端,java-ee
进⼊Edit Starters的编辑界⾯,添加对应依赖即可.
【JavaEEj进阶】 Spring实现留言板,JavaEE进阶,spring,java,后端,java-ee

🌲服务器代码实现

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

@Data
public class MessageInfo {
    private String from;
    private String to;
    private String message;
}

第二步:创建MessageController类

这里我们使⽤List来存储留⾔板信息

@RequestMapping("/message")
@RestController
public class MessageController {
    private List<MessageInfo> messageInfos = new ArrayList<>();
    @RequestMapping("/getList")
    public List<MessageInfo> getList() {
        System.out.println("===============");
        return messageInfos;
    }
    @RequestMapping("/publish")
    public boolean publish(MessageInfo messageInfo) {
        System.out.println(messageInfo);
        if (StringUtils.hasLength(messageInfo.getFrom())
                && StringUtils.hasLength(messageInfo.getTo())
                && StringUtils.hasLength(messageInfo.getMessage())) {
            messageInfos.add(messageInfo);
            return true;
        }
        return false;
    }
}

🌴运⾏测试

此时在浏览器通过URL http://127.0.0.1:8080/messagewall.html 访问服务器,即可看到
【JavaEEj进阶】 Spring实现留言板,JavaEE进阶,spring,java,后端,java-ee

因为此时我们每次提交的数据都会发送给服务器.每次打开⻚⾯的时候⻚⾯都会从服务器加载数据.因此及时关闭⻚⾯,数据也不会丢失

但是数据此时是存储在服务器的内存中( private List< Message > messages = newArrayList< Message >(); ),⼀旦服务器重启,数据仍然会丢失.要想数据不丢失,可以把数据存储在数据库中

⭕总结

关于《【JavaEEj进阶】 Spring实现留言板》就讲解到这儿,感谢大家的支持,欢迎各位留言交流以及批评指正,如果文章对您有帮助或者觉得作者写的还不错可以点一下关注,点赞,收藏支持一下!文章来源地址https://www.toymoban.com/news/detail-804416.html

到了这里,关于【JavaEEj进阶】 Spring实现留言板的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JS——利用JS实现简易留言板

    文章目录 前言 一 、 成果图 二、使用步骤 1. 需求解析 2. HTML结构 3.CSS样式 4.JS行为 总结   实现留言板的基本功能 提交留言—— 用户输入留言(当输入内容为空时,提示用户,且不可提交留言),输入完成后点击提交留言,留言列表中将会出现对应用户输入的内容,且留言

    2024年02月11日
    浏览(47)
  • 基于Flask的留言板的设计与实现

    这是《Flask Web开发实战:入门、进阶与原理解析》这本书中的一个小项目,我在学习后根据书中的教程实现了留言板的功能,并结合我的思路将代码做了一些调整。 下面这是实现后的展示图片 留言板得有一个表单提供昵称以及留言的输入功能,在数据库保存的数据应该包括(

    2024年02月01日
    浏览(49)
  • HTML+PHP+MYSQL实现一个简单的留言板

    提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 大家好,下面将为大家展示 基于HTML PHP MYSQL的留言板的设计与实现过程,适合初学者点击观看,以下我将会以笔者自称! 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 提示:

    2024年02月04日
    浏览(53)
  • 数据安全与网络安全——基于php+MySql实现简易留言板(附全资料 超级详细!)

    这篇文章是基于PHP和MySQL实现的一个简易留言板。该留言板具有用户注册、登录、发表留言以及查看留言等功能。首先,用户可以通过注册功能创建自己的账号,然后使用该账号进行登录。登录成功后,用户可以发表留言,并且可以查看自己和其他用户发表的留言。在留言的

    2024年02月04日
    浏览(50)
  • 网站留言板的功能

    开发环境:dreamweaverCC html +jscirpt + php 前置条件:1、一个简单的网站已经搭建完毕,支持用户登录网站。 2、用户已登录网站。 实现步骤: 一、新建留言板网页 1、新建网页:whiteboard.html 留言板(js-div-whiteboard)分为三个部分: 留言列表:(js-div-whiteboard-messages)、无留言提示

    2024年02月07日
    浏览(47)
  • 基于JAVA网站留言板系统的设计与实现(Springboot框架) 研究背景与意义、国内外研究现状

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、

    2024年02月03日
    浏览(54)
  • bugku-web-留言板

     留言板?第一反应就是XSS 或者跨站脚本攻击  确定为XSS   (说点什么)“说”了就会记录下来    简单测试下  利用工具跑一下这个网页  (dirsearch) 得到了登录页  admin.php  需要用户名和口令   在我们跑出的另一个文件里  db.sql  (db.sql建议多pao几次  还可进行burp s

    2024年02月12日
    浏览(43)
  • BUGKU-WEB 留言板1

    题目截图如下: 进入场景看看: 之间写过一题类似的,所以这题应该是有什么不同的 那就按照之前的思路进行测试试试 提示说:需要xss平台接收flag,这个和之前说的提示一样 xss平台:https://xssaq.com 对xss的一些绕过进行学习了解 输入测试一下script代码: 发现script被过滤了

    2024年02月21日
    浏览(41)
  • Flask狼书笔记 | 07_留言板

    这是一个简单的程序,涉及到的大部分是之前所学习到的基础知识。新涉及的python包: BootStrap-Flask , Flask-Moment , Faker , Flask-Debug Toolbar 。 Git : 将大量代码放到 app.py 一个文件里,代码的管理会不太方便,可读性也差。本节将使用一种新的代码结构 导入配置 :可以从pyt

    2024年02月09日
    浏览(39)
  • JavaScript Array对象(属性、方法) 留言板案例

    一、创建数组对象的方式 var arrOb=new Array(值,........) var arrOb=Array(值,.......) var arrOb= [ 值,.........] var arrOb=new Array(n); arrOb [ 0]=值1; arrOb [ 1]=值2; 二、数组的属性 length      //数组中元素的数目 三、数组的方法 1、转为字符串 2、 join(\\\'连接符\\\')         将数组元素连接成字符串   

    2024年02月06日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包