基于Java的博客管理系统的设计与实现

更新时间:2024-05-15 13:57:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

题目:本科生毕业设计说明书

基于Java的博客管理系统的设计与实现

摘 要

本文对博客系统的设计与开发过程进行了分析与叙述。依照系统开发的实际操作步骤,文章从系统概述、系统分析、系统设计和系统实现这四大章节对系统开发过程进行分别阐述。系统概述中主要进行了课题背景、课题意义和现状分析;系统分析中主要包括了系统设计前的需求分析、业务流程分析、数据流程分析和数据字典分析;而系统设计则是对系统体系结构、各功能模块、数据库结构设计等具体的系统实现过程进行剖析展示,在系统设计章节中有详细的文字解释并配有表图说明。文章还列举了关键的功能模块实现代码。

本文力求可以为博客系统的开发设计找到一种切实可行的解决方案,在分析了目前国内外博客系统的现状的基础上,并经过反复摸索和学习研究后,借助编程语言JSP和SQLServer数据库最终实现了博客系统的开发,并在一系列测试后,达成了人性化、所需功能完善操作清晰的设计目标。

关键词:JSP;SQL Server 2005;博客

- I -

目 录

1 系统概述............................................................1 1.1 设计目的........................................................1 1.2 设计思路........................................................1 1.3 系统需求分析....................................................2 1.4 开发可行性分析.................................................4 1.4.1 管理上的可行性.............................................4 1.4.2 技术上的可行性..............................................4 1.4.3 经济上的可行性..............................................4 1.4.4 执行可行性.................................................4 1.5 开发环境.......................................................4 1.6 运行环境......................................................4 1.7 参考文献......................................................4 2 总体设计...........................................................6 2.1 系统物理结构....................................................6

2.1.1 系统流程图..................................................6 2.1.2 数据库分析.................................................7 2.2 模块功能设计....................................................11

2.2.1 系统首页设计............................................11 2.2.2 用户注册模块..............................................11 2.2.3 照片发布模块..............................................13 2.2.4 添加文章模块..............................................14 2.2.5 用户修改个人资料模块........................................14 2.2.6 管理员登录模块.............................................15 2.2.7 注册用户管理.............................................16 2.2.8 公告管理模块界面............................................16 3 运行设计...........................................................17 3.1 运行代码.......................................................17

3.1.1 用户注册模块界面............................................17 3.1.2 照片模块界面................................................18 3.1.3 添加文章模块界面............................................19 3.1.4 修改个人资料界面............................................20 3.1.5 登陆界面....................................................21

- 2 -

3.2 数据库代码......................................................22 4 系统测试..........................................................23 4.1 系统测试....................................................23

4.1.1 测试的目的..............................................23 4.1.2 测试的准则............................................23 4.1.3 测试的方法..............................................23 4.2 功能测试....................................................24 4.3 稳定性测试..................................................24 4.4 安全性测试.................................................24 4.5 系统测试....................................................24 4.6 系统维护......................................................24

- 3 -

2015届本科生毕业设计说明书 系统概述

1 系统概述

1.1 设计目的和意义

随着互联网的迅猛发展,网络日益成为人们交流的重要媒介,网络交流方式也日新月异。在没有自己的博客之前,人们会经常进出于论坛发表贴子或者通过即时通信软件聊天,来表达自已的想法,可是这些都是零散的和杂乱的。博客的出现,让人们可以不断的把自己以前的和每天激发的一些想法或者感受整理放在自己的博客上,每次在写文章的时候,可能又会产生新的想法。虽然一些想法一些思考只是皮毛,没有什么深度,但是当下笔去写的时候每次都会对某个小小的问题有了更多的一点点思考,再写博客的时候就感觉到了一种满足感,一种想法得以释放思考得以延伸的满足感。生活中每天的一个小小的事情都会引起人们的思考,甚至是和朋友的聊天中一个小小的火花迸发。督促自己努力、把一时的想法变成观点,争取在生命中的每天里留下点什么,这也是人们写博客的目的之一。这样就能督促自己每一天不要浑浑噩噩,时光流逝无痕无声无息,写博客也是在自己的每一天上留下了一道浅浅的思考和划痕。

不仅如此,通过写博客、记录自己的想法可以帮助实现如下这些目的: (1)记录生活,在自己的每一天上留下思考的划痕。 (2)整理思路,固化知识,获得更多更好的想法。 (3)分享,将自己的想法、经验与人分享。

