博客系统 SSM 超强硬核良心推荐之第一弹 - 预备工作
硬核 ! 从 0 到 1 完美实现 SSM 版本的博客系统 , 学会保准不吃亏!
- 一 . SSM 版本相比于 Servlet 版本的亮点
- 二 . 初始化数据库
- 三 . 前端页面
- 3.1 注册页面
- 3.2 登录功能
- 3.3 文章总列表页
- 3.4 自己的文章列表页
- 3.5 文章详情页
- 3.6 编写博客页面
大家好 , 这是新的专栏 , 博客系统 SSM 版本
博客系统很常见 , 这是一个大多数新手都会去做的系统
市面上的资料错综复杂 , 博主带大家从最开始一步一步实现一个完整的博客系统
让大家不会感觉特别困惑 , 也不会再去浪费时间搜寻各种资料
欢迎大家来阅读这个专栏
一 . SSM 版本相比于 Servlet 版本的亮点
- 框架升级 : Spring Boot + Spring MVC + MyBatis + MySQL + Redis + jQuery
- 密码升级 : 明文存储与 md5 存储是不安全的 , 我们会将密码进行加盐处理
- 用户登录状态持久化升级 : 以前的 session 是在内存中存储的 , 我们将 session 存储到 MySQL / Redis 中 , 实现分布式存储
session 是在内存中存储有两个弊端 :
- 当你的后台服务器重启之后 , 之前的登录信息就没了
- 如果把 session 放到内存中的话 , 程序就只支持单机部署 , 不支持分布式
(张三登陆的时候 , 把登录信息存在了 主机 A 的内存中 , 一会之后 , 张三进行点击操作 , 这时候 , 是 主机 B 来服务张三的 , 但是 主机 B 的内存中并没有张三的登录信息 , 所以就会让张三重新登陆 , 这明显是不合理的)
- 实现分页功能
- 在项目中引入拦截器 , 升级用户的登录验证
还可以额外实现的功能有 :
- 文章保存草稿
- 文章定时发布功能
- 用户多次登录 , 账号冻结的业务
用一个变量记录错误登录次数 , 超过一个值就把账号冻结
- 评论功能
- 个人中心(修改密码)
- 找回密码
- 登陆的时候添加图片验证码 , 增加系统的安全性
- 点赞功能
- …
二 . 初始化数据库

三 . 前端页面
前端页面也是不需要我们自己去实现的 , 这里也把前端页面直接分享给大家
点击即可下载
博客系统(静态页面)-2023.zip
我们就带大家来看一眼每个页面的模样
3.1 注册页面

注册的时候有三个字段 : 用户名、密码、确认密码
其中确认密码是确保用户输入错误 , 如果用户第一次输的太快 , 就可能输入错误 , 确认密码就会保证用户两次输入结果相同 , 保证用户密码输入正确 .
数据库中是没有确认密码的字段的 , 不会提交数据给后端
当用户输入完成之后 , 点击提交 . 页面就会发送一个 ajax 请求给后端 , 后端拿到数据之后会做非空校验 , 验证没有问题就会向用户表中插入一条数据 , 插入数据之后再把插入的结果返回给前端 . 前端根据返回的结果进行不同的提示 .
3.2 登录功能

登陆的时候 , 用户只需要输入用户名和密码 , 然后点击提交即可
登录和注册其实是很像的 , 但是登录功能在数据库中是查询操作
当用户输入完用户名和密码之后 , 点击提交 , 前端就会发送一个 ajax 请求给后端 , 后端拿到 ajax 请求之后 , 会先进行非空校验 , 非空校验没问题之后会去数据库中查询账号密码是否正确 , 然后将结果返回给前端 , 前端根据返回的状态码进行不同操作
3.3 文章总列表页

在最下面 , 我们实现了分页功能
3.4 自己的文章列表页

