使用springboot制作博客管理系統(tǒng)
前言
博客,又譯為網(wǎng)絡(luò)日志、 部落格或部落閣等,是一種通常由個(gè)人管理、不定期張貼新的文章的網(wǎng)站。 博客上的文章通常根據(jù)張貼時(shí)間, 以倒序方式由新到舊排列。 許多博客專(zhuān)注在特定的課題上提供評(píng)論或新聞, 其他則被作為比較個(gè)人的日記。 一個(gè)典型的博客結(jié)合了文字、圖像、 其他博客或網(wǎng)站的鏈接、 及其它與主題相關(guān)的媒體。 能夠讓讀者以互動(dòng)的方式留下意見(jiàn),是許多博客的重要要素。大部分的博客內(nèi)容以文字為主, 仍有一些博客專(zhuān)注在藝術(shù)、攝影、視頻、音樂(lè)、播客等各種主題。博客是社會(huì)媒體網(wǎng)絡(luò)的一部分。博客秉承了個(gè)人網(wǎng)站的自由精神, 但是綜合了激發(fā)創(chuàng)造的新模式, 使其更具開(kāi)放和建設(shè)性。它作為一種新表達(dá)的方式,它的傳播不僅情緒,包括大量的智慧、意見(jiàn)和思想。某種意義上說(shuō),它也是一種新的文化現(xiàn)象, 博客的出現(xiàn)和繁榮, 真正凸現(xiàn)網(wǎng)絡(luò)的知識(shí)價(jià)值,標(biāo)志著互聯(lián)網(wǎng)發(fā)展開(kāi)始步入更高的階段。
需求分析
本系統(tǒng)主要針對(duì)博客論壇的管理員對(duì)論壇信息進(jìn)行有效的管理,對(duì)用戶(hù)數(shù)量,鏈接數(shù)量,文章數(shù)量進(jìn)行增刪改查,能通過(guò)數(shù)據(jù)統(tǒng)計(jì)分析近來(lái)論壇的發(fā)展情況,還能通過(guò)類(lèi)別更改管理論壇的界面。游客則通過(guò)發(fā)布文章,管理文章對(duì)論壇做出貢獻(xiàn),發(fā)布自己的想法。
用戶(hù)管理。
該模塊是由管理員進(jìn)行操作的,將所有用戶(hù)的用戶(hù)名,郵箱,創(chuàng)建時(shí)間,用戶(hù)狀態(tài),列在一張表上,方便管理員增加、刪除、修改,查詢(xún)用戶(hù)的信息,還可以批量刪除。
文章管理。
這個(gè)模塊是管理員和用戶(hù)都可以操作的,他們都可以對(duì)現(xiàn)有文章進(jìn)行刪除、修改,查詢(xún)的操作。他們還可以在文章添加板塊,進(jìn)行文章創(chuàng)作。
鏈接管理。
該模塊是在論壇頁(yè)面的右邊添加友情網(wǎng)站的鏈接,起到互幫互助的作用,它也由兩個(gè)小板塊組成,鏈接添加和鏈接列表,這是只有管理員才能查看且增刪查改的板塊,
日志管理。
日志模塊是所有用戶(hù)包括管理員論壇對(duì)后臺(tái)管理系統(tǒng)的訪問(wèn)記錄,由管理員查看,能夠進(jìn)行查詢(xún),刪除和批量刪除的操作。
數(shù)據(jù)管理。
數(shù)據(jù)模塊是以月為單位,對(duì)論壇的發(fā)帖量和訪問(wèn)量進(jìn)行數(shù)據(jù)統(tǒng)計(jì),并轉(zhuǎn)換成柱狀圖的形式呈現(xiàn),是只能由管理員查看的用于網(wǎng)站現(xiàn)狀的分析的工具。分為文章發(fā)表數(shù)據(jù)和文章瀏覽數(shù)據(jù)。
系統(tǒng)管理。
這個(gè)模塊下面有一個(gè)前臺(tái)欄目列表,是前臺(tái)論壇上方展示的分類(lèi)類(lèi)別,有由管理員增加、刪除、修改,查詢(xún)的功能。
功能分析
用戶(hù)登錄注冊(cè):
輸入賬號(hào)密碼進(jìn)行登錄、后臺(tái)判斷賬號(hào)權(quán)限是普通用戶(hù)還是管理員、沒(méi)有注冊(cè)的可以進(jìn)入注冊(cè)頁(yè)面注冊(cè)
博客主頁(yè):
用戶(hù)進(jìn)入主頁(yè)后查看分類(lèi)查看博客內(nèi)容、點(diǎn)擊查看詳情、右側(cè)可以跳轉(zhuǎn)超鏈接、以及登錄注冊(cè)
文章詳情:
評(píng)論互動(dòng):
博客詳情評(píng)論互動(dòng)
后臺(tái)用戶(hù)管理:
添加用戶(hù):
后臺(tái)文章管理:
后臺(tái)鏈接管理:
后臺(tái)日志管理:
后臺(tái)數(shù)據(jù)管理:
文章數(shù)據(jù)《發(fā)表數(shù)據(jù)和流量數(shù)據(jù)》按月統(tǒng)計(jì)顯示
后臺(tái)菜單管理:
部分表設(shè)計(jì)
使用Mysql數(shù)據(jù)庫(kù)、 INNODB 存儲(chǔ)引擎和 UTF8 編碼格式。
用戶(hù)表
CREATE TABLE `NewTable` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主鍵' , `username` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用戶(hù)登錄名' , `email` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '郵箱' , `password` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '密碼' , `status` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '2' COMMENT '狀態(tài) 0:正常 1:刪除 2:未激活或者未啟用' , `avatar` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '頭像' , `code` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '激活碼' , `create_date` datetime NULL DEFAULT NULL COMMENT '添加時(shí)間' , `create_by` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '添加用戶(hù)id' , `update_date` datetime NULL DEFAULT NULL COMMENT '更新時(shí)間' , `update_by` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '更新用戶(hù)id' , `remark` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '備注' , PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci AUTO_INCREMENT=21 ROW_FORMAT=DYNAMIC ;
文章表
CREATE TABLE `NewTable` ( `id` int(64) NOT NULL AUTO_INCREMENT , `type_id` int(64) NOT NULL , `title` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , `content` longtext CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , `create_date` datetime NULL DEFAULT NULL , `create_by` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL , `update_date` datetime NULL DEFAULT NULL , `update_by` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL , `status` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL , `read` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '0' , PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci AUTO_INCREMENT=24 ROW_FORMAT=DYNAMIC ;
評(píng)論互動(dòng)表
CREATE TABLE `NewTable` ( `id` int(11) NULL DEFAULT NULL , `news_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL , `content` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL , `create_date` date NULL DEFAULT NULL , `create_by` int(11) NULL DEFAULT NULL , `update_time` date NULL DEFAULT NULL , `update_by` int(11) NULL DEFAULT NULL , `status` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARACTER SET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC ;
部分代碼實(shí)現(xiàn)
這個(gè)項(xiàng)目功能比較簡(jiǎn)單、用的技術(shù)也是大家非常熟悉的技術(shù)、主要是springboot、springmvc、mybatis以前端的jquery、layui、html和css等基本樣式。就拿登錄來(lái)舉一個(gè)完整例子吧、首先是前端靜態(tài)頁(yè)面的編寫(xiě)以及發(fā)送登錄請(qǐng)求
這個(gè)項(xiàng)目功能比較簡(jiǎn)單、用的技術(shù)也是大家非常熟悉的技術(shù)、主要是springboot、springmvc、mybatis以前端的jquery、layui、html和css等基本樣式。就拿登錄來(lái)舉一個(gè)完整例子吧、首先是前端靜態(tài)頁(yè)面的編寫(xiě)以及發(fā)送登錄請(qǐng)求
<div class="wrapper"> <div class="froyo-frame login-body"> <div class="admin-face"> <div class="face-img"> <img src="${ctxStatic}/images/editor.png" alt="logo"> </div> </div> <h1 class="admin-login-tittle">「從現(xiàn)在開(kāi)始,為每一天寫(xiě)下一篇記錄」</h1> <div class="admin-login-form"> <form class="form" action="${ctx}/login" method="post" autocomplete="off"> <div class="admin-name"><input name="username" type="text" placeholder="用戶(hù)名"></div> <div class="admin-password"><input name="password" type="password" placeholder="密碼"></div> <div class="admin-button"><button type="submit" id="login-button">登錄</button></div> </form> <!-- 其他賬號(hào)登錄: <a href=""><img src=" rel="external nofollow" ${ctxStatic}/images/qqLogin.png" style="width: 50px;margin: 10px" onclick="loginQQ()"></a> <img src="${ctxStatic}/images/weChatLogin.png" style="width: 50px;margin: 10px"> <img src="${ctxStatic}/images/weboLogin.png" style="width: 50px;margin: 10px"> --> <div class="admin-button"><a id="login-button" href="${ctx}/index" rel="external nofollow" >返回首頁(yè)</a></div> </div> <script type="text/javascript" src="${ctxStatic}/plugins/layui/layui.js"></script> <script type="text/javascript"> layui.use('layer', function() { var $ = layui.jquery, layer = layui.layer; //login-button的點(diǎn)擊事件.. $('#login-button').click(function (event) { event.preventDefault(); if (!$("input[name=username]").val()) { layer.msg("用戶(hù)名不能為空"); return false; } else if (!$("input[name=password]").val()) { layer.msg("密碼不能為空"); return false; } else { $('form').fadeOut(500); $('.wrapper').addClass('form-success'); $('.form').submit(); } }); </script> </body> </html>
后臺(tái)Controller接收到前端的登錄請(qǐng)求之后執(zhí)行參數(shù)校驗(yàn)、將前端傳遞過(guò)來(lái)的用戶(hù)名密碼以及用戶(hù)角色進(jìn)行判斷驗(yàn)證、調(diào)用LoginController.login方法執(zhí)行用戶(hù)登錄驗(yàn)證、查詢(xún)數(shù)據(jù)庫(kù)當(dāng)前賬號(hào)密碼是否正確、返回狀態(tài)碼給前端、前端根據(jù)狀態(tài)碼進(jìn)行相對(duì)的頁(yè)面跳轉(zhuǎn)以及數(shù)據(jù)效應(yīng)。
/** * 登錄驗(yàn)證 * * @param user * @param map * @return */ @PostMapping("/login") public String login(User user, ModelMap map) { if (user != null) { if (StringUtils.isBlank(user.getUsername()) || StringUtils.isBlank(user.getPassword())) { return Views.LOGIN; } AuthenticationToken token = new UsernamePasswordToken(user.getUsername(), user.getPassword(), true); if (token == null) { map.put("message", "用戶(hù)名或密碼錯(cuò)誤"); return Views.LOGIN; } //記住我 ((UsernamePasswordToken) token).setRememberMe(true); try { SecurityUtils.getSubject().login(token); return Views.REDIRECT_ADMIN; } catch (AuthenticationException e) { if (e instanceof UnknownAccountException) { map.put("message", "用戶(hù)不存在"); } else if (e instanceof LockedAccountException) { map.put("message", "賬戶(hù)未激活"); map.put("status", 2); map.put("user", user); } else if (e instanceof DisabledAccountException) { map.put("message", "賬戶(hù)未啟用"); } e.printStackTrace(); map.put("message", "用戶(hù)認(rèn)證失敗"); } return Views.LOGIN; } else { map.put("message", "未知異常"); return Views.LOGIN; } } }
以上就是使用java springboot制作博客系統(tǒng)的詳細(xì)內(nèi)容,更多關(guān)于java springboot制作系統(tǒng)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- 基于Springboot實(shí)現(xiàn)送水公司信息管理系統(tǒng)
- java?Springboot實(shí)現(xiàn)教務(wù)管理系統(tǒng)
- 基于Java?SpringBoot的前后端分離信息管理系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)
- 基于java SSM springboot實(shí)現(xiàn)抗疫物質(zhì)信息管理系統(tǒng)
- 基于java SSM springboot實(shí)現(xiàn)景區(qū)行李寄存管理系統(tǒng)
- 基于java ssm springboot+mybatis酒莊內(nèi)部管理系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)
- 基于java Springboot實(shí)現(xiàn)教務(wù)管理系統(tǒng)詳解
- springboot+vue制作后臺(tái)管理系統(tǒng)項(xiàng)目
- Springboot實(shí)例講解實(shí)現(xiàn)專(zhuān)業(yè)材料認(rèn)證管理系統(tǒng)流程
相關(guān)文章
Java調(diào)用groovy實(shí)現(xiàn)原理代碼實(shí)例
這篇文章主要介紹了Java調(diào)用groovy實(shí)現(xiàn)原理代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-12-12springboot集成druid,多數(shù)據(jù)源可視化,p6spy問(wèn)題
這篇文章主要介紹了springboot集成druid,多數(shù)據(jù)源可視化,p6spy問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01Groovy動(dòng)態(tài)語(yǔ)言使用教程簡(jiǎn)介
這篇文章主要為大家介紹了Groovy動(dòng)態(tài)語(yǔ)言使用教程簡(jiǎn)介,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09Java使用注解實(shí)現(xiàn)防止重復(fù)提交實(shí)例
這篇文章主要介紹了Java使用注解實(shí)現(xiàn)防止重復(fù)提交實(shí)例,在一些項(xiàng)目中由于用戶(hù)誤操作,多次點(diǎn)擊表單提交按鈕,會(huì)產(chǎn)生很多次的數(shù)據(jù)交互,為了解決這一問(wèn)題,本文使用注解來(lái)實(shí)現(xiàn)防止重復(fù)提交,需要的朋友可以參考下2023-07-07Spring Boot jar可執(zhí)行原理的徹底分析
這篇文章主要給大家介紹了關(guān)于Spring Boot jar可執(zhí)行原理的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Spring Boot具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07Java享元設(shè)計(jì)模式優(yōu)化對(duì)象創(chuàng)建提高性能和效率
Java享元設(shè)計(jì)模式通過(guò)共享可重用的對(duì)象,減少了系統(tǒng)中對(duì)象的數(shù)量,優(yōu)化了對(duì)象的創(chuàng)建和管理,提高了性能和效率。它是一種經(jīng)典的設(shè)計(jì)模式,適用于需要處理大量相似對(duì)象的應(yīng)用程序2023-04-04關(guān)于Java的對(duì)象序列化流和反序列化流詳細(xì)解讀
這篇文章主要介紹了關(guān)于Java的對(duì)象序列化流和反序列化流,對(duì)象序列化:就是將對(duì)象保存到磁盤(pán)中,或者在網(wǎng)絡(luò)中傳輸對(duì)象,反之,自己序列還可以從文件中讀取回來(lái),重構(gòu)對(duì)象,對(duì)它進(jìn)行反序列化,需要的朋友可以參考下2023-05-05