Javaweb项目--博客系统

article/2025/9/11 12:45:37

目录

一.项目简介

二.具体实现

1.准备工作

1.1 创建maven项目,并创建好目录结构.

1.2 配置 pom.xml 文件,引入所需依赖.

2.设计数据库

2.1 创建用户表

2.2 创建博客表

3.封装数据库操作

3.1封装DBUtil

3.2创建实体类

3.3 创建 Dao类

4.  实现页面

4.1 初始化模板引擎

 4.2 实现博客列表页

4.3 实现博客详情页

4.4 实现登录 和注册页面

4.5 实现博客编辑上传页

5.功能补充

5.1 登录校验

5.2 实现注销功能

5.3 实现删除博客功能

 6. 其他实现

三. 总结


一.项目简介

基于HTTP协议,Tomcat,Servlet,模板引擎实现的一款类似于csdn的博客系统. 

本博客系统的核心功能:

  1. 支持用户注册,登录及注销功能.
  2. 博客列表页: 能够展示所有发布的博客(概要)
  3. 博客编辑页: 能够编辑并且发布博客.
  4. 博客详情页: 能够展示一篇博客具体的内容及信息.

项目源码链接: 博客系统项目代码(servlet+模板引擎版本)

                      

项目效果展示及体验: 博客系统


二.具体实现

1.准备工作

1.1 创建maven项目,并创建好目录结构.

1.2 配置 pom.xml 文件,引入所需依赖.


2.设计数据库

需要把博客信息及用户信息存储到数据库中.

2.1 创建用户表

2.2 创建博客表


3.封装数据库操作

把代码中关于数据库的操作封装起来,实现代码的简洁

3.1封装DBUtil

这是一个单例类,用来获取数据库的连接.

3.2创建实体类

这里需要创建两个实体类(Blog 和 User),每个实体类对象,代表对应的数据库表中的每一条数据. 

类中的属性也要提供对应的 Getter 和 Setter 方法,这里就不全部展示了.

3.3 创建 Dao类

DAO 全称为 "data access object", 主要的功能就是对于某个数据库表进行增删改查.

这里需要分别创建UserDao类 和 BlogDao类 来分别封装对于对应表的增删改查的操作.

 

 类中具体的实现请关注本博客的源码链接.


4.  实现页面

这里关于前端的代码的实现就不做过多解释, 主要关注前端与后端如何进行交互.

4.1 初始化模板引擎

让服务器基于模板引擎, 来把从数据库查找到的对应的数据返回到网页上面.

这里封装一个 ThymeleafConfig 类, 用来创建一个引擎实例.(

  • 这个类实现ServletContextListener接口,重写其对应的方法.
  • 目的是当 ServletContext 创建完毕后, 在 contextInitialized 中创建 TemplateEngine 实例和 ServletContextTemplateResolver 实例, 并完成初始化操作.
  • 把创建出来的 TemplateEngine 实例放到 ServletContext 中.
  • 后续 Servlet 如果需要使用 TemplateEngine , 那么直接从 ServletContext 获取到之前创建好的TemplateEngine 实例即可, 不必重新创建

)

 4.2 实现博客列表页

(1). 先把博客列表页的模板实现出来(前端要渲染的内容)
(2). 构建博客列表页对应的 servlet
注意:  1.这里渲染博客内容时,只截取博客正文当中的前一部分展示在列表页, 以保证列表页的展示效果. 而这个截取正文的需求就可以在封装好的 BlogDao 类中的获取所有博客中来实现,在查询数据库的时候,就直接在获取正文之后进行判定,如果内容超过列表页中展示的长度就截断.

2. 如果博客列表页里显示的内容过多,会破坏整个页面的结构. 解决方案: 在前端(css) 给显示博客列表的容器中添加 overflow 属性. 

3. 一般博客列表页在显示的时候是保证当前最新的博客显示在最上面, 所以此处也需要稍微修改一些查询所有博客的sql.

 

4.3 实现博客详情页

这里的具体操作步骤与实现博客列表页相同, 先实现网页模板,再构建一个对应的Servlet 生成这个页面.

4.4 实现登录 和注册页面

登录页面与注册页面是不同于上面的页面的. 这两个页面的内容是固定的,不需要模板来动态替换,也就是页面中没有需要动态生成的内容. 所以在前端页面实现完成之后, 主要的目标就是实现对应的 Servlet 来处理登录和注册的请求即可.

实现处理登录请求的Servlet. 

  1. 先从请求中获取出 用户输入的用户名和密码(获取之后要进行合理性判断)
  2. 从数据库里根据得到的用户名查询用户(若查询不到说明用户名是错误的)
  3. 比较根据用户名查询到的用户的密码是否和输入密码一致
  4. 登录成功之后, 把当前用户对象存储到 HttpSession 中(创建会话)
  5. 重定向到博客列表页

 实现处理注册请求的Servlet. 

  1. 先从请求中获取到 用户名,密码和确认密码.(获取之后进行合理性判断)
  2. 从数据库里根据用户名查询用户 (查询不到说明这个用户名是可以进行注册使用的)
  3. 判断 获取到的密码和确认密码是否相同
  4. 注册成功, 将该用户插入数据库中
  5. 重定向到登录页

