个人博客(练习)

项目描述

实现一个简易的博客功能,包括以下功能

  • 用户登录
  • 注册
  • 找回密码
  • 发表添加新文章,
  • 显示文章详情,
  • 显示用户文章列表,
  • 显示所有文章列表(进行上下页的切换),
  • 统计访问量,
  • 修改文章,
  • 删除文章。

使用的技术

maven:使用maven来管理依赖,打包项目
mysql:使用MySQL作为业务数据的存储
html:使用HTML来编写前端页面
css:进行简单的页面美化
tomcat:使用Tomcat作为Web项目部署的服务器
servlet:每个页面调用后台接口都需要使用Servlet来完成业务。
session:在登录后才可以访问新增文章接口,否则直接返回到登录页面
ajax:通过jQuery.getJSON()进行前端请求
jackson:jackson是java对象与JSON字符串数据进行序列化、反序列化的工具。

需要的资源

Maven、IDEA、MySQL、Chrome浏览器、Fiddler4抓包工具

创建Web项目

创建Maven项目
文章目录结构
在这里插入图片描述

IDEA编码设置
在这里插入图片描述
在这里插入图片描述

数据库设计

创建数据库
设计用户表
需要id、姓名、密码字段,虚拟ID(用于更改按密码),创建时间,更改时间,状态

设计文章表
需要id、文章标题、文字内容字段,创建时间,更改时间,状态、 访问量,用户ID(需要关联用户表,关系表现为1个用户多篇文章)。

-- 创建数据库
drop database if exists javablog;
create database javablog;

-- 使用数据数据
use javablog;

-- 创建表[用户表]
drop table if exists  userinfo;
create table userinfo(
    id int primary key auto_increment,
    username varchar(100) not null,
    password varchar(32) not null,
    createtime datetime default now(),
    updatetime datetime default now(),
    idcard varchar(32) not null,
    `state` int default 1
);

-- 创建文章表
drop table if exists  articleinfo;
create table articleinfo(
    id int primary key auto_increment,
    title varchar(100) not null,
    content text not null,
    createtime datetime default now(),
    updatetime datetime default now(),
    uid int not null,
    rcount int not null default 1,
    `state` int default 1
);

设计数据库实体类
用户类,对应数据库用户表
文章类,对应数据库文章表。
在这里插入图片描述

设计数据库连接工具类
使用DataSource作为数据库连接的创建方式
设计释放jdbc资源的方法
在这里插入图片描述
在这里插入图片描述

具体功能介绍

登录功能
原理:需要先注册用户才能登陆访问,登录后需要建立用户的session信息,用来在访问文章新增等功能判断用户是否登录。
目标:登录后创建用户session数据,并跳转到个人文章页面。

注册功能
原理:先要输入3到10个字符长度的用户名(当然若用户已经存在是无法注册的),6到20位的密码长度并确保两次密码一致,虚拟ID可以随意设置,为了账号安全,这里用MD5算法将ID与密码转换后进行存储。
目标:实现注册功能,并将信息保存到数据库,注册成功后跳转到登录页面。

找回密码
原理:用户忘记密码,需要根据虚拟ID进行身份识别,通过后可进行重置密码的操作。
目标:身份验证通过且重置密码成功后,跳转到登录页面进行登录

新增文章功能
原理:在我的文章页面中,访问新增文章接口,上传文章标题、内容。
目标:用户没有登录时,跳转到用户登录页面。登录后允许访问,新增文章成功,保存数据到文章表,
新增文章成功后,自动刷新当前页面。

文章详情功能
原理:显示文章的信息,包括标题、具体内容,创建时间,访问量,作者
目标:可以单独输入url访问,也可以从我的文章和所有文章页面跳转进入

文章列表功能
原理:显示所有的文章信息,以json类型的数据返回,并展示
目标:后台需要获取数据库中的所有文章数据,并序列化为json格式,并返回给客户端浏览器显示设计文章列表

个人文章列表功能
原理:显示自己发布所有的文章信息
目标:后台根据用户ID获取数据库中个人的所有文章数据,并序列化为json格式,并返回给客户端浏览器显示设计文章列表

统计访问量功能
原理:统计文章列表的访问次数,当每次访问文章详情接口时,次数加1
目标:实现访问量的统计

删除文章
在个人文章页面访问删除接口进行文章删除

文章修改
在个人文章页面访问修改文章接口,可对自己发布的文章进行修改。

业务演示

1、进入登录页面,
在这里插入图片描述
若您还没有账号,您可以直接点击新用户注册,跳转到注册页面进行注册
在这里插入图片描述
注册时一定要按照提示进行输入信息,否则无法完成注册例如下面的情况
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
当然,已经存在用户是不能在重新注册的
在这里插入图片描述
这里的虚拟ID是用来找回密码的,防止忘记密码,找回密码只需要在注册页面点击忘记密码即可,然后跳转到如下界面
在这里插入图片描述
如果ID不正确是无法修改的
在这里插入图片描述
身份验证通过后便可进行重置密码
在这里插入图片描述

然后就能登录了,登录成功后,自动跳转到个人文章列表,然后可以进行添加文章操作和查看本系统的所有文章目录
在这里插入图片描述
添加文章
在这里插入图片描述

发布完成后可对自己的文章进行修改和删除
在这里插入图片描述
查看所有文章列表
在这里插入图片描述
查看文章详情
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值