(4)交流、提高,通过交流产生更多的思维火花,相互提高。 (5)交友,互相鼓励,一路同行。

博客系统的实现,用户轻松注册一个账号后,可以发布照片,个人工作过程、生活故事、思想历程、闪现的灵感等及时记录和发布,发挥个人无限的表达力;更可以以文会友,结识和汇聚朋友,进行深度交流沟通。 1.2 设计思路

首先是拿到客户的需求,有时候客户的需求很不合理,由于客户对Java不理解和对自己操作简便的最大化给程序员造成了很大的麻烦,对于客户的这种无理的需求,项目经理通常要跟他们解释清楚,同时,有些需求是客户也想不到的,作为有良知的程序员,主动和客户提出来。

1

2015届本科生毕业设计说明书 总体设计

2.1.2 数据库分析

数据库是本系统的核心,系统中所有的信息都存储在数据库中,从而实现需要的功能。本系统中数据库采用SQL SERVER作为数据库工具。如果直接在 数据库软件上建立表格,开发出来的数据库多半存在很多弊端,由于没有全面分析用户需求,数据库很可能在网站编写过程中需要多次修改,这将大大降低开发效率。一个良好的数据库开发过程一般是先系统分析,在逻辑设计,然后物理实现。系统分析中分析数据库用户需求,并画出E-R(Entity-Relationship)图直观地表示出数据库系统的需求。逻辑设计中根据系统分析设计一个关系模型。物理设计为逻辑设计中的数据库模型选取一个最适合的应用环境的物理结构,通常选取一个常用的数据库软件,用数据库软件创建与逻辑设计中数据模型对应的数据库。

1、数据库需求分析

博客系统中,数据库要解决如下需求:

(1)保存会员信息,包括员工的姓名、性别、出生日期、民族等员工的信息。 (2)保存管理员的信息,包括管理员的姓名、编号等信息。 2、数据库概念设计

拥有以上的数据项和数据结构以后,就可以设计出能够满足用户需求的各种实体以及它们之间的关系,为后面的逻辑结构设计打下基础。这些实体包含各种具体信息,通过相互之间的作用形成数据的流动。分析本系统的需求,可以得到如下实体间E-R图如图2-2所示:

7

2015届本科生毕业设计说明书 总体设计

用户名评论者QQ评论信息表评论时间住址联系方式头像登陆密码用户昵称用户信息表性别评论者姓名评论内容用户ID标题文章表浏览器文章内容添加时间相册标题相册信息表内容相册ID上传时间公告标题用户ID公告ID公告信息表公告内容用户名发布时间系统管理员表密码

图2-2 系统数据库E-R图

8

2015届本科生毕业设计说明书 总体设计

3、数据库逻辑设计

数据库的概念结构设计完毕后,可以将上面的数据库概念转化成某种数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。利用这个实际数据模型,可以很直观的看出数据库中每个数据表的所储存的信息情况,比如字段的名称,字段的类型,字段是否允许为空以及对字段进行的说明,这其中包括了主键字段不允许为空的这一特性。

各个E-R图转换的关系表如下: (1)用户信息表(t_users)

用户信息表主要用于存放用户的信息,主要字段包括:用户ID,用户账号,密码,状态,地址,电话,头像等。

表3-1 用户信息表(t_users)

字段名 ID Name Pwd Realname Sex Address Tel picpath (2)文章信息表(t_bowen)

文章信息表主要用于存储用户添加的文章信息,主要字段有文章编号、标题、内容。

表3-2 文章信息表(t_bowen)

数据类型 int varchar varchar varchar varchar varchar varchar varchar 字段描述 用户ID 用户账号 用户密码 昵称 性别 住址 联系方式 头像 长度 4 50 50 50 50 50 50 50 主键 √ 字段名 ID Title Content Times User_id Clicks 数据类型 Int Varchar Varchar Date Int Int 字段描述 文章编号 标题 文章内容 添加时间 用户Id 浏览量 长度 4 50 5000 4 4 4 主键 √

9

2015届本科生毕业设计说明书 总体设计

(3)相册信息表(t_xiangce)

文章信息表主要用于存储用户添加的相册信息,主要字段有相册编号、标题、内容。

表3-3 相册类型信息表(t_xiangce)

字段名 ID Title Times User_id (4)评论信息表(t_pinglun)

评论信息表主要用于对文章的评论信息,主要字段包括:评论时间,评论内容,评论者姓名。

表3-4 评论信息表(t_pinglun)