4.5 实现博客编辑上传页

  • 先修改博客编辑页

  •  再实现对应的 Servlet 处理上传博客请求
  1. 首先要判断当前用户是否登录,未登录状态下不可以发布文章.(如何判断下文介绍)
  2. 读取请求中的参数, 及文章的标题和内容 (要进行合理性校验)
  3. 构造一个Blog对象,并插入到数据库中
  4. 重定向到博客列表页

5.功能补充

以上,博客系统的核心功能已经实现,其次就是一些其他功能的补充,来进一步优化改博客系统.

5.1 登录校验

        其实, 在访问博客列表页,博客详情页和博客编辑页之前,我们是需要先进行登录的. 未登录状态下是不可以访问这几个页面的, 所以此处就应该实现对登录状态进行校验的功能.

        若当前是处于登录状态就可以访问这几个页面, 若是未登录状态下直接访问的话就直接重定向到登录页面.

        如何实现这个功能, 其实这里我们就可以尝试获取在登录成功时我们存入会话(session)的 user 对象. 因为我们在实现登录的逻辑中是创建了一个会话并且将该对象存入其中的.

 这里我们单独封装一个 Util 类,来获取当前会话中存入的user对象.

 在其他类中就可以直接调用这个方法来进行登录校验,若获取对象不为空则说明登录成功.

 

5.2 实现注销功能

        在前端页面中,是存在一个注销按钮的, 其实就是一个 a标签 我们需要实现一个对应的Servlet 来处理这个 a标签的注销请求.

        注销功能的实现其实就是获取到当前会话中的 user 对象, 然后把这个对象从会话中移除即可, 这样的话,后续其他请求在进行登录校验的时候就无法获取到这个对象, 登录校验无法通过也就视为是未登录状态了.

 

5.3 实现删除博客功能

        删除博客功能的实现, 主要是判断这一篇博客是否是当前登录用户所写的博客. 当前用户只能删除自己所写的博客,不能删除其他用户所写的博客. 所以 在博客详情页中需要新增一个"删除" 按钮 (如果当前博客的作者正是登录用户本身,才会显示这个删除按钮), 后端代码中我们可以对当前登录的用户和文章作者进行判断, 然后返回结果到前端, 前端根据结果来判断是否进行渲染即可.

 

        这个删除按钮同样是一个 a标签, 所以我们需要实现一个对应的Servlet 来处理这个 a标签的删除请求.  获取到 url 中的 blogId 然后根据 blogId 删除数据库中对应的博客数据即可.

  


 6. 其他实现

 1.导航栏中用户信息的修改.(也是基于模板动态替换的)

 

 

2. markdown 编辑器的注入和样式修改

这里主要是涉及到前端的知识,此处就不做过多介绍了, 详细细节可以参考项目源码.


三. 总结

       该博客系统项目,主要是基于 Servlet + Http协议 来进行前后端交互, 使用模板引擎对前端页面进行渲染.

        实现项目的重点在于理清前后端进行交互的逻辑,进而进行代码的实现. 本项目其实还有非常大的扩充空间,要逐渐进行优化和完善.


http://chatgpt.dhexx.cn/article/TCwwGKn4.shtml

相关文章

Java微型博客系统——评论功能的实现

评论功能的实现与Article展示页的修改 本章主要实现了博客的评论功能的实现,包括增删改查等功能。并且,由于权限不同,之前将文章页面分为了两个页面。其实是没有必要的,这次修改将两个页面合二为一。 1.数据库的建立 评论主要应…

想要搭建个人博客?我调研了 100 来个 Java 开源博客系统,发现这 5 个最好用!......

最近想倒腾一下博客,看了很多现成的比较成熟的开源博客系统,自己也简单从下面几个维度总结对比了一下: star 数量技术选型社区生态 当然啦!好东西不能独享,下面简单分享一下我所做的笔记(文末有提供所有项目的压缩包)。…

Java实现小型博客系统

Java实现小型博客系统 本项目基于SpringBoot、Dubbo、Zookeeper、Redis、MySQL实现了一个分布式博客系统。功能包括账号的增删改查、文章的增删改查、文章评论的增删改查、热点文章的存取、文章的点赞等。 项目地址:https://github.com/ZhangHZ9802/MyLittleBlogSy…

[JAVA]从零开始创建个人博客——环境搭建

目录 一、购买服务器 二、远程登陆 三、安装相关环境 四,springboot项目创建 一、购买服务器 可以买腾讯云或者阿里云,本文以腾讯云举例。 买第一个就可以。 购买之后界面如下,因为需要用到mysql,点击防火墙进行配置: 配置如下…

Java实现个人博客网站

说明:该项目是实验楼用户“LOU3165780622”发布在实验楼上的项目教程:【Java实现个人博客】,未经允许,禁止转载; 该项目利用 SSM 框架和 Mysql 以及一些简单的前端知识搭建一个自己的个人博客网站,网站功能…