其中 , 我们这个页面可以点击 查看原文 , 点击之后就会跳转到详情页面
3.5 文章详情页

后续我们还可以实现展示阅读量
3.6 编写博客页面

我们的修改文章也可以使用这个页面
当 URL 后面没有任何参数的时候 , 访问的就是编写博客的页面
如果我们在 URL 后面添加了 ?id=1的话 , 那我们就认为他是修改文章 , 就会拿到 URL 里面的参数 , 发送 ajax 请求给后端 , 查询到当前这篇文章的信息之后 , 返回给前端进行显示 , 显示出来之后再点击发布文章 , 这时就是修改文章了 .
到这里 , 准备阶段就结束了 , 接下来 , 就会带大家实现核心代码
下一篇博客再见~

相关文章:
博客系统 SSM 超强硬核良心推荐之第一弹 - 预备工作
硬核 ! 从 0 到 1 完美实现 SSM 版本的博客系统 , 学会保准不吃亏!一 . SSM 版本相比于 Servlet 版本的亮点二 . 初始化数据库三 . 前端页面3.1 注册页面3.2 登录功能3.3 文章总列表页3.4 自己的文章列表页3.5 文章详情页3.6 编写博客页面大家好 , 这是新的专栏 , 博客系统 SSM…...
[Web] 简单瀑布流布局实现
目前的纯 CSS 布局, 是没办法实现比较完美的瀑布流布局的. 参考: CSS总结:瀑布流布局 - 黑白程序员 我使用 JS CSS, 并且自动布局实现了较为简单, 观赏性好的瀑布流布局. 代码 HTML: <!DOCTYPE html> <html lang"en"> <head><link rel&quo…...
多线程之死锁,哲学家就餐问题的实现
1.死锁是什么 死锁是这样一种情形:多个线程同时被阻塞,它们中的一个或者全部都在等待某个资源被释放。由于线程被无限期地阻塞,因此程序不可能正常终止。 2.哲学家就餐问题 有五个哲学家,他们的生活方式是交替地进行思考和进餐…...
UTF-8编码
介绍 UTF-8 编码 UTF-8 是一种针对 Unicode 的可变长度字符编码。 针对 Unicode:UTF-8 是 Unicode 的实现方式之一。相当于 Unicode 规定了字符对应的代码值,这个代码值需要转换为字节序列的形式,用于数据存储、传输。代码值到字节序列的转…...
likeshop单商户SaaS版V1.8.2说明!
likeshop单商户SaaS版V1.8.2主要更新如下: 新增 前端登录引导用户填写头像昵称 PC端—注册页面显示服务协议和隐私政策 PC端—首次进入商城弹出协议提示 PC端—结算页新增门店自提的配送方式 后台—PC端菜单导航栏的跳转链接支持添加自定义链接 优…...
算法训练营 day46 动态规划 最后一块石头的重量 II 目标和 一和零
算法训练营 day46 动态规划 最后一块石头的重量 II 目标和 一和零 最后一块石头的重量 II 1049. 最后一块石头的重量 II - 力扣(LeetCode) 有一堆石头,用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。 每一回合…...
nginx-host绕过实例复现
绕过Nginx Host限制第一种处理方法Nginx在处理Host的时候,会将Host用冒号分割成hostname和port,port部分被丢弃。所以,我们可以设置Host的值为2023.mhz.pw:xxx"example.com,这样就能访问到目标Server块:第二种处理…...
Java学习记录day9
类与对象 内部类 成员内部类 在一个类的内部定义的类。 public class Outer {private int a 10;public void outMethod() {System.out.println("这是外部类中的方法");}// 成员内部类public class Inner{private int b 10;public void innerMethod() {// 外部类…...
ActiveReports.NET 17.0 Crack by Xacker
一个完整的报告解决方案,用于在您的业务应用程序中设计、定制、发布和查看报告。 ActiveReports.NET 通过直观的 Visual Studio 集成报表设计器和丰富的控件帮助您提供精美的报表。ActiveReports 提供基于代码的跨平台报告、易于使用的设计器和灵活的 API。适用于桌…...
【计算机网络】传输层TCP协议
文章目录认识TCP协议TCP协议的格式字段的含义序号与确认号六个标志位窗口大小确认应答(ACK)机制超时重传机制连接管理机制三次握手四次挥手滑动窗口流量控制拥塞控制延迟应答捎带应答面向字节流粘包问题TCP异常情况总结认识TCP协议 传输控制协议 (TCP,T…...
Mysql5.7安装【Windows版】
文章目录一、下载二、添加到环境变量三、添加配置文件my.ini四、安装Mysql 修改密码一、下载 下载地址 滑倒最下面有一个MySQL Community Server 选择要下载的版本 二、添加到环境变量 下载好了之后开始解压 把bin目录添加到环境变量 可以点击进入bin目录,直接复…...
分布式一致性算法Raft原理图释
什么是分布式一致性算法Raft 分布式一致性算法Raft:指在分布式场景下实现集群数据同步的解决方案 掌握了这个算法,就可以较容易地处理绝大部分场景的容错和数据一致性需求 Raft三大角色 跟随者(Follower):普通群众…...
网络安全-字典生成-crunch
网络安全-字典生成-crunch crunch工具,在kali已经集成好了 2是代表最小字符长度 4是最大字符长度 生成了一个2M的文件 还有我们来查看这个密码本 从abcd26个英文字母的2位到4位的组合,他全部排列了一次 还可以自定义数字,特殊字符…...
闪光桐人の实习日记
2023年2月13日 1,认识了职场礼仪,学习了职场礼仪的重要性 尊重->心情愉悦->建立信任与好感->合作机遇的敲门砖 2,学习了职场礼仪中的邮件礼仪 模板管理中设置自己的名片 部门写到三级部,如果部门名太长要换一行 发送…...
PostgreSQL 常见配置参数
max_wal_size : 两个检查点(checkpoint)之间,WAL可增长的最大大小,即:自动WAL checkpoint允许WAL增长的最大值。该值缺省是1GB。如果提高该参数值会提升性能,但也是会消耗更多空间、同时会延长崩溃恢复所需…...
JAVA 常用类型之String结构
String在java中我们是用来操作字符串的,但它的底层结构确是一个char[]数组,通过数组的方式将每个字符进行保存。 使用时:String str"ABCD",内部存value确是:value[A,B,C,D]; 如下图: 参考String源…...
二三层网络设备封装与解封装原理
1、寻址转发(寻址指的是寻找IP地址) 路由表放在一个公共的地方,比如主控板上,由主控板 的CPU运行路由协议,计算路由,生成和维护路由表。 转发表与路由表: 转发表是根据路由表生成的。路由表中…...
9、MyBatis框架——使用注解开发实现数据库增删改查操作、一级缓存、二级缓存、MyBatis实现分页
目录 一、使用注解开发实现数据库增删改查操作 1、搭建项目 2、使用注解开发操作数据库 二、一级缓存 1、一级缓存失效的情况 三、二级缓存 1、手动开启二级缓存cacheEnabled 2、二级缓存机制 四、MyBatis实现分页 1、配置环境 2、startPage()开启分页 3、PageInfo…...
C++STL剖析(六)—— set和multiset的概念和使用
文章目录🌟 前言🍑 树型结构和哈希结构🍑 键值对1. set的介绍和使用🍑 set的模板参数列表🍑 set的构造🍑 set的使用🍅 insert🍅 find🍅 erase🍅 swap…...
SpringColud第四讲 Nacos的Windows安装方式和Linux的安装方式
在Nacos的GitHub页面,提供有下载链接,可以下载编译好的Nacos服务端或者源代码: 目录 1.Windows安装Nacos 1.1.下载 1.2.解压 1.3.修改相关配置: 1.4.启动: 1.5.登录: 2.Linux的安装方式Nacos 2.1.…...
小红书笔记API避坑指南:数据结构解析与常见错误排查
小红书笔记API避坑指南:数据结构解析与常见错误排查 在小红书生态中,API作为连接开发者与平台数据的桥梁,其重要性不言而喻。但许多开发者在实际调用过程中,常常陷入数据结构理解不透、错误排查效率低下的困境。本文将从小红书笔记…...
Quartus-II 9.0实战:从半加器到4位加法器的数字逻辑设计全流程解析
1. 半加器设计:数字逻辑的起点 半加器是数字电路设计中最基础的加法单元,理解它的工作原理对后续学习全加器和多位加法器至关重要。半加器之所以称为"半",是因为它只能处理两个1位二进制数的相加,不考虑来自低位的进位输…...
从一次安全事件复盘:我们是如何通过配置Windows审计策略和事件查看器,发现并阻断虚拟机异常登录的
虚拟化环境安全审计实战:从异常登录告警到精准防御 那天凌晨3点15分,安全运营中心的告警铃声突然响起。监控大屏上,一台核心业务虚拟机的登录事件触发了我们的阈值告警——这个时间段本不该有任何运维操作。当我调出事件查看器里那条4672特殊…...
三步修复Windows安全防护:零基础系统工具恢复指南
三步修复Windows安全防护:零基础系统工具恢复指南 【免费下载链接】windows-defender-remover A tool which is uses to remove Windows Defender in Windows 8.x, Windows 10 (every version) and Windows 11. 项目地址: https://gitcode.com/gh_mirrors/wi/wind…...
GNSS数据处理效率翻倍:FileZilla+crx2rnx自动化脚本一键下载转换RINEX观测值
GNSS数据处理效率革命:构建全自动RINEX观测值处理流水线 凌晨三点的实验室里,李工程师盯着屏幕上堆积如山的.crx文件叹了口气——这已经是本周第三次通宵处理GNSS观测数据了。对于需要处理多站点、长时间序列GNSS数据的科研人员和工程师而言,…...
体验开发新范式:如何用快马平台的AI大模型将想法直接变成代码
最近尝试用AI辅助开发工具来快速实现一个任务管理应用,整个过程让我对现代开发方式有了全新认识。和大家分享一下这个有趣的实践经历: 需求分析阶段 传统开发需要先梳理功能清单,但这次我直接把自然语言描述输入到InsCode(快马)平台的AI对话框…...
League Akari:你的英雄联盟智能助手终极指南
League Akari:你的英雄联盟智能助手终极指南 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 还在为英雄联盟中的繁琐操…...
YOLOv8改进之TransformerHead:将检测头替换为轻量级Transformer预测层,捕捉全局上下文
摘要 在目标检测任务中,YOLOv8凭借其高效的架构和优异的性能表现,已成为工业界和学术界广泛应用的基准模型。然而,YOLOv8传统检测头基于卷积神经网络设计,虽能有效提取局部特征,但在建模全局上下文关系和长程依赖方面存在天然局限。针对这一问题,本文提出了一种创新的改…...
JAVA重点基础、进阶知识及易错点总结(10)Map 接口(HashMap、LinkedHashMap、TreeMap)
🚀 Java 巩固进阶 第10天 主题:Map 接口深度解析 —— 键值对的高效艺术📅 进度概览:掌握 Java 中最灵活的数据结构。 💡 核心价值: 动态数据承载:SpringBoot 中接收前端动态参数 (Map<Stri…...
中国举办,IEEE会议,录用率39.5%!CCF推荐学术会议(C)截稿提醒
►►►Globecom 2026IEEE Global Communications Conference (GLOBECOM), a flagship IEEE Communications Society event, gathers top experts to drive innovation and advance nearly every aspect of communications technology. Each year, thousands of the most ground…...