数据类型 Int Varchar Date Int 字段描述 相册编号 相册标题 添加时间 用户Id 长度 4 50 4 4 主键 √ 字段名 ID content shjian bowen_id (5)公告信息表(t_gonggao)

公告信息表主要用于网站的公告的信息,主要字段包括:公告标题、公告内容添加日期。

表3-5 公告信息表(t_gonggao)

数据类型 Int Varchar Varchar int 字段描述 评论编号 评论内容 评论时间 文章ID 长度 4 50 50 50 主键 √ 字段名 Id Title Conent times (6)照片信息表(t_zhaopian)

照片信息表主要用于用户的照片信息,主要字段包括:用户ID、照片标题、照片介绍。

数据类型 varchar varchar varchar Datetime 字段描述 编号 标题 内容 发布时间 长度 4 50 5000 4 主键 √

10

2015届本科生毕业设计说明书 总体设计

表3-6 好友信息表(t_zhaopian)

字段名 ID title fujian jieshao xiangce_id (7)管理员信息表(admin)

管理员信息表主要用于系统管理员的信息,主要字段包括:编号、登陆账号、登陆密码。

表3-7 管理员信息表(admin) 数据类型 Int varchar varchar varchar Int 字段描述 编号 照片标题 照片路径 照片介绍 相册ID 长度 4 4 4 主键 √ 字段名 ID Name Pwd 2.2 模块功能设计

数据类型 Int varchar varchar 字段描述 编号 登陆账号 登陆密码 长度 10 50 50 主键 √ 2.2.1 系统首页设计

页面的上方显示的是该网站的logo和当前的时间,下方主要部分是信息显示区域,右侧中间部分是通知公告,管理员发布的信息公告都可以在此点击后链接到相应的信息页面查看具体通知公告,右上方是登陆模块,用户必须输入正确的用户名、密码和验证码后才能进入系统,右下方方是一个精美的日立表。首页界面如图2-3所示。

11

2015届本科生毕业设计说明书 总体设计

图2-3 系统首页图

2.2.2 用户注册模块

游客要想使用本系统的功能,并不是仅仅局限于浏览和评论,前台条件是必须先注册一个用户账号,然后凭此账号登陆,才能拥有相册上传、好友管理、文章发布等这些功能。注册界面如图2-4所示。

图2-4 用户注册模块界面

12

2015届本科生毕业设计说明书 总体设计

2.2.3 照片发布模块

在这个界面中,用户需要输入照片标题、照片说明信息。这个地方还用到的现在比较流行的富文本编辑器fckEditor。

图2-5 照片发布模板图

13

2015届本科生毕业设计说明书 总体设计

2.2.4 添加文章模块

在该界面中首先输入文章内容。单击“提交”按钮,即可完成归文章发布操作,如图2-6所示。

图2-6 添加文章模块界面

2.2.5 用户修改个人资料模块

点击个人资料链接。跳转到个人资料编辑页面。系统自动赋值数据到个人信息的文框中。可以直接修改文本框的内容,修改完毕,单击“提交”按钮。如图2-7所示。

图2-7 用户个人资料编辑模块界面

14

2015届本科生毕业设计说明书 总体设计

2.2.6 管理员登录模块

系统管理员要维护整个系统,必须先登陆到系统中,在登陆页面,首先将从前台页面提交的用户名和密码进行接受,之后在后台进行处理,按照用户名在数据库中进行查询如果查到该用户则将该用户的权限和密码全都取出来分别赋给两个字符串变量,判断从数据库中读出的密码与登录时输入的密码是否配比上,若两个密码相同则根据权限的值进入相应的页面,否则输出密码错误。如图2-8所示。

图2-8系统管理员登陆模块界面

2.2.7 注册用户管理

管理员登陆到系统后。点击上面的菜单“用户管理”,可以浏览注册用的信息,同时也可以删除不合法的用户。以保证系统的纯洁性。如图2-9所示。

15

2015届本科生毕业设计说明书 总体设计

图2-9注册用户模块界面

2.2.8 公告管理模块界面

管理员登陆到系统后。点击上面的菜单“公告管理”,可以浏览以前发布的公告信息,同时也可以删除、编辑旧的公告,录入新的公告。如图2-10所示。

图2-10 公告管理模块界面

16

2015届本科生毕业设计说明书 运行设计

3 运行设计

3.1 运行代码

3.1.1 用户注册模块界面 public String userReg() { }

