潇湘博客平台 XiaoXiangBlog

说明

  • Eclipse 项目 - Version: 2020-06 (4.16.0)。
  • JDK8。

潇湘博客(XiaoXiangBlog)

一个简单的Java Web项目,使用 JSP、Servlet、MySQL、Bootstarp等技术实现。完成了注册登录,发布博客、阅读博客、点赞、发布评论、个人资料更改、自适应电脑手机等功能。如果您喜欢,请点击星星,谢谢。

A simple Java Web project, use JSP, Servlet, MySql, Bootstarp and others. Realized the function of login and register, publish blog, read blog, show like, publish comment, person profile change,adaptive desktop mobile and others.If you like this, please click the star, thanks.

功能展示(Show)

首页

首页有一个简单的介绍面板,然后下面是博文推荐,随机推荐10篇博文。

登录注册页面

登录,需要输入验证码,验证码为一个简单的算式,可以记住账号密码。登录后跳转回登录前的位置,并且部分编辑数据能被保存(不由登录组件实现)。

注册。

文章页面

上面显示标题和时间(包括文章是否修改,修改时间),右边有操作按钮,可以对文章进行编辑或者删除操作。中间有作者信息、文章数据统计和表态按钮,可以点赞、取消点赞、反对、取消反对(反对不会被统计,但是会被记录)等操作。下面是评论区,可以发表评论,查看评论,评论使用Ajax动态加载,每次加载10条评论。

文章评论采用动态分页加载策略,每次加载10条。删除弹窗与回复弹窗类似,回复删除都是采用Ajax技术,不需要刷新整个页面(除了在上面发表评论)。评论的管理由评论者本人、网站管理员和文章作者共同管理。

博客页面

博客页面显示本站所有用户的博客,可以按照点赞量、评论量、浏览量、发表时间和修改时间等进行排序,使用分页技术,每页10条数据(如下页脚)。

搜索页面

支持关键词搜索,能搜索标题、内容和用户,分页技术与博客页面一致。

写博文页面

使用summernote-v0.8.20实现富文本编辑,实现了图片上传,因为是存数据库中的,所以最长6w的代码文本长度(后面可改进以文件形式存放或者其他方案),发表博文使用Ajax技术。

个人页面

个人资料页面,有个人的数据统计,个人资料和个人博文列表(分页)。

编辑资料页面,可以编辑头像(预制)、昵称、签名、性别、家乡和联系方式等个人资料。

简单的修改密码界面。

消息页面

未读消息是黑色、填充的,消息显示后变成灰色、去填充的。

消息附带链接,点击消息到达指定文章的指定位置。

简单而又出戏的管理界面(没时间做了,随便写了点,没用Bootstrap)

管理主页,显示一些本站的统计数据。

用户管理界面。

博客管理界面。

评论管理界面。

公告发布界面,可筛选发送对象,设置点击后跳转位置,发送后以消息的形式通知到指定用户。

编辑数据界面,编辑框框是动态生成的,不是写好的,修改后能跳回原来进入修改的位置。

手机端浏览界面一览

手机界面与电脑共用一个页面,采用响应式前端框架Bootstrap实现。

手机端界面与电脑端区别不大,有的地方为了适应手机的操作,重新做了排版,比如阅读页面中部部分。

手机端的发布博文界面不太好操作,但是依然能使用。

在手机端看来貌似电脑的布局大了许多。

管理界面没用任何的框架,依然是如此地出戏 QwQ ~。

总体上看功能相对简单,但是个人感觉界面是挺精致的(除了管理界面)。

项目说明(Other)

数据库(DataBase)

所有账号的密码都为 (The password of all accounts is )123456

数据库配置文件(SQL config file):src/druid.properties

数据库结构文件(SQL structure file):src/xiaoxiang_blog.sql

数据库测试数据文件(SQL data file):src/xiaoxiang_blog_data.sql

测试数据文件里面内置了一些文章、评论、测试账号等(文章版权归原作者,摘抄时并未进行任何沟通)用于测试。

