演示视频:
https://www.bilibili.com/video/BV1ke411B7ts/
3.1 系统设计原则和目标
l 婚恋交友系统设计原则
在系统设计的过程中,首先要明确系统的设计原则和目标,正对此婚恋交友系统的设计,需要明确此系统需要实现的功能,和实现功能的程度,最终保证在此系统运行的过程中,能真正给用户的生活,尤其是对于适龄青年的婚恋交友情况提供一个更好的平台,体现出更好的人机交互,提供一个个性化的婚恋交友系统。
l 婚恋交友系统设计目标
使该系统主要实现用户添加我的收藏和对我的收藏进行查询和删除操作,用户可对个人信息进行查询和修改操作,管理员对用户信息进行查询、修改、删除的操作。
3.2系统体系结构
此婚恋交友系统主要分为三个对象,其中每个对象都有其各自功能,但各个对象间也相互联系,其中普通用户的主要功能为注册和浏览首页,已注册用户的主要功能有查看个人信息、修改个人信息、添加我的收藏、删除我的收藏、条件查询和信息反馈。管理员的主要功能有查询用户信息、修改用户信息、删除用户信息以及接受用户信息反馈。系统体系结构如图12所示。
图12系统体系结构图
3.2.1 静态模型
(1)包图
将系统中的类分为三个包:admin、user、database包。包admin主要存放工作人员类。包user主要存放用户类。包database主要存放数据库信息类。admin与包user都依赖于包database。包user类依赖于包admin。婚恋交友系统包图如图13所示。
图13系统包图
(2)类图
从前面的需求分析中,我们可以依据主要的两个类对象:用户和管理员创建完整的类图。其中类图中包含此类中包含的变量和get/set方法。类图如图14所示。
图14系统类图
3.2.2 动态模型
(1)状态图
l 删除收藏记录状态图
删除收藏记录的过程为先对收藏记录进行查询,显示收藏记录之后,发出删除记录的要求,向数据库提交删除信息,删除一条收藏记录,更新数据库中的收藏记录。删除收藏记录状态图如图15所示。
图15删除收藏记录状态图
l 修改个人信息状态图
修改个人信息的过程需要先对个人信息进行查询,使个人信息显示在页面中,提交修改之后,向数据库中发出修改当前用户的个人信息,更新此条用户信息,返回页面。修改个人信息状态图如图16所示。
图16修改个人信息状态图
(2)活动图
l 管理员管理用户活动图
管理员管理用户的活动图描述了管理员如何管理用户的整个流程,管理员登录到后台管理系统中,进行登录信息验证,若未通过验证,则登录失败,若通过验证则查询所有用户信息,显示用户信息,进而可以对用户信息进行修改和删除。管理员管理用户的活动图如图17所示。
图17管理员管理用户活动图
l 游客注册-登录-注销流程活动图
游客进入到页面中,收权限限制,游客只能对首页信息进行浏览,游客对身份进行判断,若未注册,则进行注册后再登录到系统中,若已经注册,则直接登录到系统中,再次进行登录判断,若登录不成功,则返回首页中,若登录成功则成为已注册用户,可以对我的收藏和个人中心模块进行操作。也可进行条件查询和信息反馈。结束用户操作之后,注销已登录的用户,返回首页,结束此流程。游客注册-登录-注销流程活动图如图18所示。
图18游客注册-登录-注销活动图
3.3系统核心功能模块设计
婚恋交友系统主要包含三个参与者,而不同参与者含有不同的功能,如普通用户只含有浏览首页、用户注册的模块,已注册用户则含有条件查询模块、我的收藏模块、查个人中心模块以及信息反馈模块,管理员管理用户信息模块则包含查询用户信息、删除用户信息、修改用户信息。
3.3.1 我的收藏模块
我的收藏模块主要包含查询用户的收藏、删除用户收藏,在对用户信息进行查询时还可对用户信息进行添加到我的收藏。该模块的功能如图19所示。
图19我的收藏模块结构图
我的收藏模块功能具体实现活动图如图20所示。
图20我的收藏活动图
3.3.2 个人中心模块
个人中心模块主要包块对个人信息的查询和修改功能,该模块的功能如图21所示。
图21个人中心模块结构图
个人中心模块功能具体实现活动图如图22所示。
图22个人中心活动图
3.3.4 管理员管理用户信息模块
管理员管理用户信息模块主要包括对管理员查询用户信息、修改用户信息、删除用户信息和接受用户信息反馈功能,管理员管理用户信息活动图如图17所示。该模块的功能结构如图23所示。
图23管理员管理用户模块结构图
3.4 数据库设计
系统的数据库设计主要对系统所涉及的数据进行总体分析,设计系统实现所需要的数据信息,建立明确的数据表结构。
3.4.1 数据库设计概念
针对数据库领域,通常把使用数据库的各类信息系统都统称为数据库应用系统,此婚恋交友系统也是简历在数据库应用系统的基础上,广义的讲,数据库设计就是对数据库及其应用系统的设计,数据库设计是应用系统的基础,是与开发项目密切相关的。对婚恋交友系统进行数据库设计可以对数据表中数据实现增、删、查、改、统计等操作,也提高了数据库中数据的利用率。为此系统的设计、开发和维护提供了数据支持。
3.4.2 概念结构设计
通过对此婚恋交友系统的需求进行分析、归纳和总结,结合UML模型,形成一个独立于具体DBMS的概念模型,而数据库的概念结构设计是使用E-R图模型实现的。首先应当明确系统所涉及的实体之间的相互联系,此婚恋交友系统功能较为简单,因此,只涉及用户、管理员两个实体,其中用户包含用户编号、用户邮箱等属性。
实体:用户、管理员
用户属性:用户编号、用户邮箱、联系方式、用户昵称、个人描述、年龄、身高、性别、体重
管理员属性:管理员编号、管理员名、管理员登录密码
联系:管理员管理用户
实体间的对应关系:多个管理员可以管理多个用户
本系统的通过E-R图来表现概念结构设计,如图24所示。
图24系统概念结构E-R图
4 婚恋交友系统实现
婚恋交友系统的实现是建立在对系统进行完善的系统分析和设计的基础上,是完成婚恋交友系统的必要环节。在系统实现的过程中,参照之前对系统进行的设计与分析,对系统应当包含的功能进行实现。在实现的过程中,再进一步探索各个功能的可行性。
3.1系统开发环境
开发环境是一个系统进行开发的平台,整个系统的开发、运行和维护都是基于开发环境的,因此,在对此婚恋交友系统进行开发之前,应当基本了解和掌握系统的开发环境。此婚恋交友系统主要的开发环境为My Eclipse与Rational Rose相结合。
My Eclipse企业级工作平台可以在数据库和软件的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的Java集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持。是实用的开发工具。
Rational Rose是Rational公司出品的一种面向对象的统一建模语言的可视化建模工具。用于可视化建模和公司级水平软件应用的组件构造。Rational Rose是基于UML的可视化建模工具。UML全称叫Unified Modeling Language,顾名思义,UML是一种语言,一种表示法,一种交流沟通的工具,特别适用于软件密集型系统的表示。
在开发本婚恋交友系统的过程中主要应用的软件环境和硬件环境如表16和表17所示。
表16软件环境
软件环境
客户端浏览器
Chrome
业务建模工具
Rational Rose
开发工具
MyEclipse 10.0
表17硬件环境
硬件环境
操作系统
Windows 7 32bit
处理器
Core(TM)-i3 2.27GHz M 350
部署图的主要功能是将硬件系统与软件相结合,在上面已经对开发此系统的硬件环境和软件环境进行了简单介绍,图25主要是将此系统相关的硬件与和软件进行关联。用户和管理员在浏览器客户端向服务器端提交了请求,服务器再与数据库进行数据交换。
图25 婚恋交友系统部署图
3.2系统主要功能模块实现
系统主要功能模块的实现是完成整个系统的核心功能,该系统实现采用的主要技术为JSP+Struts+Hibernate,其中前台页面的实现主要使用JSP,后台页面的编写主要采用了Struts与Hibernate技术。系统页面如图26所示。
图26婚恋交友系统界面图
4.2.1 婚恋交友系统组件图
婚恋交友系统中包含了三个主要的组件,为前台操作、数据库和后台管理,其中前台操作包括用户对个人中心、我的收藏、条件查询的操作组件,管理员主要包括管理用户信息的组件。婚恋交友系统组件图如图27所示。
图27婚恋交友系统组件图
4.2.2 用户注册模块实现
普通用户浏览此婚恋交友系统首页,点击注册,跳转到注册页面:
<a href="JSP/register.jsp" class="link1">
在该页面使用jsp完成用户注册的过程,点击提交,触发语句:
<s:submit value="" action="user" method="registerUser"/>
由action的对象名查找到registerUser方法完成用户注册
4.2.3 我的收藏模块实现
(1)查询我的收藏
我的收藏主要存放用户添加的我的收藏的记录信息。该模块界面图如图28所示。
图28我的收藏
该功能实现的主要代码:
已注册用户登录到系统中之后,可以选择“我的收藏”,触发以下语句:
<a href="collection!getCollectionList.action">
<font style="font-size:15px;">我的收藏</font></a>
在struts.xml文件中查找到名为collection的Action对象,进而根据action的属性查找到所在的包下的相应方法。此过程的主要方法为:getCollectionList()。
结果返回collection,同样在struts.xml文件中根据返回值名collection返回到collection.jsp页面,在数据库中获取我的收藏中的数据列表,主要语句:
<s:iterator var="list" value="#session.collectionList" >
(2)删除收藏记录
用户登录系统,进入收藏记录查询界面,点击删除,触发语句:<a href="collection!deleteCollection.action?collectionId=${list.collectionId}">删除</a>调用collectionAction.java类中的deleteCollection()方法完成相应记录的删除
4.2.4 个人中心模块实现
(1)查询个人信息
查询个人信息界面如图29所示。
图29个人中心
点击“个人中心”跳转到userCenter的JSP页面:
<a href="JSP/userCenter.jsp">各信息栏中通过value属性进行传值,显示用户信息,以用户邮箱为例:
value="${sessionScope.loginUser.email}得到用户的个人信息。
(2)修改个人信息
用户登录系统后,在个人中心中查询个人信息,修改个人信息,触发语句:
<s:submit value="修改" action="user" method="uupdateUser"/>
查找uupdateUser方法,对个人信息进行更新。
4.2.5 管理员管理用户信息模块实现
(1)管理员查询用户信息
管理员查询用户信息界面如图30所示。
图30管理员管理用户
管理员登录系统后可直接查询用户信息,点击提交按钮触发以下命令:
<s:submit value="" action="admin" method="loginAdmin" align="center" style="border:0px;width:427px;height:44px;background-image:url(images/loginBtn.png);cursor:pointer;"/>根据action对象名为admin查找loginAdmin方法,管理员登录系统跳转到adminuser页面用户管理页面链接如下:
<a href="admin!getUser.action" title="用户管理">,根据action对象名为admin查找到getUser方法查询用户。
(2)管理员修改用户信息
管理员登录系统后查询用户信息,对用户的身高、体重进行修改,提交请求后,触发以下命令:
<input type="submit" id="admin_updateUser" name="action:admin!updateUser"
value="更新" />根据action的提示信息查找到updateUser方法对用户信息进行更新
(3)管理员删除用户信息
管理员登录新系统后查询用户信息,对一条用户记录进行删除,点击删除按钮后,触发以下命令:
<input type="submit" id="admin_deleteUser" name="action:admin!deleteUser" value="删除" />由action对象查找到deleteUser方法对用户信息进行删除。
3.3系统实现小结
该系统页面在JSP的编写技术上引用了JSP标准标签库,即JSTL,简化了JSP页面中Javascript脚本的使用,减少了页面的复杂度。在系统中还引用了EL表达式,实现了便捷的存取值。该系统有效的将JSP前台的实现与Struts和Hibernate后台的实现相结合,完成了系统各个功能模块的实现。