博客系统 SSM 超强硬核良心推荐之第一弹 - 预备工作

news2024/11/28 4:29:33

硬核 ! 从 0 到 1 完美实现 SSM 版本的博客系统 , 学会保准不吃亏!

  • 一 . SSM 版本相比于 Servlet 版本的亮点
  • 二 . 初始化数据库
  • 三 . 前端页面
    • 3.1 注册页面
    • 3.2 登录功能
    • 3.3 文章总列表页
    • 3.4 自己的文章列表页
    • 3.5 文章详情页
    • 3.6 编写博客页面

大家好 , 这是新的专栏 , 博客系统 SSM 版本
博客系统很常见 , 这是一个大多数新手都会去做的系统
市面上的资料错综复杂 , 博主带大家从最开始一步一步实现一个完整的博客系统
让大家不会感觉特别困惑 , 也不会再去浪费时间搜寻各种资料
欢迎大家来阅读这个专栏

一 . SSM 版本相比于 Servlet 版本的亮点

  1. 框架升级 : Spring Boot + Spring MVC + MyBatis + MySQL + Redis + jQuery
  2. 密码升级 : 明文存储与 md5 存储是不安全的 , 我们会将密码进行加盐处理
  3. 用户登录状态持久化升级 : 以前的 session 是在内存中存储的 , 我们将 session 存储到 MySQL / Redis 中 , 实现分布式存储

session 是在内存中存储有两个弊端 :

  1. 当你的后台服务器重启之后 , 之前的登录信息就没了
  2. 如果把 session 放到内存中的话 , 程序就只支持单机部署 , 不支持分布式

(张三登陆的时候 , 把登录信息存在了 主机 A 的内存中 , 一会之后 , 张三进行点击操作 , 这时候 , 是 主机 B 来服务张三的 , 但是 主机 B 的内存中并没有张三的登录信息 , 所以就会让张三重新登陆 , 这明显是不合理的)

  1. 实现分页功能
  2. 在项目中引入拦截器 , 升级用户的登录验证

还可以额外实现的功能有 :

  1. 文章保存草稿
  2. 文章定时发布功能
  3. 用户多次登录 , 账号冻结的业务

用一个变量记录错误登录次数 , 超过一个值就把账号冻结

  1. 评论功能
  2. 个人中心(修改密码)
  3. 找回密码
  4. 登陆的时候添加图片验证码 , 增加系统的安全性
  5. 点赞功能

二 . 初始化数据库

20232481750.bmp

三 . 前端页面

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

3.1 注册页面

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

3.2 登录功能

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

3.3 文章总列表页

image.png
在最下面 , 我们实现了分页功能

3.4 自己的文章列表页

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

3.5 文章详情页

image.png
后续我们还可以实现展示阅读量

3.6 编写博客页面

image.png
我们的修改文章也可以使用这个页面
当 URL 后面没有任何参数的时候 , 访问的就是编写博客的页面
如果我们在 URL 后面添加了 ?id=1的话 , 那我们就认为他是修改文章 , 就会拿到 URL 里面的参数 , 发送 ajax 请求给后端 , 查询到当前这篇文章的信息之后 , 返回给前端进行显示 , 显示出来之后再点击发布文章 , 这时就是修改文章了 .


到这里 , 准备阶段就结束了 , 接下来 , 就会带大家实现核心代码
下一篇博客再见~
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/345201.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

嵌入式Linux学习经典书籍-学完你就是高手

很多刚入门的朋友一直都有人问我要学习资料,嵌入式实在太杂,网上很多人写的太不负责了,本书单综合了本人以及一些朋友多年的经验整理而成。 本人见识和阅读量有限,本书单可能有不对的地方,欢迎朋友指正,交…

SCI写作,一定要避开这些“雷点”!

SCI论文写作中,除了要符合各部分的写作要求,还有许多细节问题需要我们注意,不然可能一不小心就会“踩雷”。 今天我们就来和大家分享SCI各个部分写作时的注意事项。 下面就进入正题! SCI写作注意事项 01 标题的拟定 1.避免使用无…

[Vivado那些事儿]将自定义 IP (HDL)添加到 Vivado 模块设计(Block Design)

绪论使用Vivado Block Design设计解决了项目继承性问题,但是还有个问题,不知道大家有没有遇到,就是新设计的自定义 RTL 文件无法快速的添加到Block Design中,一种方式是通过自定义IP,但是一旦设计的文件有问题就需要重…

短信链接跳转微信小程序

短信链接跳转微信小程序1 实现方案1.1 通过URL Scheme实现1.2 通过URL Link实现1.3 通过云开发静态网站实现2 实现方案对比3 实践 URL Schema 方案3.1 获取微信access_token3.2 获取openlink3.3 H5页面(模拟短信跳转,验证ok)4 问题小节4.1 io…

机器视觉_HALCON_示例实践_1.检测圆形

文章目录一、引言二、检测圆形三、总结一、引言 前面的文(用户指南/快速向导)差不多已经把HALCON的基本内容讲完了,并且在学习过程中还跑过一个简单示例——在单一背景下定位回形针。示例跑过,顿时觉得自己行了,但如果…

当make执行遇到 Arguments too long

1. 问题 Ubuntu20.04上make编译生成so的时候报错: make[1]:execvp:/bin/sh:Arguments too long对应makefile中的报错位置,仅仅是生成so的时候报错,伪代码如下 ${build_tool} -shared -fpic -o "$" ${OBJ_FILE} ${LDFLAGS}然而如…

