基于MVC的博客系统【JavaWeb项目】

项目说明书

一、摘要

博客系统是一个使用JavaWeb技术开发的博文及不同用户交流的平台。

博客系统是一个简单的博文交流的web平台,可以满足用户简单的博文管理需求,操作简单,主要包含以下几个方面:

  • 登录注册
  • 查看所有用户的博客文章
  • 对博文进行检索
  • 管理个人发布的博文
  • 对博文进行评论

二、项目概述

项目概述是在调研分析的基础上,对现系统的现状和用户要求进行的概述。

系统概述

中国随着经济的发展,信息化的进一步发展,越来越多的人拥有个人电脑,使用电脑的人群也各式各样,当前市面上有着很多博客平台,就像CSDN,博客园等很多有着强大功能。

博文管理和检索是博客系统的基础。

系统业务流程

image-20201226162625353

三、系统功能模块

image-20201226163421572

系统需求分析

一、博客简介

博客是人们在网络上展现自己个性的一种方式。自从互联网走进千家万户,大受人们喜爱。大家都喜欢通过网络来获取各种各样的信息。而在网络上,你也可以畅所欲言,而个人博客也是其中一种。在博客上,你可以发表自己的心路旅程,发表自己的工作经验,发表技术博客等等。

博客,它也被称为网络日志。博客其实就是一个网页,它是由各种各样的帖子组成。这些帖子可以是你某一天观看电影的感慨,也可以是阅读到某篇书籍的读后感,更可以是你在自己技术领域的心得。它就是一个网页,但是大家可以在上面用文字或者图片分享自己的心情等,它提供的内容可以用来进行交流。

博客与论坛有许多的相似之处,许多朋友都分不清他们两的区别。首先,论坛和博客都可以进行交友和交流等。而其中论坛注重的是集体讨论,博客注重的是个人分享。它们两者的核心点就有着很大的区别。论坛的创建的用户是基于为众人服务,而博客是为了博主服务。它们的不同点还有在形式上的不同。博客是独立存在的。而论坛并不是。总结起来,论坛是多人一起交流的地方,互动性强,社交性强。博客是发表个人文章的地方,虽然也可以交流,但更多的还是自娱自乐。

二、目的

开发一个个人的博客管理系统,具备基本的博客功能,主要用于发表个人博客,记录个人生活日常,学习心得,技术分享等,供他人浏览,查阅,评论等。

三、功能目标

  1. 发布文章
  2. 浏览所有文章和个人文章
  3. 文章检索
  4. 评论
  5. 查看文章详情

PS:进行项目演示。

四、 E-R图

image-20211223132023426

五、数据库分析

表数据分析:

用户表:账号、密码、用户id、昵称、粉丝数、性别等

文章表:文章id、标题、关键字、文章内容、点赞数量、发布时间、用户id

评论表:评论id、评论用户id、文章id、评论用户昵称、评论内容、评论日期。

数据字典

  1. 文章表

    image-20201226163841378

  2. 用户表

    image-20201226164135418

  3. 评论表

    image-20201226164302204

六、原型图

https://www.processon.com/view/link/5f17b8c25653bb7fd248b268

任务说明书

项目名称

博客系统

软硬件配置

  • 硬件环境:个人计算机
  • 操作系统:可以采用 Windows XP 以上系统
  • 数据库系统:MySQL
  • Web 服务器:Tomcat
  • Java 运行环境:采用 JDK8及以上版本
  • 编译器:IDEA(或者eclipse)

知识基础

  • servlet
  • jsp
  • request、response
  • ajax
  • json
  • mysql
  • html+css+js+jquery
  • MVC模式

第三方工具

  • jackson
  • druid
  • commons-beanutils
  • JdbcTemplate(Spring的)

开发流程

第一周

一、开发前准备(1天)

  • 了解项目需求
  • 相关软件的安装
  • 了解项目的技术栈

PS:相关技术栈可在时候进行串讲

二、环境搭建(1天)

  • 搭建JavaWeb环境
  • 测试servlet+jsp
  • 连接mysql
  • 数据库的增删改查

三、登录注册(1天)

  • 完善登录注册的静态页面
  • 注册,并将用户信息存储到数据库
  • 登录

四、发布博客(1天)

  • 完善发布博客的静态页面
  • 发布博客并保存到数据库

第二周

五、查看博客(1天)

  • 查看所有博客
  • 查看个人博客
  • 检索博客
  • 查看博客详情

六、管理博客(1天)

  • 修改博客
  • 删除博客

任务目标

  • 通过本次项目实战,不仅可以让大家深入JavaWeb技术的核心编程,而且能熟练的应用集成开发环境开发应用项目,而且更重要的是对软件设计可以达到一个新的认识高度。

  • 通过这次项目,带着大家掌握项目开发的流程,如何开发项目,遇到问题如何去解决,以及分享一些我的编程经验和学习方法和思想。

代码

1. 基本环境搭建

2. 登陆模块

html:

a. 验证码

html代码

 <li>
          <span class="login-input">验证码:</span>
          <input type="text" class="input-con login-verify">
          <img class="verify-img" src="/login/code">
          <span id="verift-update">点击切换</span>
 </li>

js代码

$(function () {
    window.onload = function () {
        //点击图片切换
        //获取图片
        $(".verify-img").click(function () {
            let date = new Date().getTime();
            $(this).attr("src","/login/code?date="+date);
        })
        $(".verift-update").click(function () {
            let date = new Date().getTime();
            $(".verify-img").attr("src","/login/code?date="+date);
        })
    }
})

servlet:

@WebServlet("/login/servlet")
public class CheckCodeServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //1.创建一个对象,在内存中存图片(验证码图片对象)
        int width =100;
        int height= 50;
        BufferedImage image  =new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);//宽,高,格式
        //2.美化图片
        //2.1化背景颜色
        Graphics graphics = image.getGraphics();//画笔对象
        graphics.setColor(Color.pink);//设置画笔颜色
        graphics.fillRect(0,0,width,height);//填充一个蓝色的矩形  填充的位置和大小
        //2.2画边框
        graphics.setColor(Color.BLUE);//设置颜色
        graphics.drawRect(0,0,width-1,height-1);//画边框
        //2.3写验证码
        graphics.setFont(new Font("宋体",Font.BOLD,25));
        String str ="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";  //验证码包含的所有字符数字
        StringBuffer sb= new StringBuffer();
        Random random = new Random();//画验证码验证符
        for (int i = 1; i < 5; i++) {
            int s = random.nextInt(str.length());//随机获取字符串的角标,长度在字符串长度的范围内
            char c = str.charAt(s);//获取随机的字符
            graphics.drawString(c+"",i*20,25);//字符串的内容和位置
            sb.append(c);
        }
        String checkCode = sb.toString();
        HttpSession session = request.getSession();
        //将验证码存储到session中,用于登录后的判断。
        session.setAttribute("checkCode",checkCode);
        //2.4画干扰线
        graphics.setColor(Color.black);
        for (int i = 0; i < 5; i++) {
            int x1 = random.nextInt(100);
            int x2 = random.nextInt(100);
            int y1 = random.nextInt(50);
            int y2 = random.nextInt(50);
            graphics.drawLine(x1,y1,x2,y2);
        }

        //3.将图片输入到页面展示
        ImageIO.write(image,"jpg",response.getOutputStream());//输出对象,后缀名,输出流输出
    }
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request,response);
    }
}

代码下载:(免费 不要积分)

- 途径一

下载链接:基于MVC的博客系统

在这里插入图片描述

- 途径二

git地址:gitee下载地址
作者所有,仅供参考

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

君问归期魏有期

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值