public String userEdit() {

TUser user=userDAO.findById(userId);

user.setUserName(userName); user.setUserPw(userPw);

user.setUserAddress(userAddress); user.setUserTel(userTel); TUser user=new TUser();

user.setUserName(userName); user.setUserPw(userPw);

user.setUserAddress(userAddress); user.setUserTel(userTel);

user.setUserRealname(userRealname); user.setUserEmail(userEmail); user.setUserSex(userSex); user.setUserQq(userQq);

user.setFujian(fujian.equals(\)==true?\:fujian); user.setFangwenliang(0); user.setUserDel(\); return \;

userDAO.save(user);

17

2015届本科生毕业设计说明书 运行设计

}

user.setUserRealname(userRealname); user.setUserEmail(userEmail); user.setUserSex(userSex); user.setUserQq(userQq); user.setFujian(fujian);

userDAO.getHibernateTemplate().update(user);

Map request=(Map)ServletActionContext.getContext().get(\); request.put(\, \修改成功\); return \;

3.1.2 照片模块界面 public String zhaopianAdd() { } {

String sql=\+id; xiangceDAO.getHibernateTemplate().bulkUpdate(sql);

Map request=(Map)ServletActionContext.getContext().get(\); HttpServletRequest request=ServletActionContext.getRequest();

TZhaopian zhaopian=new TZhaopian(); zhaopian.setTitle(request.getParameter(\)); zhaopian.setFujian(request.getParameter(\));

zhaopian.setXiangceId(Integer.parseInt(request.getParameter(\))); zhaopian.setDel(\); zhaopianDAO.save(zhaopian);

request.setAttribute(\, \上传图片成功\); return \;

public String zhaopianDel()

18

2015届本科生毕业设计说明书 运行设计

}

request.put(\, \照片删除成功\); return \;

public String xiangceAll() { }

Map request=(Map)ServletActionContext.getContext().get(\);

String sql=\+userId; List xiangceList=xiangceDAO.getHibernateTemplate().find(sql); for(int i=0;i

request.put(\, xiangceList);

TUser user=userDAO.findById(userId); request.put(\, user);

return ActionSupport.SUCCESS;

TXiangce xiangce=(TXiangce)xiangceList.get(i);

List zhaopianList=zhaopianDAO.getHibernateTemplate().find(s); xiangce.setZhaopianList(zhaopianList);

3.1.3 添加文章模块界面 public String bowenAdd() {

TBowen bowen=new TBowen(); bowen.setTitle(title); bowen.setContent(content);

bowen.setShijian(new Date().toLocaleString()); bowen.setUserId(userId);

19

2015届本科生毕业设计说明书 运行设计

}

bowen.setDel(\);

Map request=(Map)ServletActionContext.getContext().get(\); request.put(\, \博文发布成功\); return \;

public String bowenDel() { }

public String pinglunMana() { }

HttpServletRequest request=ServletActionContext.getRequest(); List pinglunList=pinglunDAO.getHibernateTemplate().find(s); request.setAttribute(\, pinglunList); return ActionSupport.SUCCESS; TBowen bowen=bowenDAO.findById(id); bowen.setDel(\);

bowenDAO.getHibernateTemplate().update(bowen);

Map request=(Map)ServletActionContext.getContext().get(\); request.put(\, \博文删除成功\); return \;

3.1.4 修改个人资料界面 public String userEdit() {

TUser user=userDAO.findById(userId);

user.setUserName(userName); user.setUserPw(userPw);

user.setUserAddress(userAddress); user.setUserTel(userTel);

user.setUserRealname(userRealname);

20

2015届本科生毕业设计说明书 运行设计

}

user.setUserEmail(userEmail); user.setUserSex(userSex); user.setFujian(fujian);

userDAO.getHibernateTemplate().update(user);

user.setUserQq(userQq);

Map request=(Map)ServletActionContext.getContext().get(\); request.put(\, \修改成功\); return \;

public String userEditPre()

3.1.5 登陆界面

String sql=\;

Object[] con={userName,userPw};

List userList=userDAO.getHibernateTemplate().find(sql,con); if(userList.size()==0) { } else {

WebContext ctx = WebContextFactory.get(); HttpSession session=ctx.getSession(); TUser user=(TUser)userList.get(0); session.setAttribute(\, 1); result=\;

{ }

TUser user=userDAO.findById(userId);

Map request=(Map)ServletActionContext.getContext().get(\); request.put(\, user); return ActionSupport.SUCCESS;

21

本文来源:https://www.bwwdw.com/article/2ns7.html

Top