25 篇 Java 入门技术博文,送给正在自学的你

很多大学生或者正在自学的程序员问我:“二哥,能否提供一个 Java 入门的学习路线?”刚好我之前花了 7 周多的时间写了 25 篇 Java 入门的技术博文,于是我想不妨把这些整理成一个系列分享出来,给大家作为一个参考。 先来…

javaweb个人博客网站

该个人博客网站实现了前台用户注册登录,发布博文,发布照片,评论,关注,点赞,回复,留言,发私信等功能,适合新手学习SSM框架。 开发语言: Java 技术框架: SSM 开发工具…

Java项目---博客系统

博客系统url : 链接 项目已上传gitee : 链接 前言 之前笔者已经使用Servlet结合MySQL实现了第一版的个人博客。在这一版的博客系统中,将进行以下功能的升级: 框架升级:SSM版本,即(Spring SpringMVC MyBatis&#…

javaweb——>个人博客项目

javaweb——>个人博客项目 具体代码参考:java_blog 目录 javaweb——>个人博客项目具体代码参考:[java_blog](https://github.com/zhuyunfeisn/java-project/tree/master/java_Blog)一.简单介绍1.功能简介2.使用的技术 二.项目准备1.需要的资源2.…

个人博客-javaWeb项目

一、目标 利用已有的前端页面实现一个个人博客系统的后端设计,可以实现用户登录,博客列表展示,博客详情页展示,写博客,删除博客的功能。 二、开发思路 采用前后端分离的方式,网页通过ajax构造HTTP请求和…

javaweb实现个人博客系统

JAVAweb项目——个人博客系统 技术路线: 项目主要采用jsphtml前台页面,后端服务器采用servlet,编辑相关样式以及函数功能的时候使用到了bootstap和jQuery。数据库操作通过dbutils和c3p0连接池实现。Md编辑通过第三方插件editor.md实现。 实现…

一个简单漂亮的Java博客系统

预览地址:http://forestblog.liuyanzhao.com 关于项目 该博客是基于SSM实现的一个个人博客系统,适合初学SSM和个人博客制作的同学学习。 主要涉及技术包括的包括 Maven、Spring、SpringMVC、MyBatis、JSP等 最新写了一篇该项目的毕业设计论文&#xf…

Java程序员博客系统推荐!我调研了100来个 Java 开源博客系统,发现这 5 个最好用!

最近想倒腾一下博客,看了很多现成的比较成熟的开源博客系统,自己也简单从下面几个维度总结对比了一下: star数量技术选型社区生态 当然啦!好东西不能独享。下面简单分享一下我所做的笔记。 欢迎小伙伴们评论区补充完善。ღ( &a…

JavaWeb搭建简易个人博客

前台首页访问路径:/index.jsp 后台访问路径:/admin.jsp 运行项目前请把blog-parent目录下的database.sql加载到数据库中,并在blog-web/资源文件夹下的db.properties里配置数据库访问账号和密码 CSDN下载链接:点击链接下载

Java项目-Javaweb实现个人博客

作者主页:编程指南针 简介:Java领域优质创作者、CSDN博客专家 Java项目、简历模板、学习资料、面试题库、技术互助 文末获取源码 项目编号 :KS020 运行环境: 开发工具:IDEA /ECLIPSE 应用服务器:TOMCA…

用java写一个博客网站

可以先看一下这个网站长怎么样,哈哈哈,小屋知多少 先说一下这个博客有哪写功能?然后这个是代码后台下载地址:https://gitee.com/c-xiaobai-c/ssm-blog-website-background.git 前台下载地址:https://gitee.com/c-xia…

JavaWeb项目 -- 博客系统

JavaWeb项目 -- 博客系统 前言:页面展示一、创建 Maven 项目二、设计数据库三、封装数据库的操作3.1 创建 DBUtil 类3.2 创建 Blog 类3.3 创建 User 类3.4 创建类 BlogDao3.5 创建类 UserDao 四、导入准备好的前端代码五、实现博客列表界面5.1 约定好前后端交互接口…

【Java项目】从0到1构建一个博客系统

✨哈喽,进来的小伙伴们,你们好耶!✨ 🛰️🛰️系列专栏:【JavaWeb】 ✈️✈️本篇内容:从0到1构建一个博客系统! 🚀🚀代码托管平台github:博客系统源码托管! ⛵…

史上最全的 Java 高质量博客与网站推荐(国内篇)

阅读文本大概需要 6.66 分钟。 前言 我最近在系统整理一些 Java 后台方面的面试题和参考答案,有找工作需求的童鞋,欢迎关注我的 Github 仓库,如果觉得不错可以点个 star 关注 : 1、awesome-java-interview2、awesome-java-notes…

博客系统[Java]

目录 一.准备工作 二.实现数据库代码(JDBC) 1.创建数据库/表结构>数据库设计 2.封装数据库(Model) 1>创建DBtil封装数据库连接操作 2>创建实体类-->表示一条记录 3>封装针对数据的增删改查 三.博客列表页 1.约定前后端 2.编写服务器代码 3.编写客户端…