




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件开发与项目管理课程案例基于SSH框架的音乐检索系统一、项目简介1.1 项目背景正如摘要中所述,音乐文化已经有很长的历史了,随着如今的科技发展,很多人不再使用录音机来享受音乐所带来的快乐。当然在本世纪初,CD是最畅销的,然而现在的音乐载体又有了质的变化,数码时代的到来更改了这一历史,相应的互联网流行起来。随着互联网的发展,人们更加愿意使用电脑等数字设备来下载分享音乐。随着Java技术这些年飞快的发展,尤其在Web开发领域中成绩可人直接导致不少网络公司使用这一技术开发项目。例如腾讯公司的微信过去考虑过未来业务不断增多,所以放弃原来的PHP架构,成功转型成Java平台架构。虽然许多网络公司使用J
2、ava技术开发,但是音乐网站的开发项目少的可怜,尤其在新技术的推动下,用户更需要灵活性好的平台享受音乐。1.2 项目功能本项目具有歌手信息、用户信息、管理员信息、音乐信息以及留言板信息几个模块。每一模块都实现了相应的增删改查。用户可以试听网站里的音乐,同时在登录的情况下还可以下载喜欢的音乐,发布留言信息等功能。二、技术简介本网站使用Java Web 技术、Struts2框架技术、Hibernate技术、Spring框架技术。其中,Struts2框架主要负责业务逻辑目的是为了实现MVC思想,Hibernate框架负责管理数据持久化,Spring框架负责系统架构这一块。当然还有许多技术运用在一些细
3、节方面,如jquery技术,这里将主要介绍几个关键性技术。2.1 JAVA WebJava Application类的程序由Java最关键的部分Java SE(Java 2 Platform Standard Edition)开发。而现在Java语言使用得人数越来越多,市场发展前景很好,所以掌握了Java SE关键内容就等于掌握了Web技术的核心。而这个关键内容就是J2EE了,这也是我的项目主体使用的技术。在Web开发中,开发者都必须知道客户端和服务器端这两个概念。在客户端方面,Java Applet是Java在实际中应用较少的一种,相比较之下,服务器端是许多开发者经常使用的,最常用的如JSP
4、技术。2.2 MVC模式MVC是Model-View-Controller的简写。顾名思义,Model指的是模型层,View指的是视图层,Controller指的是控制层。J2EE中经常使用这种分层思想,它分离了业务逻辑和前台表现层,同时又在流程管理方面使用专门控制导向的Controller来实现。1982年,MVC思想被第一次提出时,变轰动了当时的几大互联网公司。随着技术的不断完善,现在在JavaWeb开发技术领域已经成为了众所周知的标准。其实它的主要功能是将业务逻辑层与显示层分离,这样不仅提升了效率还突显了耦合性低、可维护性高等特点。本项目使用的是:POJO、DAO、Service等内容为
5、Model层,JSP为View层,Action为Controller层。具体情况详见图2-1。图2-1 MVC结构图2.3 SSH框架Struts 1框架作为Apache的项目之一,现在已经成为Java Web开发人员中很喜欢的技术框架.,因为选择它对于使用Servlet和JSP建立应用比较稳妥。而Struts 2以WebWork为核心,它的作用是相对于Struts 1来说,提供了更多的OGNL、Validat等简便工具并且使项目的业务控制层不与Servlet 发生依赖关系,同时又放弃了一些旧的技术如ActionForm。Struts2的框架架构如图2-2所示:图2-2 Struts框架图本项
6、目使用的是Struts2框架,下面我将详细介绍本项目是如何实现运行逻辑的。(1)Action负责用户的请求,用户可以通过视图层对指定的Action提出请求;(2)Action依据参数控制导向;(3)Action要完成后台操作必须调用业务逻辑,同时又在准备着前台数据;(4)由struts.xml配置文件将写好结果数据的JSP页面响应给浏览器。在所有场景中都要求极其严格的环节便是数据持久化框架,相比较于Apache的iBatis提供的半自动化方式,Hibernate拥有全自动化的数据持久化方案。方言设置是Hibernate中一大特色,因为它可以通过HQL、QBC等工具的使用,使得相同的程序在不同数
7、据库平台如(My SQL、SQL Server)运行时不需要详细修改所有的代码,大大减少了工作量同时又不影响使用。如今的Java领域中最为主流的数据持久化框架便是Hibernate框架了。通常情况下,如果使用JDBC编程,开发人员必须在DAO层编写许多增删改查等语句操作程序。可是如果数据库平台的使用不同,这将导致SQL语句也会发生不同的变化,使得开发人员花费更多时间和精力来修改程序,给未来的维护增添了麻烦。然而Hibernate的HQL语句却充分的避免了这一麻烦,通过HQL语法以及配置好的数据库种类,把不变的HQL语句翻译成随环境变化而变化的动态SQL语句。JDBC有一个重大的缺点,数据库的表
8、数据与POJO的对象属性的映射关系一直是开发人员时刻在意的问题,一旦有多个POJO直接存在关系映射,那么开发者面对这种缺陷往往束手无策,这将不利于以后的设计。选择Hibernate配置可以很好的解决这一问题,由于它拥有全自动化的持久化方案,所以可以使框架自动维护单向或双向的对应关系映射,自动将表字段与类属性相关联,这样开发者在面对数据库操作时可以使用纯面向对象思想来处理。这也是许多开发者喜欢Hibernate框架的一个重要原因。作为整合工具与多框架的维护者,Spring框架是最合适不过的了。2003年,Rod John创建了Spring,提出了IOC机制与AOP思想,这一突破为项目的解耦、需求
9、的扩展提供了许多便利,尤其对于企业开发一些复杂性问题时效果更佳,当然对J2EE也有很到位的支持。 Spring的主模块框架如图2-3所示:图2-3 Sping框架图2.4 开发工具与平台开发工具与平台都是网上免费的软件。具体开发工具,技术平台等信息如表2-1所示:表2-1 开发工具与平台表类型软件/工具/平台版本操作系统Windows 7 64bit6.1浏览器火狐浏览器24.0平台javaSE environment1.6.0工具myeclipse11.0数据库SQL Server 2008R25.6服务器Apache Tomcat7.0编辑器Notepad+6.3.3三、需求分析所有项目在
10、开发周期中都必须有需求分析,需求分析做得好,则后面的开发任务将会事半功倍,为以后的功能拓展打下基础。第三章主要讲述图形界面、面向管理、面向体验3个方面的需求分析。3.1 系统简介本项目拥有歌手信息、用户信息、管理员信息、音乐信息以及留言板信息这几个模块。每一模块都实现了相应的增删改查。用户可以试听网站里的音乐,同时在登录的情况下还可以下载喜欢的音乐,发布留言信息等功能。3.2 图形界面与功能需求UI界面使用简介大方的布局格式,白底蓝字,使用户直观的看到每一处点击口,增加用户体验。顶部为logo图片,显示网站名称,下方是导航栏主要有:网站主页、我的信息、我的留言、百度音乐。紧接着往下是搜索,右边
11、有日期显示。主框架中存放歌曲信息和链接,右侧为登录窗口和日历表。尾部注明了版权以及后台登录链接口。用户输入的信息必须经过前台校验,如果验证失败,就会提示用户用规范的格式操作。功能需求主要有:管理权限、用户体验、系统维护。管理权限指:网站的管理员可以通过自己的账号登录后台管理各类信息的增删改查操作。用户体验指:无论是登录还是未登录的用户都可以查询歌曲信息包括(按名称查询、按歌手查询)。系统维护指:在后期开发人员的完善下,使系统能在最低程度上得以扩展。项目中的功能模块与需求方向的关系如表3-1所示表3-1 功能模块与需求方向关系一览表编号功能模块需求方向备注ZXYY-FR-1注册管理权限ZXYY-
12、FR-2登录管理权限ZXYY-FR-3用户管理权限用户个人息查询ZXYY-FR-4歌手管理权限ZXYY-FR-5歌曲管理权限ZXYY-FR-6播放器管理权限ZXYY-FR-7留言板管理权限ZXYY-FR-8全局搜索管理权限不同的用户身份可以与不同的功能相对应,如图3-1所示。 图3-1用户功能结构图我们从图中可以发现管理员的权限最高,其次是会员用户权限,最后是普通用户。3.3 面向管理的需求定义这一环节的需求定义多数是面向管理员的,而会员用户的内容较少,普通用户内容不涉及。管理是指可以对不同模块进行增删改操作的管理,而查询搜索或歌曲播放等功能,这里不作论述。面向管理的功能需求如表3-2所示:表
13、3-2 面向管理方向功能需求一览表编号功能模块功能需求名称优先级ZXYY-MG-1-1注册一般用户注册高ZXYY-MG-2-1登录一般用户登录高ZXYY-MG-2-2登录登录过的用户注销退出高ZXYY-MG-3-1用户登录过的用户发布留言信息高ZXYY-MG-4-1管理员管理员修改密码高ZXYY-MG-4-2管理员管理员可以删除任意一个用户账户高ZXYY-MG-5-1歌曲管理员可以删除歌曲信息高ZXYY-MG-5-2歌曲管理员可以修改歌曲信息高ZXYY-MG-5-3歌曲管理员可以增加歌曲信息高ZXYY-MG-6-1留言板管理员可以删除留言信息高总结:提供管理功能模块的有注册、登录、用户、歌曲、
14、留言板共5个模块。3.4 用户体验的需求定义用户体验,指:不涉及到CRUD管理操作,单纯查看、条件检索或播放等部分。具体的需求定义如表3-3所示表3-3 面向体验需求定义一览表编号功能模块功能需求名称优先级ZXYY-MG-1-1首页展示提供歌曲、歌手搜索,登录注册,导航栏,播放器入口等功能控件高ZXYY-MG-1-2首页展示按照歌曲热门程度设立排行榜并展示在右侧区域中ZXYY-MG-1-3首页展示按照歌曲类型分类中ZXYY-MG-2-1全局展示可以通过首页“更多”显示所有歌曲信息高ZXYY-MG-3-1全局搜索可以使用关键字进行模糊匹配搜索高ZXYY-MG-4-1播放器所有用户可以指定歌曲ID
15、播放歌曲高ZXYY-MG-4-2播放器会员用户可以点击下载喜欢的歌曲高ZXYY-MG-4-3播放器提供播放,暂停,停止等控制功能高项目体验共有首页展示、全局展示、模糊搜索、播放器4个模块。四、系统设计什么是系统设计?顾名思义就是把软件需求转换成用软件系统表示的过程。经过我本人对项目系统的调查和研究,总体规划出了音乐网站的雏形,这也是全面开发系统的重要基础。本章主要包括总体设计、系统架构设计、数据库设计、详细设计四个部分。4.1 总体设计通过分析数据流图,得出的层次化的模块结构图4-1。音乐网站前台功能模块图如图4-1所示:图4-1 音乐网站前台功能模块图音乐检索网站后台功能模块图如图4-2所示
16、:图4-2 音乐网站后台功能模块图其中系统属性主要实现了:(1)操作系统版本显示(2)操作系统类型显示(3)用户目录(4)JDK安装目录(5)JDK版本(6)剩余内存4.2 系统架构设计 本项目使用SSH框架将项目分成了视图层、控制层、模型层三个层次,这种结构有利于拆分逻辑信息和界面,从而更加快速的相应需求。如图4-3所示:图4-3系统架构设计结构图系统各层的功能实现说明:(1) 视图层视图层是系统与用户的交互层,是用户可以看得到的唯一接口界面,针对用户提出的任意请求,响应对应的机制,最后将验证结果反馈给客户层。(2) 业务层本项目使用Spring框架实现业务层控制,它主要提供了业务逻辑方法实
17、现流程管理,是最为重要的关键因素。(3) 持久层数据访问层主要是一些实现具体业务功能的类,而hibernate是业务逻辑层数据存取的方法,包括数据库数据的增加、删除、修改、查询的HQL语句。通过SQL开发的工作量和数据库移植性对其进行让步,为系统设计提供了更大的空间。4.3 数据库设计数据库是本项目的核心。之所以成为核心是因为数据库承载了大量的数据信息以及数据逻辑,表与表之间的关联不能乱,一旦关系错乱,这将导致后面的编程会很困难。为了更好的有条理的编程,数据表在创建的时候一定要三思而后行。一份好的数据库设计将会为后面的程序扩展提高工作效率。概念结构设计通过数据分析,我得出了系统的属性图。管理员
18、属性图如图4-4所示:图4-4管理员属性图音乐属性图如图4.3-2所示:图4-5音乐属性图公告属性图如图4.3-3所示:图4-6公告属性图留言属性图如图4-7所示:图4-7留言属性图会员属性图如图4-8所示:图4-8会员属性图音乐分类属性图如图4-9所示:图4-9音乐实体属性图E-R模型的组成元素一般有三个:实体、属性、联系。E-R模型用E-R图表示。系统的实体属性图一般遵循三范式原则,通过整合实体之间的依赖关系,得出系统E-R图,如图4-10所示:图4-10系统E-R图具体说明:图中用矩形表示实体,用菱形表示实体之间的关系,用线条把菱形与有关实体连接,在边上标明了联系的类型。用椭圆表示实体的
19、属性,再用线条将实体与属性联系起来。数据库表设计根据需求分析,我创建了管理员信息表、音乐分类信息表、公告信息表、音乐信息表、会员信息表、留言信息表。具体表现如下:表4-1管理员信息表字段名类型长度说明adminidint4管理员ID(主键)adminnamevarchar50用户名adminpwdvarchar50密码管理员表用于存放管理员信息,主要有编号、用户名和密码三个字段,其中管理员编号是主键。表4-2音乐分类信息表字段名类型长度说明styleidint5ID(主键)stylenamevarchar40名称introducevarchar300音乐类别介绍音乐分类信息数据存放在音乐分类表
20、中,主要有分类编号、分类名称、介绍三个字段,其中分类编号设定为主键。表4-3公告信息表表字段名类型长度说明messageidint5ID(主键)Titlevarchar60标题Contentvarchar400内容timesdatetime7时间公告信息数据存放在公告信息表中,主要有编号、标题、内容、时间四个字段,其中编号设定为主键。表4-4音乐信息表表字段名数据类型长度功能描述musicidint5ID(主键)musicnamevarchar50名称styleidint5种类ID(外键)musicfilevarchar300音乐文件地址filenamevarchar40文件名singerva
21、rchar12歌手名称timedatetime7上传时间beizhuvarchar300备注音乐信息数据存放在音乐信息表中,主要有编号、音乐名称、种类编号、文件地址、文件名、歌手名称、上传时间、备注八个字段,其中编号设定为主键而种类编号为外键。表4-5会员信息表字段名数据类型长度功能描述useridint5用户ID(主键)usernamevarchar50用户名userpwdvarchar60密码truenamevarchar5姓名sexvarchar2性别Ageint5年龄Telvarchar50电话Emailvarchar50邮箱QQint12QQ会员信息数据存放在会员信息表中,主要有用户
22、编号、用户名、密码、姓名、性别、年龄、电话、邮箱、QQ九个字段,其中用户编号设定为主键。表4-6留言信息表字段名数据类型长度功能描述talkidint5留言ID(主键)useridint5会员ID(外键)titlevarchar50标题contentvarchar300内容timedatetime12留言时间留言信息数据存放在留言信息表中,主要有留言编号、会员编号、标题、内容、留言时间五个字段,其中留言编号设定为主键而会员编号为外键。 为了更直接的显示各表之间关联的情况,通过如下数据库E-R图的形式展现。图4-11系统表与表之间关系图五、详细设计5.1 登录模块实现登录模块主要进行会员登录和管
23、理员登录。(这里以会员登录为例)会员登录功能模块的View显示层涉及到userlogin.jsp,在此页面填入对应的账号与密码,点击登录按钮后提交给Struts的UserAction类处理,然后再返回首页。Struts的配置内如下:用户登录框以及登录后首页效果如图5-1、5-2所示:图5-1 用户登录界面图图5-2 用户登录后界面图用户登录的业务层处理用户登录过程的业务逻辑,它的功能主要起到分离逻辑处理和显示的作用。用户登录业务层可以接收显示层的账号、密码表单数据,也可以传递和接收持久层数据。在本系统中主要利用Spring框架构建业务层主要包括三个步骤:用户登录业务层配置文件主要配置了用户接口
24、、用户控制类,具体代码实现:2.登录控制类(UserAction.java)具体代码实现:3.登录逻辑接口(TUserDAO)具体代码实现用户登录模块的持久层实现分为两个步骤:配置实体映射、用户管理持久化实现。1.实体映射配置实体映射的具体代码如下:2.持久化实现代码:用户管理持久化实现通过UserDAOImpl类实现,实现代码如下:5.2 注册模块实现注册模块主要实现普通用户到会员的过渡,通过注册模块使普通用户享有会员所有的权限。View显示层涉及到userReg.jsp,在此页面按要求填入个人信息,点击注册按钮后提交给Struts的UserAction类处理,然后再返回首页使用注册账号登录
25、。Struts配置如下:具体注册效果如图5-3所示图5-3 用户注册界面图注册业务层处理用户注册过程的业务逻辑,通过业务层将显示层与数据处理分离开来,可以降低系统的耦合度。用户注册业务层可以传递和接收持久层数据。在本系统中主要利用Spring框架构建业务层主要包括三个步骤:注册功能业务层涉及到:applicationContext.xml(配置文件)、TUserDAO.java(逻辑接口)、UserAction.java(控制类)。用户注册业务层配置主要配置了用户接口、用户控制类,具体代码实现如下:2.注册控制类(UserAction.java)的实现用户管理控制类(UserAction.ja
26、va)获取表单数据,同时调用用户服务实现类(UserServiceImp.java)的方法进行处理,处理结束后返回到表示层页面。注册控制类具体代码实现:3.注册逻辑接口(TUserDAO)的实现注册接口中定义了用户注册的常见方法定义。注册接口代码具体如下: 用户注册模块的持久层实现分为两个步骤:配置实体映射、用户管理持久化实现。1.实体映射 配置实体映射的具体代码如下:2.用户注册持久化实现:用户注册持久化实现通过UserDAOImpl类实现,实现代码如下:5.3 音乐浏览下载模块实现音乐浏览下载模块主要是允许会员用户下载自己喜欢的歌曲。 浏览下载显示层实现View显示层涉及到updown.j
27、sp、index.jsp,在此页面可以试听音乐,如果喜欢在登录的前提下可以点击下载后提交给Struts的yinyueAction类处理。Struts配置如下:下载效果如图5-4所示图5-4下载效果界面图下载业务层处理会员下载过程的业务逻辑,通过业务层将显示层与数据处理分离开来,可以降低系统的耦合度。会员下载业务层可以传递和接收持久层数据。在本系统中主要利用Spring框架构建业务层主要包括三个步骤:下载功能业务层涉及到:applicationContext.xml(配置文件)、yinyueDAO.java(逻辑接口)、yinyueAction.java(控制类)。音乐下载业务层配置主要配置了音
28、乐接口、音乐控制类。具体代码如下:2.下载控制类(yinyueAction.java)的实现下载控制类具体代码实现:3.下载逻辑接口(TYinyueDAO)的实现下载接口中定义了音乐下载的常见方法定义。下载接口代码具体如下:音乐浏览下载模块的持久层实现分为两个步骤:配置实体映射、音乐管理持久化实现。1.实体映射 配置实体映射的具体代码如下:2.音乐管理持久化实现音乐管理持久化实现通过YinyueDAOImpl类实现,实现代码如下:5.4 留言模块实现留言模块主要进行会员留言给管理员的操作。View显示层涉及到liuyanAll.jsp,在此页面可以发表看法点击按钮后提交给Struts的liuy
29、anAction类处理,管理员会即刻收到用户留言。Struts配置如下:具体效果如图5-5所示图5-5 留言板界面界面留言业务层处理用户留言过程的业务逻辑,通过业务层将显示层与数据处理分离开来,可以降低系统的耦合度。用户留言业务层可以传递和接收持久层数据。在本系统中主要利用Spring框架构建业务层主要包括三个步骤:留言功能业务层涉及到:applicationContext.xml(配置文件)、TLiuyanDAO.java(逻辑接口)、liuyanAction.java(控制类)。用户留言业务层配置主要配置了留言接口、留言控制类。具体代码如下:2.留言控制类(liuyanAction.jav
30、a)的实现 留言控制类具体代码实现:3.留言逻辑接口(TLiuyanDAO)的实现 留言接口中定义了用户留言的常见方法定义。留言接口代码具体如下:用户留言模块的持久层实现分为两个步骤:配置实体映射、用户留言持久化实现。1.实体映射 配置实体映射的具体代码如下:2.用户留言持久化实现:用户留言持久化实现通过LiuyanDAOImpl类实现,实现代码如下:5.5 后台模块实现后台管理模块主要包括用户信息查询,对音乐信息添加查询删除,对管理员信息添加修改,对留言信息查询删除四个模块,本文以用户信息查询子模块为例说明后台模块的实现。后台功能可以让管理员对所有信息进行掌控。后台用户显示模块涉及userM
31、ana.jsp页面。后台页面点击会员管理选项后,提交给UserAction类处理,处理结束后返回后台页面。Struts的配置内如下:后台用户显示页面效果如图5-6所示:图5-6 会员管理效果后台的业务层处理后台用户显示过程的业务逻辑,在本系统中后台业务层的构建主要包括三个步骤:1.配置applicationContext-sysManager.xml后台模块业务层配置主要配置了后台用户信息管理接口、后台用户信息管理服务实现类、后台用户信息管理控制类。具体代码如下:2.定义后台用户信息管理逻辑接口后台用户信息管理接口中定义了后台用户信息管理的常见方法。后台用户信息管理接口(TUserDAO.java)的代码如下:3.控制类(UserAction.java)的实现后台用户信息管理控制类(UserAction.j
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高压线路安全事故免责协议书
- 制定有效的推广预算
- 品质经理年终述职报告
- 手机摄影知识培训课件
- 2025年韩语TOPIK中级考试真题卷:写作技巧与范文解析及实战演练答案
- 2025年注册会计师考试《会计》新准则解读与练习试题
- 2025年音乐教师招聘考试音乐教育技术与应用试题卷
- 2025年小学英语毕业模拟试卷:英语歌曲欣赏与演唱能力评估
- 基床表层结构的作用
- 2025年室内设计师职业资格考试真题卷-装饰材料环保标准应用试题
- 传染病习题库与参考答案
- 《以哪吒精神照亮成长之路》开学家长会课件
- 四川省2024年普通高等学校高职教育单独招生文化考试数学试题
- 3.1公民基本权利(课件 )-2024-2025学年八年级道德与法治下册 (统编版)
- GB/T 44934-2024电力储能用飞轮储能单元技术规范
- 教师专业发展与教学质量的关系-深度研究
- 地震资料解释基础
- 四川省绵阳市2025届高三第二次诊断性考试思想政治试题(含答案)
- 课题申报参考:援藏口述史思想政治教育价值的挖掘与应用研究
- 儿童故事绘本愚公移山课件模板
- 人教版七年级下册地理第一次月考试卷
评论
0/150
提交评论