国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【JavaEEj進階】 Spring實現留言板

這篇具有很好參考價值的文章主要介紹了【JavaEEj進階】 Spring實現留言板。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

??預期結果

可以發(fā)布并顯示
【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. 構造節(jié)點
                    var divE = "<div>" + from + "對" + to + "說:" + say + "</div>";
//3. 把節(jié)點添加到??上
                    $(".container").append(divE);
//4. 清空輸?框的值
                    $('#from').val("");
                    $('#to').val("");
                    $('#say').val("");
                } else {
                    alert("發(fā)表留?失敗!");
                }
            }
        });
    }

</script>
</body>

</html>

??約定前后端交互接?

??需求分析

后端需要提供兩個服務

  1. 提交留?:??輸?留?信息之后,后端需要把留?信息保存起來

  2. 展?留?:??展?時,需要從后端獲取到所有的留?信息

??接?定義

  1. 獲取全部留?

全部留?信息,我們?List來表?,可以?JSON來描述這個List數據.

請求:

GET /message/getLis

響應:JSON格式

[
	{
		"from": "?貓",
		"to": "?貓",
		"message": "喵"
	},{
		"from": "?狗",
		"to": "?狗",
		"message": "汪"
	},
	//...
]

瀏覽器給服務器發(fā)送?個GET /message/getList 這樣的請求,就能返回當前?共有哪些留?記錄.結果以 json 的格式返回過來

  1. 發(fā)表新留?

請求:body也為JSON格式

POST /message/publish
{
	"from": "?貓",
	"to": "?貓",
	"message": "喵"
}

響應格式:JSON格式

true

??實現服務器端代碼

??lombok

這個環(huán)節(jié)為大家推薦一個工具lombok,它的出現會使我們開發(fā)起來更加簡單便捷

Lombok是?個Java?具庫,通過添加注解的?式,簡化Java的開發(fā)

首先我們需要在我們的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;
}

第二步:創(chuàng)建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

因為此時我們每次提交的數據都會發(fā)送給服務器.每次打開??的時候??都會從服務器加載數據.因此及時關閉??,數據也不會丟失

但是數據此時是存儲在服務器的內存中( private List< Message > messages = newArrayList< Message >(); ),?旦服務器重啟,數據仍然會丟失.要想數據不丟失,可以把數據存儲在數據庫中

?總結

關于《【JavaEEj進階】 Spring實現留言板》就講解到這兒,感謝大家的支持,歡迎各位留言交流以及批評指正,如果文章對您有幫助或者覺得作者寫的還不錯可以點一下關注,點贊,收藏支持一下!文章來源地址http://www.zghlxwxcb.cn/news/detail-804416.html

到了這里,關于【JavaEEj進階】 Spring實現留言板的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包