Linux基础 - NTP时间同步

‍‍🏡博客主页: Passerby_Wang的博客_CSDN博客-系统运维,云计算,Linux基础领域博主 🌐所属专栏:『Linux基础』 🌌上期文章: Linux基础 - DNS服务进阶 📰如觉得博主文章写的不错或对你有所帮助…

IP地址在网络安全行业有哪些应用?

随着我国网络安全法律的颁布实施、制度的细化落实以及标准体系的制定,为我国产业数字化和数字产业化铺平了道路。近几年,数据将对网络安全行业产生巨大影响,包括行业数据的采集、共享,智能算法的演进以及算力资源的复用&#xff0…

ContextCapture Master 倾斜摄影测量实景三维建模技术应用

查看原文>>>https://mp.weixin.qq.com/s?__bizMzAxNzcxMzc5MQ&mid2247582483&idx3&sn38b94b4415ff29531e1619afe0c4df87&chksm9be29c03ac951515c28be526c987b19aedc1a5b3ad98ada5676e8c548f0f229665f495a0f281&token10630879&langzh_CN#rdCo…

Windows 11 绕过 TPM 方法总结,通用无 TPM 镜像下载 (2023 年 1 月更新)

在虚拟机、Mac 电脑和 TPM 不符合要求的旧电脑上安装 Windows 11 的通用方法总结 请访问原文链接:https://sysin.org/blog/windows-11-no-tpm/,查看最新版。原创作品,转载请保留出处。 作者主页:www.sysin.org 本文要解决的问题…

Qt 不规则窗口,不规则按钮,不规划控件 不规则界面

有一些特殊情况,需要使用不规则窗口或按钮,看起来非常炫酷。 类似: Qt 实现 不规则样式设置,不是视觉欺骗,是真正的不规则 ,点击外面不会触发按钮的点击信号. Part1:不规则窗口 效果&#xf…

【软考——系统架构师】信息系统基础

🔎这里是【软考——系统架构师】,关注我考试轻松过线 👍如果对你有帮助,给博主一个免费的点赞以示鼓励 欢迎各位🔎点赞👍评论收藏⭐️ 文章目录👀一、信息化概述👀二、信息系统工程总…

json-server环境搭建及使用

json-server环境搭建 一个在前端本地运行,可以存储json数据的server。 基于node环境,可以指定一个 json 文件作为 API 的数据源。 文章目录json-server环境搭建前提下载安装监听服务启动成功修改端口号方式一:方式二:数据操作测试…

[Datawhale][CS224W]图机器学习(二)

文章目录一、概述1.1 图的结构1.2 特征处理1.3 学习任务1.3.1 节点分类1.3.2 链接预测1.3.3 图级任务二、传统方法三、统计特征与核方法3.1 节点层面3.2 连接层面3.3 图层面3.4 节点袋参考文献Datawhale开源学习社区 x 同济子豪兄 Stanford课程中文精讲系列笔记本文同时发布在&…

揭秘涨薪50%经验:从功能测试到自动化测试,我是如何蜕变的?

本人在今年互联网大环境如此严峻的情况下,作为一个刚毕业不到一年的初级测试,赶在“金三银四”依然拿到了一些面试机会,并且成功拿下4家公司的offer,其中不乏互联网大厂,而且最高总包给到了接近double(无炫…

动态规划问题

目录 一、动态规划简介 二、利用动态规划解决问题 1、斐波拉契序列 2、拆分词句 3、三角形最小路径和 4、不同的路径数目(一) 5、带权值的最小路径和 6、求路径ii 7、01背包 8、不同子序列 9、编辑距离 10、分割回文串 一、动态规划…

Go 语言中的 Slice 陷阱:如何避免常见错误

Go 语言中的 Slice 陷阱:如何避免常见错误前言slice 作为函数 / 方法的参数进行传递的陷阱slice 通过 make 函数初始化,后续操作不当所造成的陷阱性能陷阱小结耐心和持久胜过激烈和狂热。 哈喽大家好,我是陈明勇,本文介绍的内容是…

Lesson 7.1 无监督学习算法与 K-Means 快速聚类

文章目录一、聚类算法与无监督学习二、K-Means 快速聚类的算法原理1. K-Means 快速聚类的基本执行流程2. K-Means 快速聚类的背后的数学意义三、K-Means 快速聚类的 sklearn 实现方法1. sklearn 中实现 K-Means 快速快速聚类2. 轮廓系数基本概念与 sklearn 中实现方法从现在开始…

【基于jeeSite框架】SpringBoot+poi+Layui自定义列表导出

文章目录功能效果思路代码前台后台easyPoi,easyExcel,poi三者的区别poipoi依赖导出ExcelHSSF方式导出XSSF方式导出SXSSF方式导出导入excelHSSF方式导入XSSF方式导入SXSSF方式导入easyPoi依赖包采用注解导出导入easyExcel依赖采用注解导出导入API文档easyPoi操作文档…

内网渗透(二十五)之Windows协议认证和密码抓取-使用Hashcat和在线工具破解NTLM Hash

系列文章第一章节之基础知识篇 内网渗透(一)之基础知识-内网渗透介绍和概述 内网渗透(二)之基础知识-工作组介绍 内网渗透(三)之基础知识-域环境的介绍和优点 内网渗透(四)之基础知识-搭建域环境 内网渗透(五)之基础知识-Active Directory活动目录介绍和使用 内网渗透(六)之基…