Some articles, comments, test accounts, etc. are built in the test data file (the copyright of the article belongs to the original author, and no communication is made during the extraction) for testing.

管理员(Admin)

管理员注册配置文件(admin config file):src/admin.properties

管理员采用注册的形式,在配置文件文件中写好管理员的账号,然后去注册页面注册,注册后就是管理员。或者也可以直接修改数据库,把role字段改为1。

The administrator uses the form of registration, writes the administrator's account in the configuration file, and then goes to the registration page to register. After registration, the administrator is the administrator. Or you can directly modify the database and change the role field to 1.

日志组件(Logback)

日志配置文件(log config file):src/logback.xml

Debug模式配置文件(debug mode config file):src/minuhy/xiaoxiang/blog/config/DebugConfig.java

日志处理详情请看配置文件。

See the configuration file for log processing details.

文件夹说明(Folder)

  • 可删除的HTML测试文件夹(Removable HTML test folder):WebContent/html

    里面是编写前端时的代码,删除完全不影响正常使用。

    It contains the code when writing the front end. Deleting it does not affect normal use at all.

  • 预制图片文件夹(Prefabricated picture folder):WebContent/img

    内置一些系统需要用到的图标等。

    Built-in some icons needed by the system.

  • 预制头像文件夹(Prefabricated avatar folder):WebContent/img/avatar

    h001.png到h138.png都是从QQ安卓版安装包中提取出来的头像图片文件,版权解释归QQ所有,本项目仅用于测试。

    Both h001.png and h138.png are avatar image files extracted from the QQ Android installation package. The copyright interpretation belongs to QQ. This project is only used for testing.

  • HTML库文件夹(HTML Library Folder):WebContent/lib

    所有库采用下载的形式加入到项目中,库中的代码版权归原作者所有。

    All libraries are added to the project in the form of download, and the code copyright in the library belongs to the original author.

  • HTML css js 文件夹(Folder):WebContent/lib/xiaoxiang

    自己写的js和css存放在此。

    My js and css file in this.

  • JSP公共组件(common page):WebContent/partial

    包括页头、页脚、导航栏等。

    Include page head,page foot and nav.

  • JSP管理员组件(admin page):WebContent/admin

    管理员页面的所有JSP文件。

    All admin page in this.

使用到的库(Lib)

开源地址

  1. GitHub:https://github.com/Minuhy/XiaoXiangBlog

【软件】基于JSP和Bootstrap的潇湘博客平台的更多相关文章

  1. 基于Node.js的ghost开源博客平台

    Ghost 是一套基于Node.js 构建的开源博客平台(Open source blogging platform),具有易用的书写界面和体验. 1.安装node windows 下安装npm:ht ...

  2. 基于SMB协议的共享文件读写 博客分类: Java

    基于SMB协议的共享文件读写 博客分类: Java   一.SMB协议 SMB协议是基于TCP-NETBIOS下的,一般端口使用为139,445. 服务器信息块(SMB)协议是一种IBM协议,用于在计 ...

  3. 基于Metaweblog API 接口一键发布到国内外主流博客平台

    之前的生活 之前一直使用evenote写博客和日志,其实还是挺方便的.但是我一直都希望能够同步到国内的博客和国外的blogspot等主流博客平台.而强大everote只提供了facebook.twit ...

  4. 基于 Hexo + GitHub Pages 搭建个人博客(一)

    前言:我的博客写作之路 15 年刚上大学,第一次接触公众号,就萌生了创建一个公众号写点东西,但最终不了了之. 很快到了 16 年,开始接触网上各大博客网站,接触最多的当属 CSDN,萌生了注册一个博客 ...

  5. 基于 Hexo + GitHub Pages 搭建个人博客(二)

    在 基于 Hexo + GitHub Pages 搭建个人博客(一) 这篇文章中,我们已经知道如何使用 Hexo + GitHub Pages 搭建一个个人博客,GitHub 为我们提供了免费的域名和 ...

  6. 基于 Hexo + GitHub Pages 搭建个人博客(三)

    一.添加扫描二维码关注功能 打开 themes 目录下的 next 主题配置文件,找到 Wechat Subscriber 标签,将该标签下的配置改成如下形式: # Wechat Subscriber ...

  7. 基于Hexo+Github Pages搭建的博客

    概念 Github Pages可以被认为是用户编写的.托管在github上的静态网页.使用Github Pages可以为你提供一个免费的服务器,免去了自己搭建服务器和写数据库的麻烦.此外还可以绑定自己 ...

  8. Github 搭建 Hexo 纯静态化个人博客平台

    以前一直想搭建一个属于自己的博客平台,有余种种原因一直未能实现,最近闲来无事,参照网上的教程,搭建了属于自己的博客.自己的博客网站,样式自由,不需要受限于各大平台. 本篇为从零开始的基础篇,本篇所包含 ...

  9. Code First开发系列实战之使用EF搭建小型博客平台

    返回<8天掌握EF的Code First开发>总目录 本篇目录 理解应用需求 数据库设计 创建实体数据模型 创建实体类 创建关系和导航属性 实现DbContext类 执行数据访问 理解仓储 ...

  10. Dropplets – 极简的 Markdown 博客平台

    Dropplets 是一个简单的博客平台,专注于提供正是你在博客解决方案中需要的.当涉及到基础的博客功能,你真正想要做的是写和发表,而这就是 Dropplets 的过人之处.Dropplets 是一个 ...

