基于jsp博客系统的设计与实现.doc_第1页
基于jsp博客系统的设计与实现.doc_第2页
基于jsp博客系统的设计与实现.doc_第3页
基于jsp博客系统的设计与实现.doc_第4页
基于jsp博客系统的设计与实现.doc_第5页
已阅读5页,还剩135页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

中文题目:基于 JSP 的博客系统的设计与实现 外文题目:DESIGN AND IMPLEMENTATION OF BLOG SYSTEM BASED ON JSP 毕业设计(论文)共 72 页(其中:外文文献及译文 7 页) 完成日期 2012 年 6 月 答辩日期 2012 年 6 月 I 摘 要 博客系统致力于为广大用户提供优质的互动交流平台,提高网站的知名度和访问量, 为用户提供一个数字化、信息化、智能化的信息平台。本文通过对博客的发展背景的分 析,设计出一个简易、迅速、快捷地发布自己的心得,及时、有效、轻松地与他人进行 交流的综合性的系统。本系统的开发设计实现采用 Struts2+JSP 结合技术,系统后台使用 Mysql 数据库,并通过 Hibernate 连接数据库。本文对博客系统进行整体分析,明确系统 的可行性和用户需求;根据模块化原理,设计了系统功能模块;在数据库设计部分,详 细说明系统数据库的结构和数据库的完整性、安全性措施;系统测试部分,具体分析测 试过程中出现的主要问题,并提出解决方案,实现系统功能。本博客系统主要实现了, 日志管理,相册管理,留言管理等基本功能。 关键字:Struts2;JSP;MySql;博客系统; II Abstract The blog is committed to provide customers with high-quality interactive platform, increase website visibility and access to content, to provide users with a digital, information-based, intelligent information platform for social interaction.This paper analyzes the background of the personal blog and study the development purposes of the system: The blog system provide persons with an integrated platform of simply, quickly release their experiences , timely, effectivily, easily to communicate with others .The design of this system uses The combination of the Struts2+JSP technology, Mysql backend database and Hibernate access technology.This paper analyzed the whole personal blog system, cleared the feasibility and user demand.According to the modular principle, designed the function module of system. In database design part,detailed detailedly described the structure, security measures of database. In the system testing part, analyzed the main problems about the testing process , put forward solutions and realized system function. This blog system, log management, photo albums, message management and other basic functions. Key Words: Struts2; Jsp; MySql; Blog 目录 1 项目概述.1 1.1 现系统的概述.1 1.2 系统设计目标分析2 1.3 业务流程描述.2 2 需求分析.5 2.1 系统总体目标.5 2.2 系统具体目标.5 2.3 系统功能建模.6 2.3.1 系统数据流程图.6 2.3.2 数据字典9 2.4 系统数据模型.12 3 概要设计.15 3.1 体系结构设计.15 3.2 接口设计16 3.2.1 外部接口16 3.2.2 内部接口16 3.3 代码设计17 3.3.1 代码设计的原则.17 3.3.2 系统所需代码设计17 3.4 数据库设计.18 3.4.1 关系模式设计.18 3.4.2 数据字典19 3.5 输入输出设计.21 3.5.1 输入设计21 3.5.2 输出设计23 3.6 运行设计24 3.6.1 运行环境24 3.6.2 运行模块的组合.25 3.6.3 运行控制和运行时间25 3.7 安全保密设计.25 4 详细设计.26 4.1 用户管理模块.26 4.1.1 模块定义26 4.1.2 程序逻辑26 4.2 日志管理模块.27 4.2.1 模块定义27 4.2.2 程序逻辑28 4.3 相片管理模块.28 4.3.1 模块定义28 4.3.2 程序逻辑29 5 编码30 5.1 开发工具概述.30 5.1.1 前台工具概述.30 5.1.2 后台工具概述.30 5.1.3 技术概述31 5.2 脚本习惯说明.31 5.3 编程脚本32 5.3.1 前台程序脚本.32 5.3.2 JAVA 程序脚本32 5.3.3 后台数据库脚本.32 6 测试33 6.1 测试原则及测试方法概述.33 6.2 测试项目测试用例34 6.3 软件测试结论.35 6.3.1 软件能力35 6.3.2 缺陷和限制.36 结论.37 致谢.38 参考文献39 附录 A 中文译文.40 附录 B 英文原文.43 附录 C 程序脚本.47 1 项目概述 1.1 现系统的概述 2011 年 11 月 3 日,全球中文博客站点数量达到 5230 万,博客用户数达到 1987 万, 平均每个博客用户拥有大约 2.6 个博客,博客站点数和博客用户数均比前一年有一定程度 的增长,人均拥有博客数与前一年相比也略有上升。 2011 年,拥有独立域名的博客站点,在博客站点总数中占约 0.43%,这表明,绝大 多数的用户将博客服务商作为他们的博客站点首选。而这一年,中国大陆博客服务商 (BSP)持续增长,博客服务商数量达到 1460 家,与去年同期比增长近 55%;大型网络 公司如搜狐、百度、网易纷纷推出相应的博客服务,而新兴的博客服务站点如 51.com 也 开始崭露头角。过去一年中,中国博客发展速度整体趋缓,博客用户增长数较之去年有 小幅上升,博客服务商之间的市场竞争日趋激烈,与早期提供博客服务的运营商相比, 传统门户及大型公司的博客服务已经占据市场主导地位。总体而言,2009 年中国博客发 展呈现 4 大特点:专业博客如医药类、教育类等增长较快,博客圈成为社区发展新方向; 博客服务商死亡比例逐渐增高,2008 年 Top100 服务商中,近 20%的站点已经关闭或终止 服务;博客服务商开始逐渐支持手机访问和发帖,发展迅速;综合博客服务商增长很快, 越来越多的服务商开始提供音频、视频博客功能。 博客现在正在形成个人的信誉机制,有了博客之后就确立了一个个人虚拟身份,简 单的来讲就是个人在互联网上是有名有姓的,而不再是一种匿名的行为,网民从流浪汉 变成了一个定居者。以前在互联网上的各种行为都是在匿名状态中,相互之间是不认识 的,但有了博客之后可以天天关注,而别的人也可以通过博客找到这个人。这样随着时 间的积累就会产生一个新的东西,概括叫做“个人的信誉” ,个人的信誉就是博客和博客 之间发展各种关系的组合,这种信誉对每个人来讲可能是不同的,但对每个博客来讲就 产生了新的评价机制,这个机制将是博客商业化的一个前提条件。 博客现在正在形成并完善精选机制,博客产生的信息非常巨大。其中难免产生信息 垃圾,随着博客的发展,博客通过精选机制精选出大家喜闻乐见的信息,像国内网摘、 博客的评价系统等。 博客发展趋势。 趋势一,博客现在正在形成个人的信誉机制,有了账户之后就确立了一个个人虚拟 身份,简单的来讲就是个人在互联网上是有名有姓的,而不再是一种匿名的行为,网民 从流浪汉变成了一个定居者。以前在互联网上的各种行为都是在匿名状态中,相互之间 是不认识的,但有了博客账户之后可以天天关注,而别的人也可以通过博客找到这个人。 这样随着时间的积累就会产生一个新的东西,概括叫做“个人的信誉” ,个人的信誉就是 博客发展各种关系的组合,这种信誉对每个人来讲可能是不同的,但对每个博客用户来 讲就产生了新的评价机制,这个机制将是博客商业化的一个前提条件。 趋势二:早期的博客是以文字为主,但随着多媒体发展相册、博客图片已经成为社 交博客的基本配置,而现在许多博客已经提供了音频和视频。 现今,博客已经由风风火火变得平淡,通过各种方式融入了我们的生活,成为了我 们表现自己的主要方式。它们大部分是由简短而且经常更新的文章构成,所有文章都是 按照年份和日期排列。看上去平淡无奇,毫无炫耀之处,但它让每个人零成本、零维护 地创建自己的网络媒体,每个人都可以随时把自己的思想火花和灵感更新到博客上。 1.2 系统设计目标分析 博客系统用户必须登录。系统的参与者需要进行登录才能完成网站上的操作,因为 登录才能够保证用户信息的可查询性。 博客开发是提供网络用户之间进行在线交流的网络平台,通过互相关注可以结交更 多的朋友,表达更多的想法,它随时可以发布日志。本系统是用 JSP 实现的一个完全基 于浏览器的博客系统,任何用户拥有以下功能: (1) 登陆个人主页。 (2) 更改个人基本信息。 (3) 撰写日志。 (4) 上传照片。 (5) 浏览系统中的日志、状态、相册等。 (6) 添加好友。 1.3 业务流程描述 业务流程图是用来描述现行系统各项业务处理的过程,并用其详细、准确地说明业 务处理过程中数据的收集、输入、传递、存储、加工的过程、输出的形式等。业务流程 图的 基本符号说明参见表 1-1。 表 1-1 业务流程图符号说明 Tab 1-1 explanation of symbols of flow diagram of business 符号含义和作用 外部实体,表示表示单位或个人,圈内写明单位 或个人职务的名称 表示输入或输出的报表、计划、单据、报告等, 框内写明其名称 表示各种账目、规范、定额手册、报表积累等大 量存档信息,符号内写明其名称 表示业务处理,框内写明处理的名称 流向线,表示信息或处理的流向 博客是用户用来交流的主要途径,其业务主要有:用户信息的管理,日志信息的管 理,相册管理等一些业务。因此,为了能够反映博客各个模块之间的联系,以及在业务过 程中所负责的工作和流程,根据其他博客的特点及用户的实际情况,绘制本博客系统的 业务流程如图 1-1 所示。 图1-1 业务流程图 Fig.1-1 Operational flowchart 相册管理 用户信息表单存档用户信息档案 相册信息表单存档相册信息档案 个人信息 管理 日志管理 删除 留言管理 留言表单留言档案存档 存档日志信息档案 日志信息表单 撰写修改 用户 2 需求分析 需求分析也称为需求分析工程,是软件生命周期中重要的一步,也是决定性的一步。 通过与大量现有博客使用者的交流来整理他们对现在有博客的看法与建议。从而在 现有博客为基础的前提下逐渐完善我们对该网站的需求。从而能够更加真实的满足大多 数用户的需要。 2.1 系统总体目标 博客将以一种极具吸引力的方式来吸引用户的,那么就必须要实地的从客户的需求 来出发,投其所好。 (1)本系统的开发与实施,能够实现用户信息的交流。利用博客系统中合理的数据库 结构来保存数据信息,及时了解各个环节中信息的变更,通过有效的程序结构来支持各 种数据操作的执行,以提高管理效率,实现用户交流的系统化、规范化、自动化。 (2)通过该系统的开发与使用,可以提用户的使用效率,加快用户了解最新日志、 朋友的最新留言、朋友的最新相片等,同时适应信息时代管理数字化的要求,减少管理 过程中工作效率低,错误出现较多等情况。 (3)该系统还应具有较高的保密性,可以根据用户使用权限的不同,对系统进行不同 操作,以达到信息保密的目的。 2.2 系统具体目标 经过总体目标的规划,需要把系统进行具体分析,主要按系统功能、系统管理两方 面进行设计。 (1)从系统的功能入手,研究系统需要实现的功能。 用户必须登录才能做相关操作 注册用户管理 对用户的信息进行查看和修改,主要包括用户 ID、用户密码、真实姓名、性别、联 系电话、联系地址、头像等。 日志管理 对发布的日志进行查看、修改、删除操作。 相册管理 对上传的照片进行查看、删除操作。 好友管理 对好友进行查看、删除操作。 留言管理 查看留言、删除留言。 2.3 系统功能建模 系统功能建模所采用的工具是数据流程图和数据字典,用于表达系统内部数据的运 动一级对数据的描述和定义。 2.3.1 系统数据流程图 数据流程图(DFD)是结构化分析的一种主要工具,是管理信息系统开发的主要工 具,是组织中信息运动的抽象,是软件逻辑模型的主要形式。它使用一种简单的符号, 描述系统的数据由外部“流入”系统,经过多级的加工处理,经过不同结构的存储,最后以 用户所需要的各种形式“流出”的全过程。 系统的数据流向虽然并不太复杂,但数据处理也不能忽视,下面对其大概的数据流 向和数据处理进行说明。 数据流程图符号表示说明见表 2-1。 表 2-1 数据流程图符号说明 Tab 2-1 Explanation of symbols of flow diagram 图形符号名称符号说明 实体 表示所描述系统的数据来源和去处的各种工 作实体或工作环节。 处理记述某种业务的手工或计算机处理。 数据存储 逻辑意义上的数据存储环节,不考虑存储物理介 质和技术手段。 数据流 与所描述系统信息处理功能有关的各类信息的载 体,是各加工环节进行处理和输出的数据集合。 Pm Dn (1) 通过对论坛系统的详细分析和设计,得出系统顶层数据流程图如图 2-1 所示。 F9 个人信息表单 F8 留言信息表单 F7 相册信息表单 F6 日志信息表单 博客系统 P F3 日志发布表单 F4 相册表单 F2 留言表单 F1 注册信息表单 用 户 用 户 图 2-1 博客系统顶层 DFD 图 Fig.2-1 top floor DFD picture of Blog system (2)得到系统的顶层图后,进一步进行分析,在系统的后台管理方面可以进行细化, 可得一级细化图,如图 2-2 所示。 D2 D1 D4 F1 注册信息表单 F8 留言信息表单F2 留言表单 F6 日志信息表单 F9 个人信息表单 F4 日志发布表单 日 志 管 理 P4 留言管理 P2 用 户 信 息 管 理 P1 日志内容信息 留言信息 个人信息 相 册 管 理 P3 F3 相 册发布 表单 D3相册信息 F7 相册信息表单 图 2-2 博客系统一级细化图 Fig.2-2 Blog system first grade thinning of hotel (3)通过对一级细化图的详细分析,对日志管理在一级细化图的基础上,按功能再 次细化,得到了二级细化图 2-3。 F4 日志发布表单 D4日志内容信息 P4.1 接受 日志 内容 F4.1 日志发布内容 P4.2 数据 库更 新 图 2-3 博客系统二级细化图 Fig.2-3 Blog system second grade thinning of hotel 2.3.2 数据字典 数据字典(Data Dictionary,简称 DD),是在完成新系统数据流程图的设计的基础上, 用来对 DFD 的进一步定义和描述的结构化工具,是构成新系统逻辑模型的重要部分,是 系统设计实施和维护的重要依据。 数据字典是对 DFD 中所有元素的定义集合,它们的定义常常是以卡片形式给出的。 它主要包括:数据流卡、数据存储卡、数据处理卡、数据元素卡。 (1)数据元素卡 数据元素是不可再分的数据单位,主要的数据元素有用户编号,日志编号,相册编 号。分别如图 2-4 所示。 名称:用户名 别名:账号 描述:用户登陆唯一认证 数据类型:字符 长度: 20 名称:日志编号 别名: 描述:方便日志获取 数据类型:数字 长度: 40 名称:相册编号 别名: 描述:相册标识 数据类型:数字 长度: 2 图 2-4 数据元素卡 Fig.2-4 The data element card (2)数据存储卡 数据存储是数据结构停留或保存的地方。也是数据流的来源和去向之一。可以是手 工文档或手工凭单,也可以是计算及文档。本系统主要包括:个人信息、留言信息、相 册信息、日志内容信息,分别如图 2-5 所示。 名称:个人信息 描述:个人信息 编号:D1 组成:用户 ID,用户密码,真实姓名,性别,联系电话、 联系地址、头像 名称:留言信息 描述:留言所具有的属性 编号:D2 组成:留言 ID,留言内容 名称:相册信息 描述:相册所具有的属性 编号:D3 组成:ID,相册名 名称:日志内容信息 描述:日志内容属性 编号:D4 组成:ID,日志标题,日志内容,类别,发表时间 图 2-5 数据存储卡 Fig.2-5 The data memory card (3)数据流是数据结构在系统内传输的路径。本系统根据分析,主要有注册信息表 单数、留言表单、相册发布表单、日志注册表单,分别如图 2-6 所示。 名 称:注册信息表单 编 号:F1 来 源:外部实体“用户” 去 向:处理 P1“用户信息管理” 数据结构:用户 ID、用户密码、真实姓名、性别、联系电话、联系地 址、头像 说 明: 名 称:留言表单 编 号:F2 来 源:外部实体“用户” 去 向:处理 P2“留言管理” 数据结构:留言 ID,留言内容 说 明: 名 称:相册发布表单 编 号:F3 来 源:外部实体“用户” 去 向:处理 P3“相册管理” 数据结构:相册 ID,相片类别,相片名称 说 明: 名 称:日志发布表单 编 号:F4 来 源:外部实体“用户” 去 向:处理 P4“日志管理” 数据结构:ID,日志标题,日志内容,类别,发表时间,浏览次数 说 明: 图 2-6 数据流卡 Fig.2-6 data stream card (4)数据处理卡。处理过程的具体处理逻辑通常在详细设计过程中用判定表或断定 树来描述,在数据字典中,只需要描述处理过程的说明性信息,本系统的处理卡主要有: 用户信息管理、留言管理、相册管理、日志管理,分别如图 2-7 所示。 名称:用户信息管理 编号:P1 输入:数据流“注册信息表单” 输出:数据存储“个人信息表单” 处理:将“注册信息表单”中的数据通过键盘输入,存储到数据存储 “个人信息表单”中。 说明: 名称:留言管理 编号:P2 输入:数据流“留言表单” 输出:数据存储“留言信息表单” 处理:将数据流“留言信息表单” ,中的数据通过键盘输入,存储到“留 言信息表单”中。 说明: 名称:相册管理 编号:P3 输入:数据流“相片发布表单” 输出:数据存储“相片信息表单” 处理:将“相片发布表单” ,存储到“相片信息表单”中。 说明: 名称:日志管理 编号:P4 输入:数据流“日志发布表单” 输出:数据存储“日志内容表单” 处理:将数据流“日志内容信息”中的数据通过键盘输入,存储到 “日志内容表单”中。 说明: 图 2-7 数据处理卡 Fig.2-7 Thel data transaction card 2.4 系统数据模型 建立系统数据模型的主要工具是实体-关联图,即 E-R 图。 ER(EntityRelationship)模型是表示概念模型的最常用的方法。它在描述客观世界中 实体、实体属性及实体间的联系时,采用不同的图形记号,在数据库领域内得到了广泛 应用。 本系统在关联设计上也趋向复杂化,设计设计如下。 (1)ER 模型的表示方法 实体:用矩形表示,矩形框内写明实体名。 属性:用椭圆形表示,并用无向边将其与相应的实体连接起来。 联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来, 同时在无向边上标注联系的类型(1:1:1:n 或 m:n) 。 (2)实体属性 E-R 图 由于本系统实体属性多,所以采用表格做说明,具体设计如下。 用户的主要实体有:用户、日志、相册、留言,其属性见表 2-2。 表 2-2 实体属性表 Tab 2-2 Entity attribute list 实体名称实体属性名称 用户用户 ID,用户密码、真实姓名、性别、联系电话、联系地址、头像 日志日志 ID,日志标题,日志内容,发表人,发表时间,浏览次数 相册相片 ID,类别名称,相片名称 留言留言 ID,留言人,留言内容 (3)系统总 E-R 图 根据本系统各个实体之间的联系得出以下系统的总体 E-R 图,如图 2-8 所示。 上传 1 1 相册 1 1 1 N 1 M 1 M N 1 11 1 1 NN N 1 用户 留言 日志 撰写删除 撰写查看删除 查看 修改 查看删除 图 2-8 系统 E-R 图 Fig.2-8 System E-R chart 3 概要设计 需求分析阶段已经完全弄清楚了目标系统的各种需求,较好地明确软件“做什么”的问 题,并已在软件需求规格说明和数据要求规格说明中详尽和充分地阐明了这些需求。下 一步就要着手实现软件的需求,即要着手解决“怎么做”的问题。 分析模型中的每一个成份都提供了建立设计模型所需的信息。根据用数据、功能和 行为模型表示的软件需求,采用某种设计方法进行数据设计、体系结构设计、接口设计 和过程设计。 数据设计将实体-关系图中描述的对象和关系,以及数据词典中描述的详细数据内容 转化为数据结构的定义。体系结构设计定义软件系统各主要成份之间的关系。接口设计 根据数据流图定义软件内部各成份之间、软件与其它协同成份转换软件的过程性描述。 在编码步骤,根据这种过程性描述,生成源程序代码,然后通过测试最终得到完整有效 的软件。 3.1 体系结构设计 在系统体系结构设计中,最常用的是系统结构图,系统结构图能够直观地表示出系 统的物理结构,它是设计者用于表现新系统的工具,同时它也是用户了解新系统必不可 少的“向导”。 系统结构图是将系统采用“自顶向下”分解后所得到目标系统的模块层次结构,它表示 的是系统的结构和模块之间的相互关系。用一个方块代表一个模块,方块内写出标识该 模块的处理功能或模块名字,模块之间的调用关系用连接两模块的直线表示。 本系统的功能模块图如图 3-1。 博客系统 用户管理日志管理好友管理相片管理留言管理 删 除 相 片 用 户 登 录 添 加 日 志 修 改 日 志 删 除 日 志 添 加 相 片 添 加 好 友 删 除 好 友 查 看 留 言 删 除 留 言 用 户 注 册 图 3-1 系统功能结构图 删 除 相 片 Fig. 3-1 System functions chart 3.2 接口设计 3.2.1 外部接口 (1)用户界面 在用户界面部分,根据需求分析的结果,用户需要一个用户友善界面。在界面设计 上,应做到简单明了,易于操作,并且要注意到界面的布局,应突出的显示重要以及出 错信息。外观上也要做到合理化,考虑到用户多对 WINDOWS 风格较熟悉,就尽量向这 一方向靠拢。在设计语言上,己决定使用 JSP 进行编程,在界面上编写基于 WINDOWS 风格的用户界面。 1)用户界面适合于软件的功能。 2)对于用户应该是易于理解、容易使用的。 3)应该有及时合理的反馈信息。 4)防错处理。 5)风格一致和必要的个性化。必要的个性化是为了满足特别用户或特殊用途。 6)合理的布局、合理的色彩,版面明了清晰。 7)满足用户业务流程,因为用户使用软件的目的是为了提高工作效率。 总的来说,系统的用户界面应作到可靠性、简单性、易学习和使用。 (2)软件接口 数据库接口 JSP 的数据接口十分丰富,如 MS SQLServer 接口、Oracle 接口,Mysql 接口, Access 接口,ASA 接口,Sybase 接口等。 服务器接口 用于运行 JSP 的服务器主要有 tomcat、jboss 等,本系统主要采用 tomcat 服务器,因 为 tomcat 服务器为开源软件,技术支持强大,接口链接方便。 硬件接口 在输入方面,有键盘、鼠标的输入,对输入进行处理。在输出方面,通过调用 Windows 的 API 实现视图的控制。 3.2.2 内部接口 本系统在功能模块的设计上,以“高内聚、低耦合”为设计目标。在内部接口方面, 充分利用面向对象设计的优越性以及 JSP 的优点,采用模块化的思想。尽量将系统的功 能分解成独立的部分、函数等,并提供唯一的出口和入口,从而提高的系统模块的功能 内聚,并且提高了控件的可重用性,有利于系统的维护和二次开发。 本系统将一些公共的信息放入共享文件,减少代码的冗余度,增加可用性。 3.3 代码设计 3.3.1 代码设计的原则 代码设计是处理对象的代号或表示符号,其主要目的是方便计算机排序、检索、查 找等处理。代码设计的关键是方便用户,满足业务要求,通常编码有如下规则: (1)要考虑的是编码的标准化,尽量按照有关的国际标准、国家标准、部门或行业 的标准进行设计。 (2)要考虑容易修改,当某段代码、条件或某个函数代表的实体关系改变时,容易 进行变更。 (3)要考虑企业的发展和变化时对系统的扩展,当增加新的实体和属性时,直接利 用原代码追加,保持原代码体系不变。 (4)要考虑结构简洁,代码的长度涉及到存储空间的占用和信息处理的速度。而且 影响代码输入的出错率,所以,在满足当前需要和扩充要求的前提下应尽量结构简单, 长度要短。 (5)考虑代码值的唯一性。 3.3.2 系统所需代码设计 本系统中所用的编码方案有:顺序码、区间码。 本系统大部分代码都用字符组成,主要原因是为了长度和格式的统一,而且所有的 代码都由系统函数和数据库的存储过程直接生成,避免了手动编码带来的复杂性,同时 也减少了出错的几率。按照编码规则,并结合实际情况综合考虑,本系统主要代码结构 如下: (1) 用户管理 用 5 位起始代码表示用户,代码格式如下: XXXXX 用户编号 (2) 博客代码 博客代码由 5 为字符组成,其格式如下: XXXXX 博客编号 (3)日志代码 日志代码由 9 为字符组成,其数据库中关联博客代码,其格式如下: XXX XX XXXX 日志编号 博客编号 由于日志位于博客中,所以在日志编号中加入了博客编号,再者博客初始化编号设 置为 5 位数,预计也不可能超过 5 位数。 3.4 数据库设计 数据库设计是软件开发的灵魂和基础,是整个系统成功的关键所在,是开发高品质 应用的前提。数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立 数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求。 鉴于数据库设计的重要性,设计过程应按照概念模型设计-关系模型设计-物理数据库 设计的步骤设计。 3.4.1 关系模式设计 (1)由系统的概念模型导出关系模式。主要原则及实现方法如下: 1)一个实体型转换为一个关系模式,实体的属性就是关系的属性,实体的键就是关 系的键。 2)一个实体的联系转换为关系模式时,应首先确定该联系的类型,然后再确定相应 的键: 若关系的类型为 1:1,则每个试题的键均为该关系的候选键,可二者择一为该联系 的键。 若关系的类型为 1:n,则应把一端实体的键移到 n 端,与 n 端实体的键共同组层该 联系的键。 如果为弱实体集,可为其增加一个强制属性作为键。 若关系的类型 m:n,则该联系的键为两个实体的键的复合,即该关系的键一定为复 合键。 3)进行规范化处理,求出关系模式中的最小依赖集,并依据规范化理,将关系模式 规范到三范式。 (2)关系模式设计 本系统的设计关系模式,是在上述原则的基础上,结合开发难度,数据库的查询效 率、存储空间等因素,综合考虑设计实现的。采取这种考虑的其目的是降低开发难度, 提高系统的性价比。 系统的最终关系模式如下: 1)日志(日志 ID,日志标题,日志内容,发表人,发表时间,浏览次数,用户 ID) 2)相册(相片 ID,类别名称,相片名称,用户 ID) 3)留言(留言 ID, 留言内容,用户 ID) 4)查看日志(用户 ID,留言 ID) 5)查看相册(用户 ID,相册 ID) 6)查看留言(用户 ID,留言 ID) 3.4.2 数据字典 数据库逻辑设计是物理数据库的具体实现,主要规定各关系的名称、各列的数据类 型、长度、小数位、完整性约束等。 (1)各属性的属性名、类型、长度、小数位是否空值、缺省值等。 (2) 完整性约束。 完整性约束是指数据的正确性和相容性。它包括实体完整性和关联完整性和用户定 义的完整性。 实体完整性约束有如下几种: 1)主属性非空。 2)列值非空。 3)列值唯一。 4)检查列值是否满足一个布尔表达式。 5)检查各列之间是否满足一个布尔表达式。 关联完整性约束有如下几种: 1)外码是否可以接受空值。 2)删除参照关系的列时的考虑。 3)修改参照关系的主码时的考虑。 4)用户定义的完整性约束。 5)常识性规则。表的取名要规范;使原始数据与派生数据区别开来;规范化处理。 用户表,此表主要用于保存用户的基本信息,其结构如表 3-1 所示。 表 3-1 用户表 Tab 3-1 Users table 字段名称含义数据类型长度/精度能否为空约束 id用户编号Integer4N主键,唯一 account用户名Varchar20N password用户密码Varchar20N realname真实姓名Varchar50N qqQQ 号码Int10Y Email电子邮件Varchar50N tel联系电话Int10N sex性别Enum2N homepage主页地址Varchar40Y headgif头像名称Varchar40N address联系地址地址Varchar40N professional职业名称Varchar40N 日志表,此表主要用于保存日志的基本信息,其结构如表 3-2 所示。 表 3-2 日志表 Tab 3-2 Diary table 字段名称含义数据类型长度/精度能否为空约束 id日志编号Integer4N主键,唯 一 typeName文章类别名称Varchar4N title题目Varchar40N content文章内容Varchar3000N author发布人Varchar20N sendTime发布时间Datetime8N visit访问次数int10N 相片表,此表主要用于保存日志照片的基本信息,其结构如表 3-3 所示。 表 3-3 相片表 Tab 3-3 Photo table 字段名称含义数据类型长度/精度能否为空约束 id相片编号Integer4N主键,唯 一 photoType相片类型Varchar20N photoName相片名称Varchar20N photoAddress相片地址Text8N author用户名Varchar20N photoVisit访问次数Int8N 留言表,此表主要用于保存留言的基本信息,其结构如表 3-4 所示。 表 3-4 留言表 Tab 3-4 Message table 字段名称含义数据类型长度/精度能否为空约束 id留言编号Integer4N主键,唯 一 info_account发送信息人Varchar20N info_fromAccount接受信息人Varchar8N info_content发送内容Varchar45N info_sign标识Int8N 3.5 输入输出设计 3.5.1 输入设计 由于本博客系统是网上虚拟系统,所以并无文档性的实际输入、输出。只有虚拟性 数据的输入和屏幕性的输出。 用户的信息是最常见的输入信息,其输入来源信息见表 3-5。 表 3-5 用户信息表输入设计 Tab 3-5 User information table of input design 输入名称:用户注册表单输入设备和介质:鼠标、键盘 输入源:用户 输入信息量:根据注册用户数量而定 输入时间和频率: 共享范围:本系统使用 由于用户是本系统的主要使用者,其信息格式也非常详细,详见表 3-6。 表 3-6 用户信息表输入格式及内容 Tab 3-6 User information table of input form and content 数据项名称类型实际长度备注 用户 ID N4 系统自动生成 用户名 C20 真实姓名 C20 QQ 号码 N10 EmailC40 联系电话 N16 联系地址 C40 性别 C12 头像名称 C40 日志是博客的生命,没有日志,博客也就没有存在的意义,其输入来源见表 3-7。 表 3-7 日志信息表输入设计 Tab 3-7 Diary information table of input design 输入名称:日志信息表单输入设备和介质:鼠标、键盘 输入源:用户 输入信息量:根据发帖量而定 输入时间和频率: 共享范围:本系统使用 日志信息的输入也并不是完全靠鼠标、键盘输入的,有一部分是来自系统获取,其 数据项详见表 3-8。 表 3-8 日志信息表输入格式及内容 Tab 3-8 Diary information table of input form and content 数据项名称类型实际长度备注 日志编号N4系统自动生成 用户 IDN4 日志内容C8 类别C4 日志发表时间D8系统自动获取 日志标题C50 日志浏览次数N4系统自动获取 3.5.2 输出设计 输出设计是指报表的输出和查询输出,目的是使系统能输出满足用户需求的有用信 息。用户往往通过输出来了解系统的面貌,是评价系统应用效果的依据。因此,输出设 计的出发点是保证系统输出的信息能够方便地为用户所使用,能够为用户的管理活动提 供有效的信息服务。 但是由于本系统是虚拟系统,并没有实际的文档输出,且都是屏幕输出信息,以下 举例说明本系统的输出内容。 输出设计的内容:输出的编号名称、输出类型、输出设备和介质、输出时间和频率、 输出格式和内容。 (1)用户信息也是系统频繁使用的信息,用户不断的查询和修改都会产生输出,其 来源见表 3-9。 表 3-9 用户信息表输出设计 Tab 3-9 User information table of output design 输出名称:用户信息表输出设备和介质:电脑显示器 输出类型:显示器输出输出频率: 根据用户流量而定 用户查询信息其数据在屏幕上输出,并显示给用户观看,其详细样式见表 3-10。 表 3-10 用户信息表输出设计 Tab 3-10 User information table of output design 用户信息数据 用户名 电子邮件 电话 QQ 性 别 真实姓名 qq 号 职业 头像 联系地址 (2)日志信息表 日志是用户使用的重点,用户之间交流主要通过日志来实现,所以其显示输出也是 非常重要的,其来源详见表 3-11。 表 3-11 日志信息表输出设计 Tab 3-11 Card information table of output design 输出名称:日志信息表输出设备和介质:电脑显示器 输出类型:显示其输出输出频率: 由于屏幕输出和实际用表格标识存在差异,所以在这里表示了大概的样式,见表 3- 12。 表 3-12 日志信息表输出格式及内容 Tab 3-12 Card information table of output form and content 日志信息数据 日志标题 日志内容 日志作者 发表时间 浏览人数 3.6 运行设计 3.6.1 运行环境 根据系统的实际情况进行了详细分析,主要进行了以下几方面的设计。 (1)数据库服务器:Windows xp Server 操作系统 由于本系统属于 WEB 应用程序,所以必须使用 Server 系统,在加上系统要求不是很 高,为了节省投入,使用 Windows xp Server 操作系统,这样又有利于服务器的管理。 (2)数据库系统:MySQL MySQL 是一个小型关系型数据库管理系统,在 2008 年 1 月 16 号被 Sun 公司收购。 MySQL 是一种关联数据库管理系统,体积小、速度快、总体拥有成本低,尤其是开放源 码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了 MySQL 作为网站数据 库。 (3)客户端:Windows 或其他支持浏览器的操作系统 由于本系统采用 B/S 结构,所以对客户端要求并不是很高,只要支持浏览器即可。 3.6.2 运行模块的组合 客户端程序输入请求信息后,由专门的模块进行验证校对,如验证正确,则通过网 络传输模块,将信息发送到服务器,服务器将请求结果返回客户端,客户端调用显示模 块,将返回的信息转化为规定的格式。对于复杂的业务处理,客户端只需输入特定数据, 并传送到服务器端去处理,待处理完毕,客户端直接显示结果,这样的模块组合会使效 率大大提升。 3.6.3 运行控制和运行时间 运行控制将严格按照各模块间函数调用关系来实现。 在网络传输方面,客户机在发送请求后,将等待服务器的确认收到信息。服务器在 接收到请求后发送确认信息,在对数据处理、访问数据库后,将把请求返回到客户机, 并等待确认。 在运行时间方面,本系统采用如下方案优化系统运行速度,缩短相应时间: (1) 服务器采取较高配置,尤其是在内存方面。 (2) 优化网络设备。 (3) 优化系统查询模块,提高检索速度。 (4) 将经常性的查询在数据库后台实现,这样会充分发挥 Mysql 的作用。 3.7 安全保密设计 每个系统的安全保密性是必不可少的,本系统经过详细的设计,定下以前几个方面。 (1) 数据安全性 虽然本系统并没有其他系统,如银行系统、进销存储系统等数据安全性高,但是处 于系统的长期有效运行,必须对其数据的安全提供保证。 (2) 登录用户的安全性 用户登录系统进行身份验证,用户登陆后台时候同时需要验证权限。 用户可随时修改密码,并检查用户的权限是否正常。 (3) 操作安全性 每个客户端和会话之间时一一对应关系,即一个用户只能建立一个会话,一个会话 只能对应一个用户。同时,每个客户端只能访问自己所处理的数据,而不能越权、越位 操作。 4 详细设计 从软件开发的工程化观点来看,在使用程序设计语言编制程序以前,需要对所采用 算法的逻辑关系进行分析,设计出全部必要的过程细节,并给予清晰的表达,使之成为 编码的依据。 在详细设计阶段,要决定各个模块的实现算法,并精确地表达这些算法。下面,以 模块定义、算法描述的方式对主要模块进行设计说明。 4.1 用户管理模块 4.1.1 模块定义 用户管理模块用于博客固定的客户群体,通过记录对应的用户档案,实现对用户信 息的后台维护及管理,同时也便于通过用户档案库将网站最新动态及相关企业的信息方 便地传达给每一位潜在的客户。下面用户注册模块进行举例说明,模块定义见表 4-1。 表 4-1 用户注册模块定义 Tab 4-1 User registration module 系统名称:博客系统 模块名称:用户管理模块 编号:Blog_001 输入:用户信息 输出:用户信息(用户 ID、用户密码、真实姓名、性别、联系电话、联系地址、头像) 处理:根据输入的注册信息,向数据库中写入信息,并显示 4.1.2 程序逻辑 用户注册验证是必不可少的,必须进行有效性验证,否者数据作废,在数据库中会 很快的堆积下去,造成数据库负担,如图 4-1 所示,为验证算法。 输入注册信息 检查注册密码 用户名是 否存在? 否是 提示用户名已存 在请重新输入 两次密码是 否一致? 否 提示两次密码 不一致 是 检查其他必填信息 开始 结束 必填项为 空? 提示必填项 不能为空 检查用户名 是 否 重新输入密码 重新输入必 填项 重新输入用户名 图 4-1 用户注册算法流程图 Fig. 4-1 User registration algorithm flow chart 4.2 日志管理模块 4.2.1 模块定义 日志管理包括日志撰写、修改、删除。然而日志的编写是信息交流的主要途径,其 定义见表 4-2 所示。 表 4-2 日志发布模块定义 Tab 4-2 Diary issue module 系统名称:博客系统 模块名称:日志管理模块 编号:Blog_002 输入:日志信息 输出:日志信息(标题、内容、阅读次数、回复次数、状态等) 处理:根据输入的日志信息,向数据库中写入信息,并显示 4.2.2 程序逻辑 日志管理安全性虽然不高,但为了数据库数据量不至于太大,必须验证日志的格式 是否有效,验证如图 4-2 所示。 添加文章类别 重新输入内容 开始 是否有文 章类别? 选择文章类别 输入文章标题、内容 标题是否 为空? 重新输入标题 检查标题 检查日志内容 内容是否 为空? 保存并显示日志信息 结束 是 是 是 否 否 否 图 4-2 日志发布算法流程图 Fig. 4-2 Card issue algorithm flow chart 4.3 相片管理模块 4.3.1 模块定义 日志管理包括日志编写、修改、删除。然而日志的编写是信息交流的主要途径,其 定义见表 4-3。 表 4-3 照片发布模块定义 Tab 4-3 Diary issue module 系统名称:博客系统 模块名称:相片管理模块 编号:Blog_003 输入:照片信息 输出:日志信息(类别,名称) 处理:根据输入的照片信息,向数据库中写入信息,并显示 4.3.2 程序逻辑 日志管理安全性虽然不高,但为了数据库数据量不至于太大,必须验证日志的格式 是否有效,验证如图 4-3 所示。 添加照片类别 开始 是否有照 片类别? 选择文章类别 输入照片名称、选择照片路径 照片是否 为空? 重新输入照片 检查照片 保存并显示照片信息 结束 是 是 否 否 图 4-3 照片发布算法流程图 Fig. 4-3 Photo issue algorithm flow chart 5 编码 5.1 开发工具概述 5.1.1 前台工具概述 MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对 EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器 的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论