




已阅读5页,还剩49页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中北大学2013届毕业设计说明书毕业设计说明书基于JAVAEE技术的博客超市系统的设计与实现软件学院学生姓名: 学号: 软件工程学 院: 专 业: 指导教师: 2013年 6 月基于JavaEE的博客超市的设计与实现摘要随着微博的发展与火热,微博的大博客即通常所说的博客已经淡出网民日常生活的视线,微博的及时、互动、简单、直观是造成这一现象的主要原因。但不可否认作为一代网络交流的平台,博客的好处也是不言而喻的,所以类似于技术博客的这类博客还是挺受关注的。然而博客系统在交流与互动方面确实显得有些不足,恰恰BBS在这方面做得不错。本次毕业设计要实现的系统即“博客超市”就是针对这一问题而设计的。全套设计加扣 3012250582博客超市是博客的一个集结地,是博客系统与BBS系统的一个结合,又可名为“超博客”(More then Blog)。博客超市追求方便、简易、快捷的管理、分享与检索博客。其主要模块提供博客的检索概览,是整个系统的核心;子模块一为博客讨论区,主要为了方便网民们的交流,类似于BBS;子模块二为一个博客系统,主要是方便网民发表博客;此外还有一个历史记录的小模块,主要是为了方便查看之前访问过的页面,算是这个系统中的一个小细节。本系统是基于B/S架构,采用MVC框架中经典的框架SSH完成整个系统的搭建,以Eclipse、Mysql和Tomcat分别作为开发IDE、数据库和服务器,主要以JSP、HTML5、CSS3、JQuery作为网页前端开发技术,以Java作为服务器端开发语言。本说明书介绍了博客超市系统从可行性分析到编码实现以及测试的整个开发过程。具体包括问题的提出、可行性研究、需求分析、概要设计、详细设计、编码实现、单元测试以及系统测试。当然还包括一些其他一些必要的内容,比如像开发工具的选择、开发环境的搭建、开发技术的介绍等。关键词:博客,BBS,社区,SSH,HTML5Blog supermarket design and implementation based on the the JavaEEAbstract With the hot development of micro-Bo , microblogging blog known as the blog has faded out of daily life of Internet users , for microblogging timely, interactive, simple and intuitive . But it is undeniable as a platform for the exchange of networks, the benefits of the blog is evident, so such blog similar to the technology blog is quite concerned. However, the blog system in terms of communication and interaction is indeed somewhat inadequate, while BBS does do well in this regard. The graduation project is designed to solve this problem called “the blog supermarket .Blog supermarket is a buildup of the blog, a combination of blog and BBS system, also called super blog (More then Blog). Blog supermarket pursuit convenient, simple, and efficient management, sharing and retrieval blog. Retrieval overview is the core of the whole system.First sub-module: blog forum, mainly in order to facilitate the exchange of netizens, similar to the BBS; second sub-module : blog system, mainly to facilitate the netizens to blog.In addition, there is a small modules about history record, mainly for the conveniently view previously visited page . This system is based on B / S structure, using the framework of SSH , using Eclipse, MySQL and Tomcat as the development IDE, database and server , using JSP, HTML5, CSS3, JQuery as the front of the page ,and using Java as a server language.This manual describes the feasibility analysis, coding and testing of the blog supermarket system throughout the development process,including the problem, feasibility studies, needs analysis, outline design, detailed design, implement, unit testing and system testing. Also includes some other necessary elements, such as the choice of development tools, development environment to build, develop technology introduction.KEYWORDS: blog,BBS,community,SSH,HTML5目 录1 引言11.1 开发背景11.2 提出问题11.3 解决问题11.4 理论基础21.5 运行环境22 理论与技术基础32.1 理论与技术32.1.1 JavaSE基础32.1.2 SSH框架32.1.3 HTML5和CSS342.2 开发环境62.2.1 Eclipse62.2.2 Mysql数据库62.2.3 Tomcat服务器73 系统需求73.1 软件可行性分析73.1.1 技术可行性73.1.2 经济可行性73.1.3 操作可行性83.1.4 结论83.2 需求介绍83.3 需求捕获83.3.1 参与者93.3.2 标识系统用例93.3.3 系统用例图104 系统分析124.1 介绍124.2 控制流124.2.1 活动图124.2.2 建模124.3 软件体系结构224.3.1 概述225 设计255.1 介绍255.2 架构体系255.3 功能模块265.4 界面设计275.4.1 概述275.4.2 导航栏275.4.3 搜索区界面285.4.4 个人主界面295.4.5 讨论区界面305.4.6 其它界面305.5 类的设计345.5.1 概述345.5.2 通用包中的类345.6 数据库设计375.6.1 逻辑结构设计375.6.2 物理结构设计386 实现406.1 概述406.2 登陆和注册416.3 依赖的Dao与Service417 测试467.1 介绍46第 页 共 页1 引言1.1 开发背景博客于1998年开始构想,到2000年开始流行并进入中国迅速发展,至今Blog已成为家庭、公司、部门和团队之间越来越盛行的沟通工具,因为它也逐渐被应用在企业内部网络(Intranet)。目前,BSP商家风起云涌,已有数十家大型博客站点。目前,国内优秀的中文博客网有:新浪博客,搜狐博客,中国博客网,腾讯博客,博客中国等。而在最近两三年微博异军突起、蓬勃发展。2009年8月中国门户网站新浪推出“新浪微博”内测版,成为门户网站中第一家提供微博服务的网站,微博正式进入中文上网主流人群视野。2011年10月,中国微博用户总数达到2.498亿,成世界第一大国。微博引领网民走向了一种比较快速简洁的网络交流方式,这在一定程度上对博客的发展产生了巨大的冲击。1.2 提出问题微博的发展对博客在一定程度上造成了巨大的影响,但由于微博与博客的侧重点不同,所以在一些方面还是博客比较方便实用,比如像在技术方面的交流、对技术和知识的整理方面,用博客还是比微博有更大的优势。但想想微博的发展,不难想到博客在某些方面的不足,在交流上博客没有微博那么的方便,在互动性方面不足之处也很明显,还有就是在对博客的获取方面局限性又显的很大。那么为了给网民特别是技术博客的使用者们更好地体验,更好地获取知识的方式,能够做些什么呢?1.3 解决问题针对1.2中提出的问题,我们需要在博客的基础上赋予网民更便捷、更互动,也更容易获取大量博客信息的能力。“博客超市”(又可名为“超博客”)正是为了解决此问题而提出的。博客超市结合了博客与论坛的优势,又在此基础上赋予的博客搜索的功能。论坛的互动性已在多年的实际应用中得到验证,将论坛与博客结合正好提供给用户更好地互动性;再有了搜索功能,用户便能更快、更方便的获取其他的博客信息。1.4 理论基础本系统的开发需要有以下的理论基础:(1) java基础,这是最基本的要求;(2) javaweb方面的知识,比如像html、css、javascript、jquery以及jsp和servlet等;(3) ssh框架(struts2、hibernate、spring);(4) html5与css3;(5) 关系型数据库;(6) maven的使用(7) 其它一些方便开发的理论。1.5 运行环境本系统运行的环境:windows xp及以上的操作系统、tomcat7.0或更高版本、jdk1.7。开发时运行环境:win 64bit、tomcat7.0和jdk1.7。2 理论与技术基础2.1 理论与技术2.1.1 JavaSE基础Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE, JavaEE, JavaME)的总称。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。2.1.2 SSH框架SSH 为 struts+spring+hibernate的一个集成框架,是目前较流行的一种Web应用程序开源框架。集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate。具体做法是:用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的Java对象,然后编写基本的DAO(Data Access Objects)接口,并给出Hibernate的DAO实现,采用Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问,最后由Spring做管理,管理struts和hibernate。系统的基本业务流程是: 在表示层中,首先通过JSP页面实现交互界面,负责传送请求(Request)和接收响应(Response),然后Struts根据配置文件(struts-config.xml)将ActionServlet接收到的Request委派给相应的Action处理。在业务层中,管理服务组件的Spring IoC容器负责向Action提供业务模型(Model)组件和该组件的协作对象数据处理(DAO)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的完整性。而在持久层中,则依赖于Hibernate的对象化映射和数据库交互,处理DAO组件请求的数据,并返回处理结果。采用上述开发模型,不仅实现了视图、控制器与模型的彻底分离,而且还实现了业务逻辑层与持久层的分离。这样无论前端如何变化,模型层只需很少的改动,并且数据库的变化也不会对前端有所影响,大大提高了系统的可复用性。而且由于不同层之间耦合度小,有利于团队成员并行工作,大大提高了开发效率。2.1.3 HTML5和CSS3HTML5是用于取代1999年所制定的 HTML 4.01 和 XHTML 1.0 标准的 HTML 标准版本。HTML 5有两大特点:首先,强化了 Web 网页的表现性能。其次,追加了本地数据库等 Web 应用的功能。广义论及HTML5时,实际指的是包括HTML、CSS和JavaScript在内的一套技术组合。它希望能够减少浏览器对于需要插件的丰富性网络应用服务(plug-in-based rich internet application,RIA),如Adobe Flash、Microsoft Silverlight,与Oracle JavaFX的需求,并且提供更多能有效增强网络应用的标准集。2.1.4 MavenMaven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。目前,绝大多数开发人员都把 Ant 当作 Java 编程项目的标准构建工具。遗憾的是,Ant 的项目管理工具(作为 make的替代工具)不能满足绝大多数开发人员的需要。通过检查 Ant 构建文件,很难发现项目的相关性信息和其它元信息(如开发人员/拥有者、版本或站点主页)。Maven 除了以程序构建能力为特色之外,还提供 Ant 所缺少的高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目,而使用 Ant 则需要十几行。事实上,由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目现在使用 Maven,而且公司项目采用 Maven 的比例在持续增长。Maven这个单词来自于意第绪语,意为知识的积累,最早在Jakata Turbine项目中它开始被用来试图简化构建过程。当时有很多项目,它们的Ant build文件仅有细微的差别,而JAR文件都由CVS来维护。于是Maven创始者开始了Maven这个项目,该项目的清晰定义包括,一种很方便的发布项目信息的方式,以及一种在多个项目中共享JAR的方式。那么,Maven 和 Ant 有什么不同呢?在回答这个问题以前,我要强调一点:Maven 和 Ant 针对构建问题的两个不同方面。Ant 为 Java 技术开发项目提供跨平台构建任务。Maven 本身描述项目的高级方面,它从 Ant 借用了绝大多数构建任务。因此,由于 Maven 和 Ant 代表两个差异很大的工具,所以我将只说明这两个工具的等同组件之间的区别,如表 1 所示。MavenAnt标准构建文件project.xml 和 maven.xmlbuild.xml特性处理顺序$maven.home/bin/perties$project.home/perties$project.home/perties$user.home/perties通过 -D 命令行选项定义的系统特性最后一个定义起决定作用。通过 -D 命令行选项定义的系统特性由 任务装入的特性第一个定义最先被处理。构建规则构建规则更为动态(类似于编程语言);它们是基于 Jelly 的可执行 XML。构建规则或多或少是静态的,除非使用 任务。(请参阅参考资料以获得相关教程。)扩展语言插件是用 Jelly(XML)编写的。插件是用 Java 语言编写的。构建规则可扩展性通过定义 和 使构建 goal 可扩展。构建规则不易扩展;可通过使用 任务模拟 和 所起的作用。Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后Maven可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。Maven 有一个生命周期,当你运行 mvn install 的时候被调用。这条命令告诉 Maven 执行一系列的有序的步骤,直到到达你指定的生命周期。遍历生命周期旅途中的一个影响就是,Maven 运行了许多默认的插件目标,这些目标完成了像编译和创建一个 JAR 文件这样的工作。此外,Maven能够很方便的帮你管理项目报告,生成站点,管理JAR文件,等等。2.2 开发环境2.2.1 EclipseEclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。Eclipse 附带了一个标准的插件集,包括Java开发工具。Eclipse的这种可扩展性提供给我们更多的自由去选择插件,以便更好地完成项目的开发。2.2.2 Mysql数据库MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。2.2.3 Tomcat服务器Tomcat 服务器是一个免费的开放源代码的Web 应用服务器。Tomcat是Apache软件基金会的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet和JSP规范总是能在Tomcat 中得到体现。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。Tomcat 很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。3 系统需求3.1 软件可行性分析3.1.1 技术可行性在个人方面,我已经学习java将近三年,接触javaweb也有两年,也做过一些小的项目,所以在个人这方面可以胜任。在开发机器及操作系统上,本人的手提电脑为酷睿i3一代加win7 64bit系统,在配置方面完全可以胜任且所有的开发所需的软件都有针对win7 64bit的版本,兼容性也完全能够胜任。开发工具方面,所有开发所需要的工具都是开源免费,不必担心版权问题。3.1.2 经济可行性此软件的开发周期大概在三个月左右,开发所需要的硬件为自己的一台笔记本,可以说在硬件方面除了消耗点CPU之外就没有其他的开销了,开发所需要的软件都是开源免费的没有任何的费用,所以在开发方面费用并不高。关于本软件的安装、部署、运行和维护方面,可以租用服务器与域名,这些每年所需的费用也不是很高。3.1.3 操作可行性本系统是web项目,所以只要有浏览器便可轻松访问,当然每个电脑都满足此条件。系统简单易用,所有功能都清楚明了,用户只要进入页面便可自由操作。3.1.4 结论综上所述,本系统开发维护费用低,开发环境与运行环境都不是问题,操作简捷便易,在各方面都是可行的。3.2 需求介绍在软件工程中,需求指的是在建立一个新的或改变一个现存的电脑系统时描写新系统的目的、范围、定义和功能时所要做的所有的工作。需求是软件工程中的一个关键过程。在这个过程中,系统分析员和软件工程师确定顾客的需要。只有在确定了这些需要后他们才能够分析和寻求新系统的解决方法。需求的目标是描述系统应该做什么,并使开发人员和用户就这一描述达成共识。为了达到该目标,要对需要的功能和约束进行提取、组织、文档化;最重要的是理解系统所解决问题的定义和范围。而需求捕获就是通过对应问题的理解和分析,确立问题涉及的信息、功能和系统行为、将用户需求精确化、完全化。3.3 需求捕获本系统是按照RUP过程来开发的,RUP开发过程是“用例驱动”的开发工程。在RUP开发工程中,开发人员首先获取客户需求,并以用例的形式组织成用例模型;然后对需求模型进行粉锈宁、整理、验证,建立分析模型;最后以分析模型为基础设计系统,来满足这些用例模型的要求。因此,软件的整个开发工程就是建立模型的过程,从建立用例模型开始,其次是分析模型,接着是设计模型和实现模型。在建立了这些模型之后,还将根据用例模型设计出测试模型来对系统进行验证。采用用例技术的有点有两点:一是,用例表达了用户对软件的目标要求,是系统向其用户提供的增值功能。而二是,用例很直观,用户和客户根本无法了解复杂符号,而用例这种简单、自然的表述法可以使其抑郁阅读,并提出修改意见。那么我们就先从用例入手来描述问题。3.3.1 参与者对于本系统而言参与者主要有游客(非注册用户)、普通用户与博客概览区管理员。游客:即非注册用户可以进入检索功能区模块进行检索与查看博客,能够进入讨论区查看讨论内容;普通用户:拥有所有的基本功能,包括博客功能模块的全部功能,讨论区的全部功能,拥有博客超市模块的基本功能;管理 员:除了拥有普通用户的所有权限之外还具有删除用户共享的博客的权利。3.3.2 标识系统用例博客超市系统的用例列表如下。(1) C1(浏览博客概览):所有参与者在检索界面对博客概览的查看;(2) C2 (搜索):按照条件及条件分类对对应内容的博客进行检索,对所有参与者均有效;(3) C3 (查看历史记录):可以在每个面中进行查看历史记录的操作;(4) C4 (访问历史记录): 所有参与者均可进行历史记录页面的访问;(5) C5 (查看共享博客):可以查看共享博客的具体内容;(6) C6 (查看讨论内容):可以查看讨论区中的讨论内容;(7) C7 (登录):注册用户(会员)使用用户名和密码登录;(8) C8 (回复):会员对博客和其它回复的回复;(9) C9 (发表博客):会员发表博客;(10) C10 (共享博客):会员可以共享自己的博客到博客超市中以便其他参与者的查看;(11) C11 (修改个人博客):会员可以修改自己的博客;(12) C12 (删除个人博客):会员可以删除自己的博客;(13)C13 (删除回复):会员可以删除自己发表的博客中的任意回复 ;(14) C14 (修改会员信息):会员可以修改个人信息;(15) C15 (查看会员信息):会员可以查看其他会员的信息;(16) C16 (注册):非注册用户可以注册会员;(17) C17 (注销):已登录会员可以注销登录状态。3.3.3 系统用例图用例图展示了用例之间以及用例与参与者之间是怎样相互联系的。用例图对系统、子系统或类的行为进行了可视化,使用户能够理解如何使用这些元素,并使开发者能够实现这些元素。用例图主要描述用户的功能需求。UML侧重从最终用户的角度来理解软件系统的需求,强调谁在使用系统及系统可以完成哪些功能。用例分析技术是一种公认有效的用户需求获取、分析和描述的技术。博客超市系统用例图如图3.1,是对博客超市中的各个用例之间及用例与游客、会员和管理员之间的联系。图3.1 系统用例图4 系统分析4.1 介绍分析的主要工作开始于初始阶段的结尾,和需求一样是细化阶段的主要焦点。个人认为分析是将用户的需求与以抽象的并且客户和设计人员都易懂的方式来与客户进行交流,最终完成需求与设计的交接,给设计人员一个清楚的模板与思路。分析在整个开发过程中属于一种承前启后的作用,是一个非常重要的阶段,所以本说明书将需求分析分为了两部分,需求与分析两部分来说明。需求已在上一章中进行了说明,本章主要陈述对博客超市系统的分析。由上一节可以知道清楚明了的工具来完成需求与设计的交接,本次选择活动图来描述控制流,选择包图来描述本系统的软件体系及未来的系统组成和结构。为之后的设计实现做好铺垫。4.2 控制流4.2.1 活动图活动图是描述系统或业务的一系列活动构成的控制流,它描述了系统从一种活动转换到另一种活动的整个过程,是一种表述业务过程以及工作流的技术,它可以用来对业务过程、工作流建模,也可以对用例实现,甚至是对程序实现进行建模。活动图与流程图的最主要区别在于,活动图能够标识活动的并行行为,这也是此处选择活动图的原因之一。4.2.2 建模经过对需求中的用例的分析,可以将整个系统的业务分为以下几部分:对主页的访问、检索、登录、查看博客内容、管理博客、添加博客、关注标签管理、添加关注标签和历史记录几大部分。以下是对这几部分的详细描述以及对其建模的活动图。主页访问,进入主页后主页显示的博客列表是最新发布的博客列表,在主页面可已选择检索以便使主页显示的内容是想要得到的内容,若检索到有结果则显示检索到的内容,无结果显示为空并可以重新检索,直到检索到用户需要的时候停止检索,用户便可以从得到的列表中选择阅读或者只对列表中的博客概要进行粗略的查看,以获得需要的博客,主页访问完毕。图4.1是主页访问的活动图。图4.1 访问主页活动图检索活动,是对博客的一个过滤,为了能够方便的获得需要的内容。进入博客超市主页后就可以进行检索,输入检索条件后选择检索分类进行检索,检索到结果则显示结果,否则可以继续检索直到获得需要的内容之后检索活动结束图4.2是检索过程的活动图。图4.2 检索登录主要就是处理会员的登录操作,进入登录界面后输入用户名、密码、选择是否保存登录信息,确认登录后,会进行验证,通过则保存信息,进入登录前的页面,操作结束,否则结束操作。图4.3为登录的活动图。图4.3 登录图4.4为查看博客详细,由于篇幅原因本部分的介绍放在本节末尾进行介绍。图4.4 查看博客详细添加博客主要是对会员包括管理员而言的,进入博客添加界面,填写相应的内容,之后选择是否分享,提交后判断用户是否已被屏蔽,若屏蔽则不让其分享,未屏蔽则添加成功结束操作。图4.5为添加博客的活动图。图4.5 添加博客博客管理是对个人博客的一个管理,进入个人博客界面后,可以选择博客进行管理,包括修改、查看和删除进行相应操作后,管理活动结束。图4.6为博客管理的活动图图4.6 博客管理个人标签管理是对个人关注标签的管理包括添加与删除关注标签,进入个人博客页面,选择个人标签部分,可以直接删除,也可以进入便签管理界面进行添加、删除操作,操作结束,标签管理结束。图4.7是对管理个人标签的活动图。图4.7 个人标签管理添加关注标签,此部分属于个人标签管理部分,此处将其单独取出来。进入标签管理界面,选择未关注的标签添加到添加队列中等待添加,当添加够了后选择提交,添加成功,添加关注标签结束。图4.8为添加关注标签的活动图。图4.8 添加关注标签历史记录是整个系统之外比较独立但却又和整个系统关联的一部分,每当进入一个界面都会记录下来,当然因为立即记录是为了方便访问之前访问的,记录的太多反而会起到相反的作用,所以只会记录最近的。进入某一个页面后都会有一个历史记录,选择到那部分后可以看到之前访问的页面,然后可以选择一个进行访问。图4.9为历史访问的活动图。图4.9 历史记录此处用来介绍查看博客详细部分,图4.4是查看博客详细部分的活动图。进入主页后经检索或其它方式找到想要查看的博客后,进入博客详细界面进行阅读,阅读后可选择查看其他人的回复或者直接回复,当然在主页中也可直接进行这些操作,回复后或不回复将结束整个过程。4.3 软件体系结构4.3.1 概述本系统主要采用MVC模式和DAO模式,所以大体上可以将包分为:控制包、模型包和数据交互包。控制包及控制层所在的包,在此部分使用的是Struts2,所以将包命名为bsf.action包;模型包及模型层所在的包,这里使用领域模型(Domain Model),将包命名为bsf.bean包;数据交互包及DAO模式实现的包,主要直接控制与数据库的交互,是数据交互的核心,此包命名为bsf.dao包;此外由于业务的需求,需要一个处理较为细致的业务的部分及业务逻辑层,处于DAO层与Action层之间,操作DAO层及分担Action层的一些繁杂业务,具体命名为service包;由于在于页面交互数据的时候,Model层可能封装的数据会有些冗杂或者Model层中的一个Bean并不能实现所需,在交互时会出现喝多不必要的麻烦,所以本系统另分出一个数据控制传输层,具体命名为bsf.cto包;在dao包与service包地下有分别分出一个实现包,分别为为bsf.dao.impl包和bsf.service.impl包。以上是本系统中主要的包,是本系统中核心的部分。当然除此之外,还有一些公用的包包括工具包(common.util包)、拦截器包(erceptor包)、常量包(common.contant包)、AOP包(common.aspect包)、基础service包(common.service)、基础dao包(common.dao)、历史记录包(common.history)和历史记录工具包(common.history.util),还有单元测试包。当然所有的包名前面还应该加上基础包名com.wangyb.mtblog。4.3.2 包结构及其关系各包之间的的构成及之间的关系如图4.10。图4.10 类图图4.10中的类图包括了bsf包中的所有子包及common包中的dao包和service包,common包中的其他子包由于功能比较单一或者是工具包,有可能所有的包中都可能用到也有可能所有的包中都没有任何关系,所以包图中并未体现。5 设计5.1 介绍软件设计是把一个软件需求转换为软件表示的过程,而概要设计就是软件设计最初形成的一个表示,它描述了软件的总的体系结构。简单地说软件概要设计就是设计出软件的总体结构框架。而后对结构的进一步细化的设计就是软件的详细设计或过程设计。概要设计的主要任务是把需求分析得到的DFD转换为软件结构和数据结构。设计软件结构的具体任务是:将一个复杂系统按功能进行模块划分、建立模块的层次结构及调用关系、确定模块间的接口及人机界面等。数据结构设计包括数据特征的描述、确定数据的结构特性、以及数据库的设计。显然,概要设计建立的是目标系统的逻辑模型,与计算机无关。本章就是对博客超市系统概要设计的说明。5.2 架构体系系统采用B/S架构及浏览器/服务器架构。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装有浏览器便可同Web Server同数据库进行数据交互。B/S最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件,只要一台能上网的电脑就能使用,客户端零安装、零维护。系统的扩展非常容易。对于博客超市系统,因为是一个博客与论坛的结合体,而博客与论坛都是B/S架构的成功典例。所以博客超市建立在B/S架构下是最好的选择。在具体实现方面会选择MVC框架来实现系统。MVC是一种软件设计典范,用于组织代码用一种业务逻辑和数据显示分离的方法,这个方法的假设前提是如果业务逻辑被聚集到一个部件里面,而且界面和用户围绕数据的交互能被改进和个性化定制而不需要重新编写业务逻辑MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。它具有耦合性低、重用性高、生命周期成本低、部署快、可维护性高和有力软件工程化管理的优点。是设计B/S架构的系统的比较好的选择。5.3 功能模块本系统是一个论坛与博客的结合体,又增加了搜索功能。所以自然而然就分为了三大部分,博客功能模块、检索功能模块与讨论区功能模块。而在此基础上还有图5.1 功能模块关系图添加了一个历史记录的小模块,所以整体来讲其实是有四个模块的。这四个模块的主要功能如下:博客功能模块:包括博客的主要功能,如登录、发表博客、修改博客、删除博客、个人标签管理与用户个人信息的管理;检索功能模块:又可名为博客超市,是整个系统的核心,包括检索所有、按便签检索、按个人喜好检索、按博主检索和按标题检索等方式;讨论区功能模块:主要完成博客的评论与回复;历史记录模块:记录最近用户的浏览信息。图5.1是对各个功能模块及模块之间关系的描述。5.4 界面设计5.4.1 概述界面设计是人与机器交互的媒介,界面的美观舒适感直接影响使用者的使用体验,所以界面设计是设计阶段一个直观重要的一个阶段。本系统采用响应式web界面设计,方便屏幕在一定的范围内有较好的可读性,在界面设计方面追求简洁、方便,在使用方面尽量减少界面整体的刷新,增强体验感。整体上界面按功能模块分为三大部分:搜索界面、个人主界面和讨论区界面。5.4.2 导航栏导航栏是对整个系统的一个导航,可以方便用户进入想访问的页面,是界面中增强体验感以及便捷性的一个至关重要的点,也是整个界面设计中最困难之一。首先本系统的导航栏由于采用的是响应式设计,所以在浏览器大小不同时,在显示方面会有一些改变。在屏幕宽度较大时会有较好的体验效果,整个导航栏固定在头部,不管网页如何滚动都会在浏览器显示部分的顶部,方便用户随时跳转页面;而在界面宽度比较小时,导航栏高度会变得比较高,所以如果仍然采用上面的方式的话,可能会使整个页面的很大一部分都是导航内容,影响对主题内容的浏览,所以此时导航栏会嵌入到整个页面的顶部而非显示部分的顶部,导航栏会随着页面的滚动而消失,尽量避免用户的浏览内容的不便。本系统导航栏几乎贯穿所有的主要的页面,导航栏中应该包括:本系统的名称(博客超市)、首页链接、个人中心链接、搜索区链接、讨论区链接。这是对整个系统的一个导航,除此之外为方便用户还应该在导航栏中显示用户的状态,登陆接口、注册接口以及注销接口方便用户进行非游客级别的操作,用户登录名称的显示提醒用户当前登陆的用户是哪一个。此外还有一个消息导航,是给登陆用户的一个消息提示,是一个类似于下拉选的消息导航,其子项目是消息的分类。当某一中分类中有新的消息时在界面中都会有相应的改变,此处选择颜色的改变。只要其子类中有新的消息,它就会改变颜色给予用户提示,而当其下所有子消息都没有消息时显示正常状态。点击任意一个消息都会在界面中弹出此部分的消息,以便用户进行操作。这些是本系统导航栏中的主要元素,还有两个非必须的“其他”和设置,具体的界面设计见图5.2。图5.2 导航栏5.4.3 搜索区界面搜索区在整体上主要包括两大部分,分为主体部分和附加部分。主体部分中又分为搜索区域与结果显示区,附加部分主要是一些推荐包括热门博客、热门博主和随机标签,方便用户较好的取得可能想要的信息。在搜索区域有搜索图标和搜索输入区域,在通常状态下搜索输入区域显示的是热门标签,当用户需要搜索时进行相应的很方便的操作后便可以输入信息进行检索。此处这样设计主要是尽最大可能利用可用空间并且方便用户进行操作。在搜索结果区域,刚进入页面并未执行搜索时显示的是最新博客,进行搜索操作后显示的是对应操作后的博客信息。博客信息中包括博主的头像,博客的标题、发表时间、博客内容简介,以及隐藏的回复框。当鼠标滑过头像时会显示用户的详细信息。除此之外还包括进入该博客讨论区的接口。图5.3为搜索界面的具体设计。图5.3 搜索界面5.4.4 个人主界面个人主界面中采用和搜索界面中类似的布局大体上分为主体部分和附加部分。主体部分为一系列的标签页,主要包括我的主页用于显示用户发表的博客列表,关注的人显示已关注的人的信息,关注的便签显示已关注的标签。这些部分中都包括对其对应信息的管理。附加部分顶头是一个微型的搜索区域,使得用户在个人主页也能方便进行搜索;之下为个人信息栏,其中附加有发表新博客和修改个人信息的入口;在后为推荐的用户的信息。详细的设计内容如图5.4。图5.4 个人主界面5.4.5 讨论区界面讨论区界面是对论坛中对主题讨论的页面的一个博客形式的改版,只不过此处是对某一个博客的讨论。在主体部分首先是作为话题的博客的基本信息,之后是便是对本编博客的一个讨论,最下面当然是一个用于回复的文本框;附加部分为此讨论区博主的其它博客的链接。详细射界界面如图5.5。图5.5 讨论区界面5.4.6 其它界面其它界面包括基本的登陆界面和注册界面,还包括像个人信息修改界面、博客详细界面、发表博客界面、留言私信界面、个人博客界面和关注界面这些会显示到上述三个主要界面中的界面,具体设计界面如以下几幅图。下图为登录界面。图5.6登陆界面下图为注册界面由于屏幕的原因注册按钮没有截取到。图5.7注册界面下图为博客详细界面(即查看博客界面)图5.8博客详细界面下图为新建博客界面。图5.9博客发表界面之后的界面因为都不是独立的页面所以只有其主要的界面设计,没有其宿主界面的设计,因为宿主界面就是之前说过的三个主界面。以下为个人博客列表界面。图5.10个人博客列表以下为关注人列表设计界面。图5.11关注人列表以下为关注标签列表界面的设计。图5.12关注标签列表5.5 类的设计5.5.1 概述本系统中的包分为两大部分系统通用包与系统核心包,通用包中的类是实现系统的工具类或者是一些基础类,而系统核心包是系统实现的核心。以下将对通用包中的部分关键类以及核心包中的业务逻辑实现包中的类进行设计。5.5.2 通用包中的类由于Spring3中没有封装的HibernateTemplate所以本系统中封装了一个dao的基础类DaoSupport实现自IDao接口,可获取操作数据库必须的Session和其它基础操作。DaoSupport中主要通过反射和泛型使自己成为一个通用的封装起来的类,其主要方法与属性如图5.13。图5.13 DaoSupport类图5.14 ServiceSupport类当然除了dao层具有一些基础的方法需要封装外,service层也同样需要,IService是基础service层的接口,ServiceSupport使其具体实现。图5.14是其具体的设计。图5.15是历史记录相关类的设计及其之间的关系,由于这些类可以应用到任意系统中,所以将其归到通用包中。Historys类是用于保存历史记
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江苏省南京市、盐城市2025届高三下学期3月一模试题 物理 含解析
- 高考数学个体化学习策略与试题及答案
- 行政法学对经济社会影响试题及答案
- 计算机科学核心能力考题及答案
- 网络管理员个人技能试题及答案总结
- 行政法学与技术进步的关系试题及答案
- 火灾应急预案个人职责(3篇)
- 法学概论社会变迁对法制建设的影响试题及答案
- 教育机构防火灾应急预案(3篇)
- 网络性能监控技术试题及答案
- 陕09J01 建筑用料及做法图集
- 血液透析血管通路的感染与预防
- 【新能源汽车动力电池常见故障及维修方法探讨5900字(论文)】
- 诗词大会比赛题库含答案全套
- 排水管网检测投标方案(技术标)
- 市政道路土石方施工方案97723
- PI形式发票范文模板
- (PQCDSM)生产现场改善与安全生产管理
- 中外货物买卖合同FOB条款
- 2022年05月四川省度绵阳市公开遴选公务员考试参考题库答案详解
- T-ZAQ 10116-2023 新时代基层理论宣讲0576 工作法操作规范
评论
0/150
提交评论