随机推荐

  1. Solution -「CF 808E」Selling Souvenirs

    \(\mathscr{Description}\)   Link.   01 背包.   物品种类 \(n\le10^5\),背包容量 \(m\le3\times10^5\),单个物品体积 \(w\i ...

  2. AsyncLocal的妙用

    AsyncLocal<T>是一个在.NET中用来在同步任务和异步任务中保持全局变量的工具类. 它允许你在不同线程的同一个对象中保留一个特定值,这样你可以在不同的函数和任务中访问这个值. 这 ...

  3. 20250110-FortuneWheel 攻击事件:竟然不设滑点,那就体验一下 Force Investment 吧

    背景信息 攻击交易:https://app.blocksec.com/explorer/tx/bsc/0xd6ba15ecf3df9aaae37450df8f79233267af41535793ee1 ...

  4. h5 页面播放base64编码的audio数据

    例子: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8 ...

  5. KeyDB-键值存储

    KeyDB项目是从redis fork出来的分支.众所周知redis是一个单线程的kv内存存储系统,而KeyDB在100%兼容redis API的情况下将redis改造成多线程. 多线程架构 线程模型 ...

  6. 无网环境Docker Rpm离线安装

    总体思路:找一台可以联网的linux,下载docker的RPM依赖包而不进行安装(yum localinstall),将所有依赖的rpm环境打包好,再在无网环境中解压逐一安装(rpm: --force ...

  7. Hetemit pg walkthrough Intermediate

    nmap ┌──(root㉿kali)-[~] └─# nmap -p- -A 192.168.157.117 Starting Nmap 7.94SVN ( https://nmap.org ) a ...

  8. thewall靶机

    includes.php 内有文件读取漏洞 一开始是想着直接用为协议写入一句话木马但是后来发现不行 因为他的文件读取方式长这样 点击查看代码 <?php include ('/var/www/h ...

  9. .NET9 AOT部署

    概念 AOT是Ahead-of-Time的缩写,AOT是将C#程序提前编译为机器代码(通常为平台特定的二进制文件),在应用程序启动之前完成编译过程. 微软官方文档是这样说的 将应用程序发布为本机 AO ...

  10. oracle配置SGA参数不当导致不能正确启动数据库实例处理

    原因:生成环境数据库想要增加数据库内存配置参数SGA_TARGET增加到42G,但是没有配置SGA_MAX_SIZE参数值,导致SHUTDOWN IMMEDIATE停止数据库,再STARTUP启动数据 ...