基于SSM框架的音频分享网站的设计与实现_第1页
基于SSM框架的音频分享网站的设计与实现_第2页
基于SSM框架的音频分享网站的设计与实现_第3页
基于SSM框架的音频分享网站的设计与实现_第4页
基于SSM框架的音频分享网站的设计与实现_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

广东东软学院本科毕业设计(论文)基于SSM框架的音频分享平台的设计与实现DesignandImplementationofAudioSharingPlatformBasedonSSMFramework

摘要在信息时代飞速发展的今天,人们获取信息的方式基本来源于互联网。互联网在人们娱乐生活上发挥着重要作用。传统的音乐网站大同小异,已经无法满足所有人的需要。基于SSM框架的音频分享平台可以让不同年龄层的人享受音频所带来的快乐,让人们学习生活两不误。音频分享平台项目使用了SSM框架开发,采用了JAVA编程语言,开发工具采用Eclipse,数据库采用MySql。用户可播放收藏搜索音频,后台的音频分类,收藏分类,音频类别分类简洁明了,管理员可通过搜索快速进行增删改操作。本文对音频分享平台前期的目的背景,具体的需求分析进行了研究,讲述了音频分享平台的总体设计,利用了表格和思维导图详细分析音频分享平台的功能,列出数据库的数据表和测试用例及测试结果。最后,音频分享平台开发与设计已完成。关键词:音频分享SSM框架JAVA

AbstractWiththerapiddevelopmentoftheinformationage,thewaypeoplegetinformationisbasicallyfromtheInternet.TheInternetplaysanimportantroleinpeople'sentertainment.Traditionalmusicwebsitesaremuchthesameandnolongermeeteveryone'sneeds.TheaudiosharingplatformbasedonSSMframeworkcanletpeopleofdifferentagesenjoythehappinessbroughtbyaudio,andletpeoplelearnandliveatthesametime.TheaudiosharingplatformprojectwasdevelopedusingSSMframework,JAVAprogramminglanguage,EclipsedevelopmenttoolandMySqldatabase.Userscanplayfavoritesearchaudio,backgroundaudioclassification,collectionclassification,audiocategoryclassificationissimpleandclear,theadministratorcanquicklythroughthesearchoperation.Inthispaper,thepurposeoftheearlydevelopmentofaudiowebsite,thespecificneedsoftheanalysisoftheresearch,theaudioplatformoveralldesign,theuseoftablesandmindmapdetailedanalysisoftheaudiowebsitefunction,thedatabasedatatableandtestcasesandtestresults.Finally,thewebsitedevelopmentanddesignhavebeencompleted.Keywords:AudiosharingSSMframeworkJAVA

目录第一章绪论 第一章绪论1.1研究背景及意义经过四十多年的不断发展,计算机网络已经成为支撑现代社会发展与技术进步的重要基础[1]。近十年来,计算机网络在规模上呈现出惊人的扩张,无论在网络接入方式还是网络角色定位方面都出现了一系列极具意义的创新与改革[1]。从改革开发到如今2020年,足足42年间,人民不仅仅只局限于吃饱喝足,而是更在意与精神上的愉悦。互联网就是一种使大众可以获得精神高度上的愉悦的工具。因此,互联网一直在发展进步。而音频分享网站在互联网普及之初就已经出现,到如今普通的音频网站逐渐不能满足人民日渐提高的娱乐需求。随着技术的进步,音频分享平台不应该仅仅是广大音乐爱好者交流分享的平台,而应该是可以开发出各种爱好者交流分享的平台。目前,我国网络高速发展,使用网络的人也越来越多,根据CNNIC(中国互联网信息中心)对中国互联网网络发展状况等多项互联网络的统计调查,我国1997年11月第一次向世界发布互联网发展状况统汁报告,当吋中国的互联网用户为62万,到2005年7月第16次报告中,我国上网用户高达1.03亿,用户量居世界第二[2]。2012年1月第29次报告中,截至2011年12月底,中国上网人数突破5亿,到达5.13亿,在2011年全年新增人数5580万,互联网普及率较上年提升4个百分点,达到38.3%[2]。人们在繁忙的工作和学习,也不忘享受生活和生命。在利用信息网络进行学习的同时,也享受着网络发展带来的其余服务,例如电子小说、网络游戏、在线音乐等。在这样的需求下,音频分享平台应时而生。音频分享平台是一个界面简洁大方的音频交流收藏网站,用户可以将自己喜欢的音频进行收藏,音频分享平台充分考虑到用户的需求,提供贴心的服务。现在市面上的音频网站,大多数都是非常单调的音频分享,而如今简简单单的音频分享已经不能满足大众的需求了。应运而生的音频分享平台主打的三个分类都是观察到了现在市面上所需要的而提出,如有声小说:年轻人工作上忙碌,生活上琐事又多,并没有时间看电子小说,有声小说让年轻人可同时处理两件事情,且互不干扰;通过观察可发现中老年人最爱就是听收音机和看电视,而最近网络时代快速发展,越来越多中老年人踏入网络社会,网络有声小说也符合他们的需求,总而言之,音频分享平台充分考虑到用户的需求,提供贴心的服务。1.2研究现状1.2.1音频分享平台研究现状20世纪90年代后期,随着国际互联网技术的快速发展和计算机多媒体、电脑音乐技术的日趋成熟,计算机除了会传递文字、静态图像,还能传递动态视频和音频信息[3]。由此,计算机音乐便逐渐迁移到了网络音乐,网络音乐不仅从艺术传播角度来看是一次伟大的革命,同时也对艺术传统的创作、表演、欣赏、传播、教育、评论等理念产生了强烈的冲击[3]。根据艾媒咨询4月发布的中国在线音频市场研究报告显示:2018年1月,中国在线音频渗透率(APP活跃用户数/全网用户规模)中,喜马拉雅FM的渗透率为5.12%,排名第一,其后是蜻蜓FM和荔枝,渗透率分别为2.29%和2.18%既[4]。可以看到,在国内音频分享平台中,喜马拉雅FM作为独角兽,优势明显[4]。本音频分享平台主要的用户是国内对于广大音频爱好者和对音频有特殊教育需求的个人,目标是建立一个便捷的音频搜索平台,权威的网络音频榜单,年轻人和老年人均可的音频电台,构建乐在分享的音频互动网站。1.2.2SSM技术研究现状目前,国内外有很多的Web开发技术,其中应用最广泛的两类技术分别是微软(Microsoft)公司的.Net平台和Sun及IBM等公司提出的J2EE平台;J2EE主要面向使用JAVA程序设计语言进行基于Web的企业应用的开发部署[5]。J2EE平台相较于.Net平台是开放的、跨平台的、可移植的,因此很多企业都选择J2EE平台的结构设计和解决方案;传统的J2EE以EJB(EnterpriseJavaBean)容器为核心,EJB组件提供事务管理,处理用户请求,支持打包处理和资源管理等功能,但是EJB与EJB容器的高度耦合关系,使其可移植性差[6],同时EJB代码的复杂、维护的困难使其逐步被淘汰,因此轻量级的框架就应运而生。例如,Struts、Spring等,降低了开发的复杂度,提高了开发时的调试效率,进而提高了Web网站的开发速度[7]。当下最流行的两种开发MVC开源框架,一种是SSH,一种是SSM。他们之间的区别是MVC的实现方式和ORM持久化方面,SSH是Hiibernate二SSM是Mybatis。和SSH相比,SSM具有轻量级,速度快,效率高、入门门槛低的优点。因此,音频分享平台使用SSM框架进行开发与设计。1.3研究内容本文研究内容是设计和实现一款基于SSM框架的音频分享平台系统。用户使用此音频分享平台可以播放收藏搜索管理喜爱的音频,当前音频分享平台最热音频和最新音频;管理员后台进行音频、收藏、分类管理。1.4章节安排本文是介绍开发一个基于SSM框架的音频分享平台的设计与实现。本论文的主要结构为:第一章:绪论,介绍了基于SSM框架的音频分享平台的研究背景及意义、当前音频分享平台的现状,SSM技术的发展现状,以及对本论文研究内容进行简单介绍。第二章:音频分享平台需求分析,介绍了平台功能需求分析和可行性需求分析,以及数据需求分析,本项目以网站的形式实现基于SSM框架的音频分享平台,并且根据功能需求确定本平台的功能。第三章:音频分享平台设计,介绍了平台总体设计的总体架构、功能架构设计,平台的功能模块设计具体阐述了各个功能以及数据库的设计。第四章:音频分享平台实现,介绍本平台是如何实现的,开发实现音频分享平台所要用到的技术,详细介绍了各个功能模块的设计思路以及核心代码以及系统实现后的效果。第五章:音频分享平台测试,对音频分享平台进行测试,及时发现平台中的隐藏缺陷,分析缺陷产生的原因,对症下药。第六章:总结与展望,本章对论文进行整体总结。

第二章音频分享平台需求分析一个系统进行开发与实现的流程:从要做什么开始,到怎么做这个东西,再到做的实施过程,接下来便是检验成果,最后是交付;其中,第一个步骤“做什么”对应的是需求分析过程。需求分析是系统定义部分的最后一个过程,也是开发部分第一个流程,其作用是准确了解需求并建立确认性和可验证性的基础。2.1需求分析现代社会,人们在闲暇空余的时间有多种放松心情的方式,有的人选择去咖啡厅喝杯咖啡,有的人选择去书店看本好书,有的人选择在游戏中寻找快乐,还有的人会选择戴上耳机倾听一首音频或者是一段有趣的小说让自己心情愉悦。而且人们的需求还有在碎片化时间的场面下,音频分享平台可以解放双手,用户可以在碎片化时间的场面下进行其他活动,做到工作生活两不误。音频分享平台不但给用户提供了优质的音频,同时操作方便。音频分享平台有三大主流用户,他们分别是在校学生、上班族和中产用户。他们的需求分别是,在校学生对音频分享平台的需求:利用碎片化时间,针对某一学科进行额外学习,如英语学习。上班族需求:平时工作繁忙,对于充电和娱乐有着强烈需求,利用碎片时间会听有声小说;而且现代社会压力大,入睡困难,会选择听催眠助眠类音频来助眠。中产用户需求:对于传统文学内容有要求,娱乐型的有声小说较为符合。2.1.1功能需求分析功能需求分析描述音频分享平台应该具备的功能,对音频分享平台提供的功能描述,本音频分享平台包含以下几个功能模块的需求:(1)榜单模块a)有3种榜单:按照点击量、上传时间排行、不同类别的排行榜。(2)搜索模块a)用户根据关键字搜索音频。b)后台管理员在音频、收藏、分类管理页面中可通过要求搜索。(3)收藏模块a)前台用户可以收藏管理音频。b)后台管理员在收藏管理页面进行增删改操作。(4)音频模块a)用户进入到音频页面可播放音频和浏览相关信息。b)管理员在后台音频管理页面进行操作。(5)注册模块a)游客成功注册后跳转到首页。(6)登录模块a)用户成功登录进入首页。b)管理员成功登录进入后台。(7)分类模块a)首页不同类别音频分类榜单形式显示。b)后台管理员音频分类管理操作。2.1.2可行性需求分析音频分享平台开发过程中所需要的应用软件、硬件系统容易获得,服务器端的安装十分简单,客户端无需安装任何软件,可以直接通过浏览器访问网站。用户只要能够使用互联网设备就可以访问本网站。以上条件均满足的话,从经济的角度分析,具有完全的可行性。音频分享平台使用一个开源且可扩展的开发工具,安装一个安装方便、安装速度快的数据库,开发语言最好使用具有简单易学、功能强大、安全、调试相对简单特性的语言。以上条件均满足的话,从技术的角度分析,具有完全的可行性。音频分享平台满足操作简单,对用户的要求非常低,平台内容显示整齐,网站架构建立符合大多数用户的习惯,如:搜索框在音频分享平台右上部、网站栏目导航显而易见。用户只需对WINDOWS操作熟练即可。后台要管理简单,管理员方便操作。以上条件均满足的话,从操作的角度分析,具有完全的可行性。2.2数据需求分析音频分享平台后台数据库实时更新内容,不同关联数据在数据库中按表的显示进行管理。下面是音频分享平台数据的需求分析:(1)用户信息(2)音频类型信息(3)播放记录信息(4)音频信息(5)角色信息(6)收藏信息(7)页面信息第三章音频分享平台设计本章为音频分享平台设计部分,主要以平台总体设计的总体架构、开发框架、功能架构设计,平台的功能模块设计以及数据库的设计来介绍。此平台采用SSM框架和Bootstrap框架,后端数据库采用MySQL数据库进行开发,所用到的服务器是Tomcat服务器。3.1平台总体设计3.1.1平台总体架构设计音频分享平台的总体架构采用B/S结构,由客户端和服务端组成,客户端面向的是使用音频分享平台的用户,音频分享平台的用户发送请求给服务器端,服务器处理后将数据传送给数据库进行处理,本音频分享平台的总体架构如下图1-1所示。图1-1平台总体架构平台总体架构层次功能分析:(1)Controller层为表现层:接受http请求,控制流程,调用Service层的接口;(2)Service层为业务层:设计接口和其实现类,调用已定义的DAO层接口;(3)DAO层为持久层:设计DAO层接口,与数据库进行联络。3.1.2平台功能结构设计根据第二章的需求分析,为了满足用户的需求,基于SSM框架的音频分享平台的主要功能有七个,音频分享平台的功能模块如下图1-2所示:不同的功能里有不同的操作内容:登录功能:用户和管理员登录。填写账号密码用户类型进行登录。注册功能:用户注册。游客填写相关信息注册为用户。收藏管理:点击收藏,查看收藏,用户收藏管理音频,管理员后台管理所有收藏信息。音频功能:播放音频。用户可播放自己喜欢的音频,管理员后台音频增删改操作。榜单功能:榜单显示。三种榜单显示:分类榜单,最新榜单,最热榜单。分类功能:不同音频分类显示。后台音频分类上传,前台上榜单分类显示。搜索功能:搜索音频。用户可搜索音频,管理员在后台可根据需求搜索音频。图1-2平台功能结构3.2平台功能模块设计3.2.1榜单管理榜单管理模块是音频分享平台的主体部分之一。根据用户点击数生成阅读排行榜单,根据管理员发布时间生成最新发布榜单。不同分类的音频在首页以榜单的形式显示,音乐库和部分页面有最热音频和最新音频的榜单分部。3.2.2音频管理音频管理模块主要负责:管理员上传一个完整的音频,系统自动检测音频名称自动检测是否重名和超长,并提醒音频,作者、简介、封面图的上传。后台音频管理首页默认音频的上传时间进行列表排序。音频管理模块是音频分享平台的核心,包括了管理员上传音频和用户播放音频收听。用户可点击榜单的音频进入到对应页面进行了解和收听。3.2.3分类管理管理音频的类别信息,通过音乐类别名称可以进行搜索,管理员可以在此页面上编辑、新增、删除操作。通过后台管理员将音频分类上传,首页会将音频以不同类别榜单形式呈现出来。3.2.4音频搜索音频搜索是一个音乐网站的必要元素,按关键字查找音频名称,搜索结果页面和音乐库界面相似,点击对应的音频名称可以进入对应的音频页面。后台的管理页面均提供了搜索功能,方便管理员进行管理。3.2.5收藏管理收藏模块是普通用户和游客最大的区别,普通用户可以将自己喜欢的音频进行收藏管理。同样为了方便管理,通过音频名称、用户名可以进行搜索,显示所有用户的收藏和收藏的音频、收藏时间,管理员可进行删除操作。3.2.6登录管理登录模块会在用户选择身份上进行判断和账号、密码是否匹配正确,如果匹配正确,用户信息将显示在主页上,用户可以执行其他操作。如果匹配失败,将提示用户输入的帐号和密码错误。登录成功后用户可以修改密码。按照不同用户类型,平台登录成功跳转到首页,管理员跳转到后台管理。3.2.7注册管理游客是网站用户榜排行榜的底端,需要通过注册模块成为普通用户进而享受其他模块服务。注册是使游客变成一个普通用户的唯一途径,注册模块设计主要的任务是提示用户填写基本实现信息,将用户数据信息添加到数据库中。3.3数据设计数据库是音频分享平台的核心部分之一,所有的信息都存储在数据库中,以实现所需的功能。选择一个适合的数据库是十分重要的,为了选择合适的数据库平台,数据库应选择符合下面要求:数据和程序相互独立;数据库可以在不同的操作系统下使用;冗余数据少,数据共享程度高;系统的用户接口简单;最好是免费开源的,没有经济压力;用户容易掌握上手,使用方便。数据库的概念进行结构优化设计完后,可以将数据库概念转化成数据库系统支持的逻辑结构。使用实际的数据模型,可以直观地看到数据库中各个数据表中存储的信息,如字段的名称,类型,是否允许字段为空以及字段的描述。根据实体属性及其产生的行为,从实际需要出发,设计数据库表和系统E-R图,平台E-R图如图1-4所示。图1-4数据库E-R图游客可以注册成为一个普通用户,一个普通用户可对音频进行多种操作,一个管理员可以管理多个普通用户和音频。

第四章音频分享平台实现4.1相关技术4.1.1SSM框架SSM是SpringMVC、Spring、Mybatis的简写。SSM是轻量级并且应用较多的一种组合框架,好多中小型企业的门户网站、政府网站、金融项目都是基于SSM架构开发的;由于Spring是一个业务层的框架,能够很好地整合表现层的SpringMVC框架和持久层的Mybatis框架;整合以后,Spring就会充当整个应用的工厂;首先整合Spring和Mybatis,Spring整合Mybatis最简单的理解就是“把Mybatis数据源的配置、事务的管理、SqlSessionFactory的创建以及数据映射器接口Mapper的创建交由Spring管理”,所以Mybatis的配置文件mybatis-config.Xml中不需要再配置数据源及事务,在业务层service实现时不需要手动地获取SqlSession以及对应的数据映射器接口Mapper,通过Spring的注入即可[7]。4.1.2Bootstrap框架Bootstrap就是一个已经写好了HTML和CSS的样式组合,是一个容易上手、用于快速开发Web应用程序和网站的前端框架。Bootstrap可以在所有的主流浏览器上运行,而且Bootstrap的响应式CSS能够自动适应于台式电脑、笔记本和手机等应用。方便音频分享网站页面在不同平台上的自动切换。在用户使用体验来说,出自大公司Twitter,做到了完全开源,减少用户测试的工作量。Bootstrap框架中,各种命名都统一化和规范化,减少管理员日后的维护工作。网站页面风格统一,画面和谐。4.1.3MySql数据库MySql是一种关系型数据库,将关联数据保存在不同的数据库表中,而不是全都挤在一起,提高了反应速度。目前来说网站程序使用MySql数据库较多,MySql可以与JAVA开发语言完美配合,对于新手开发者,MySql数据库的免费开源、体积小、连接速度快的特点打动了新手开发者的内心,是一个适合降低音频分享平台开发成本的数据库。4.2数据库实现1、页面(authority)表页面表主要用于保存各种页面的基本信息,其属性有用户编号(id)、页面名称(name)、菜单序列号(menu_href)、菜单位置(menu_position)、序列号(serial_number),该表结构如表3-1所示。表3-1authority字段名称数据类型长度可否为空描述idbigint20否自动编号namevarchar64否用户名serial_numberint11否序列号menu_hrefvarchar128否菜单序列号menu_positionvarchar8否菜单位置2、收藏(collect)表收藏表主要用于保存关于收藏功能的所有信息,其属性有:用户编号(id)、用户收藏的音频名(musuc_name)、收藏用户id(user_id)、用户名(user_name),收藏时间(creat_time)、收藏的音频id(music_id),该表结构如表3-2所示。表3-2collect字段名称数据类型长度可否为空描述idbigint20否自动编号user_idbigint20否收藏用户iduser_namevarchar16否收藏用户名music_idbigint20否收藏的音频idmusuc_namevarchar32否收藏是音频名creat_timedatetime否收藏时间3、音频(music)表音频表主要用于保存音频的所有信息,其属性有:用户编号(id)、音频名称(musuc_name)、创建时间(creat_time),文件路径(file_path)、图片路径(cover_img),作者(author)、点击数(click_count)、播放次数(play_count)、类型id(type_id)、更新时间(update_time)、简介(summary),该表结构如表3-3所示。表3-3music字段名称数据类型长度可否为空描述idbigint20否自动编号namevarchar32否音频名称file_pathvarchar64否文件路径creat_timedatetime否创建时间cover_imgvarchar64否图片路径authorvarchar32否作者click_countint11否点击数play_countint11否播放次数type_idbigint20否类型idremarktext否评论update_timedatetime是更新时间summaryvarchar128否简介4、音频类别信息(musictype)表音频类别信息表主要用于保存音频的类别信息,其属性有:用户编号(id)、音频类型名称(name)、创建时间(creat_time)、更新时间(update_time),该表结构如表3-4所示。表3-4musictype字段名称数据类型长度可否为空描述idbigint20否自动编号namevarchar116否音频类型名称creat_timedatetime否创建时间update_timedatetime是更新时间5、用户播放记录(record)表用户播放记录表主要用于用户播放音频的所有信息,其属性有:用户编号(id)、姓名id(user_id)、姓名(user_name)、创建时间(creat_time)、音频id(music_id)、音频名称(music_name)、播放次数(play_count),该表结构如表3-5所示。表3-5record字段名称数据类型长度可否为空描述idbigint20否自动编号user_idbigint20否姓名iduser_namevarchar16否姓名music_iddatetime20否音频idmusic_namevarchar32否音频名称play_countint11否播放次数creat_timedatetime否创建时间6、角色(role)表角色表主要用于保存管理员和普通用户的所有信息,其属性有:用户编号(id)、创建时间(creat_time)、用户名(name),该表结构如表3-6所示。表3-6role字段名称数据类型长度可否为空描述idbigint20否自动编号namevarchar32否用户名creat_timedatetime否创建时间7、用户信息(user)表用户信息表主要用于保存注册的用户信息,其属性有:用户编号(id)、用户名(username)、创建时间(creat_time)、登录密码(password)、真实姓名(truename)、邮件信息(email)、更新时间(update_time)、用户类型(role_id),该表结构如表3-7所示。表3-7user字段名称数据类型长度可否为空描述idbigint20否自动编号usernamevarchar32否用户名passwordvarchar64否密码truenamevarchar16否真实姓名create_timedatetime否创建时间update_timedatetime是更新时间emailvarchar32否邮件user_typevarchar8否用户类型role_idbigint20否类型idauthority_idsvarchar16否4.3“登录”功能的实现点击登录的时候系统会完成以下操作:去数据库的user表里查是否有该用户,判断用户的账号、密码、用户类型是否匹配,如果账号、密码和用户类型都正确,则跳转到首页。如果账号密码有错误,则会提示:用户名/密码有误!用户登录的逻辑实现如表2-1。调用IUserService的saveOrUpdate接口,换取用户标识User,并匹配Username、RoleId、password,代码如下表。表2-1用户登录的逻辑实现publicJsonViewDatalogin(Useruser){ UsertempUser=newUser(); tempUser.setUsername(user.getUsername()); tempUser.setRoleId(user.getRoleId()); if(iUserService.queryCount(tempUser)==0){ returnsetJsonViewData(ResultCode.FAIL,"用户名/用户类型有误!"); } Subjectsubject=SecurityUtils.getSubject(); UsernamePasswordTokentoken=newUsernamePasswordToken(user.getUsername(), CryptographyUtil.md5(user.getPassword(),CryptographyUtil.SALT)); try{ //登录验证 subject.login(token); Map<String,Object>resultMap=Maps.newHashMapWithExpectedSize(1); resultMap.put("userType",user.getUserType()); returnsetJsonViewData(resultMap); }catch(Exceptione){ returnsetJsonViewData(ResultCode.FAIL,"用户名/密码有误!"); } }图3-1登录实现效果页面用户点击登录后跳转到登录页面,填写姓名密码,选择用户类型,成功登录后跳转到首页,登录实现效果页面如图3-1。4.4“注册”功能的实现当进行注册操作时,需要用户输入账号密码邮箱真实姓名,点击注册后,会调用Springboot的Controller对应到的映射地址进行注册操作,这个操作实际上会去数据库查询用户是否存在,如果用户已经存在则提示已经存在;如果用户不存在则会创建这个用户,并且将进行刚创建用户设置为已登录状态并且跳转到首页的操作。游客注册账号,将user对象的RoleId、UserType、AuthorityIds、Password添加到数据库中,注册成功就调用iUserService的saveOrUpdate接口存放新增用户信息,如表2-2。表2-2游客注册的逻辑实现publicJsonViewDataregister(Useruser){ user.setRoleId(USER_TYPE_C_ID); user.setUserType(USER_TYPE_C); user.setAuthorityIds(DEFAULT_AUTHORITY_IDS); user.setPassword(CryptographyUtil.md5(user.getPassword(),CryptographyUtil.SALT)); booleansuccess=iUserService.saveOrUpdate(user); returnsuccess?setJsonViewData(ResultCode.SUCCESS):setJsonViewData(ResultCode.FAIL); }图3-2注册实现效果页面游客进入注册页面,填写用户名、真实姓名、联系邮箱、密码、确认密码,所有信息按规定填写完毕后,成功注册进入首页,注册实现效果页面如图3-2。4.5“收藏”功能的实现收藏实现:用户收藏信息的管理操作,包括搜索、删除信息等操作。会去collect表中查询有无收藏过。管理员可在后台进行收藏管理。添加收藏:当游客点击添加收藏按钮时,会提醒:您还没有登录,请先登录!调用iMusicService的queryById接口查询Id,判断收藏的音频不为空。调用iCollectService的queryCount接口,用获取的UserId、MusicId判断用户有无收藏过。如果用户已经存在收藏过,则提示“您已经收藏过该歌曲!”。没有收藏则调用iCollectService的save接口把获取的setUserName、setMusicName放到collect表中。表2-3是添加收藏的逻辑实现。表2-3添加收藏的逻辑实现publicJsonViewDatasave(Longid){ Set<String>fields=Sets.newHashSet("id","name"); Musicmusic=iMusicService.queryById(id,fields); if(BlankUtil.isBlank(music)){ returnsetJsonViewData(ResultCode.FAIL,"传入的歌曲Id有误!"); } Collectcollect=newCollect(); collect.setUserId(getCurrentUser().getId()); collect.setMusicId(music.getId()); if(iCollectService.queryCount(collect)>0){ returnsetJsonViewData(ResultCode.DUPLICATION,"您已经收藏过该歌曲!"); } collect.setUserName(getCurrentUser().getTruename()); collect.setMusicName(music.getName()); booleansuccess=iCollectService.save(collect); returnsuccess?setJsonViewData(ResultCode.SUCCESS):setJsonViewData(ResultCode.FAIL); }图3-3收藏管理实现效果页面管理员成功登录后台,点击收藏管理字体,进入收藏管理页面,页面通过列表列出了所有用户的收藏信息,包括序号、歌曲名称、收藏时间、收藏用户等信息。为方便管理员进行收藏管理,提供了可根据歌曲名称和用户姓名进行搜索,收藏管理实现效果页面如图3-3所示。4.6“音频上传”功能的实现音频上传:首先通过BlankUtil.isBlank判断文件有无上传,获取上传时的文件名,获取文件扩展名(从"."开始,包含"."),获取文件上传的真实路径,在/upload/下存放文件,返回文件访问路径,判断上传文件是否成功,表2-4为音频上传的逻辑实现。表2-4音频上传的逻辑实现publicJsonViewDatauploadImg(@RequestParam("file")MultipartFilefile){ try{ if(BlankUtil.isBlank(file)){ returnsetJsonViewData(ResultCode.PARAM_ERROR,"请提供需要上传的文件!!!"); } StringoriginalFileName=file.getOriginalFilename(); Stringext=originalFileName.substring(originalFileName.indexOf("."),originalFileName.length()); StringnewFileName=BlankUtil.randomUUID()+ext; //获取文件上传的真实路径 StringrootPath=httpRequest.getSession().getServletContext().getRealPath(""); Stringpath="/upload/"+DateUtil.formatCurrentDate("yyyyMMdd"); FiledestFile=newFile(rootPath+path); if(!destFile.exists()){ destFile.mkdirs(); } file.transferTo(newFile(destFile+"/"+newFileName)); returnsetJsonViewData(path+"/"+newFileName); }catch(IllegalStateException|IOExceptione){ e.printStackTrace(); } returnsetJsonViewData(ResultCode.PARAM_ERROR); }图3-4音频上传实现效果界面管理员进入到音频管理页面,点击新增按钮进入到音频上传页面,填写音乐名称、演唱歌手、选择音乐类别、选择MP3文件上传、填写简介、选择图片文件上传,音频上传实现效果页面如图3-4。4.7“榜单”功能的实现一共有3种排行榜:第一种不同类别的排行榜。第二种按照音频发布时间的排行榜。第三种按照点击数排行。均显示音频名称和发布时间。最新榜单:声明set的参数fields、sortSet。IPage分页有10首音频显示,初始化一个大小合适的map集合,调用iMusicService的queryList接口查询歌曲列表,返回一个resultMap集合。按照click_count排序,调用iMusicService的queryList重新查询歌曲列表,返回一个resultMap集合,表2-5是最新榜单的逻辑实现。表2-5最新榜单的逻辑实现publicJsonViewDatanewsestList(){ Set<String>fields=Sets.newHashSet("id","name","create_time"); Set<ISort>sortSet=Sets.newHashSet(newSorter("create_time",false)); IPagepage=newSimplePage(1,10); Map<String,Object>resultMap=Maps.newHashMapWithExpectedSize(2); List<Music>musicList=iMusicService.queryList(null,fields,sortSet,page);resultMap.put("newsestList",musicList);sortSet=Sets.newHashSet(newSorter("click_count",false));musicList=iMusicService.queryList(null,fields,sortSet,page);resultMap.put("hostList",musicList);returnsetJsonViewData(resultMap); }图3-5阅读排行榜单实现效果页面用户在首页可看到阅读排行榜单,榜单显示10首音频和音频上传时间,随便点击其中一首音频,会自动跳转到相应音频页面,阅读排行榜单实现效果页面如图3-5。4.8“音频分类”功能的实现音频类别的管理操作,包括类别信息的新增、编辑、删除操作。管理员进行音频类型信息操作,musictype表中进行相应修改。音频类别列表页面:使用@RequestParam注解,加入默认值。调用iMusicTypeService的queryCount接口获取总类数,声明set的参数sortSet。音频类别数为0返回一个空的List,调用iMusicTypeService的queryList接口,组装分页信息,最后把信息放入model转发到页面把信息带过去。逻辑实现如表2-6所示。表2-6音频分类页面列表的逻辑实现publicModelAndViewcontentList(MusicTypemusicType, @RequestParam(value="pageNo",defaultValue="1")intpageNo){ inttotalCount=iMusicTypeService.queryCount(musicType); Set<ISort>sortSet=Sets.newHashSet(newSorter("create_time",false)); IPagepage=newSimplePage(pageNo,pageSize); List<MusicType>codeList=totalCount==0?Collections.EMPTY_LIST: iMusicTypeService.queryList(musicType,null,sortSet,page); this.createPageVo(pageNo,pageSize,totalCount); ModelAndViewmav=newModelAndView(); mav.addObject("datalist",codeList); mav.setViewName("back/musicType/contextlist"); returnmav; }图3-6音频类别实现效果页面管理员点击音频类别管理字体,进入到对应的页面,该页面通过列表列出已添加的类别信息,包括序号、类别名称、创建时间、更新时间。为了方便管理员编辑修改,页面有提供搜索框,可根据音乐类别名称进行搜索。点击列表的删除按钮,实现类别信息的删除操作。音频类别实现效果页面如图3-6。4.9“搜索”功能的实现搜索功能的实现,前台用户可根据关键字搜索音频,后台管理员可根据需求在管理页面搜索音频,方便操作管理。音频搜索实现:调用iMusicService的queryCount接口查询歌曲列表数,根据create_time进行排序,根据关键字查询,得到结果后显示相应页面,逻辑实现如表2-6所示。表2-6音频搜索页面列表的逻辑实现@RequestMapping(value="/list") publicModelAndViewlist(Musicmusic, @RequestParam(value="pageNo",defaultValue="1")intpageNo){ inttotalCount=iMusicService.queryCount(music); Set<ISort>sortSet=Sets.newHashSet(newSorter("create_time",false)); IPagepage=newSimplePage(pageNo,pageSize); List<Music>musicList=totalCount==0?Collections.EMPTY_LIST: iMusicService.queryList(music,null,sortSet,page); StringBufferparam=newStringBuffer(); if(!BlankUtil.isBlank(music.getName())){ param.append("title="+music.getName()+"&"); } if(!BlankUtil.isBlank(music.getTypeId())){ param.append("typeId="+music.getTypeId()+"&"); } ModelAndViewmav=newModelAndView(); mav.addObject("datalist",musicList); mav.addObject("pageCode",PageUtil.genPagination(httpRequest.getContextPath()+"/music/list.html", totalCount,pageNo,pageSize,param.toString())); mav.addObject("pageTitle","音频库-HHS音频网"); mav.setViewName("fore/music/index"); returnmav; }图3-6音频搜索实现效果页面用户在导航栏最右边输入关键字搜索音频,按照关键字显示对应音频,搜索音频实现效果页面如图3-6。

第五章音频分享平台测试5.1测试的目的及原则为了能更好的来使用音频分享平台,要对网站里的每一个模块进行一个相应的测试,测试的目的是为了及时发现系统中的隐藏缺陷,分析缺陷产生的原因,并找到对症下药的方式来补偿,为此该系统也达到了相对稳定状态,减少了失误,尽可能减少不必要的经济损失。黑盒测试偏重测试软件的功能需求,考虑到时间因素,音频分享平台以黑盒测试作为主要测试方法。5.2测试环境系统:微软window10:设备:DellInspiron7460服务器:ApacheTomcat7浏览器:IE浏览器和360浏览器5.3测试用例黑盒测试以用户的角度,是在程序连接上进行的测试。各个模块测试用例如下:测试管理员登录功能用例编号用例名称测试功能操作预期效果结果1管理员登录测试检测音频分享平台的管理员是否能正常登录。输入:账号:HHS;密码:123456点击登录。启动了音频平台,并且登录成功,跳转到后台管理主窗体。成功(2)测试用户注册功能用例编号用例名称测试功能操作预期效果结果1用户注册测试检测音频分享平台游客是否能正常注册为普通用户。填写用户名,真实姓名、联系邮箱、密码,确认密码等个人信息。注册成功成功(3)测试收藏功能用例编号用例名称测试功能操作预期效果结果1收藏测试检测普通用户音频能否收藏音频。点击添加收藏按钮,在我的收藏页面看到收藏的音频。收藏成功成功(4)测试榜单功能用例编号用例名称测试功能操作预期效果结果1最新榜单测试检测上传音频后能否出现在最新榜单。上传音频,回到首页,看到音频出现在榜单上。上传成功成功(5)音频模块测试用例用例编号用例名称测试功能操作预期效果结果1音频模块上传音频测试用管理员身份是否可以正常上传音频。进入后台管理界面,点击音频管理的新增按钮进入页面,按步骤上传音频,点击上传。返回音频管理界面看到刚才上传的音频。成功(6)音频分类测试用例用例编号用例名称测试功能操作预期效果结果1音频分类测试能否新增音频分类。使用管理员身份进入分类管理页面,点击新增,在弹窗写上新增音频分类。分类管理页面显示刚才新增的音频分类。成功(7)音频搜索测试用例用例编号用例名称测试功能操作预期效果结果1搜索音频名称内容测试搜索音频姓名、作者内包含的内容是否能搜索到对应的音频。在搜索栏输入小王子后点击搜索。显示小王子的音频介绍。成功5.4测试报告本次运用了黑盒测试方法,测试音频分享平台的各个功能和页面是否存在问题,得到了以下测试报告。(1)音频分享平台页面风格简约,字体符合规范;能够正确的接收输入数据并且输出正确的结果;(2)可用性测试中平台操作方便,用户管理界面友好,目前无出现bug;(3)功能测试用例中登录功能正常、注册功能正常、播放音频功能正常、收藏功能正常、发表音频功能正常、修改功能正常等功能均正常;(4)音频分享平台所有的链接按指示确实链接到指定页面;链接的页面都存在,没有空链接;没有孤立的页面,平台上没有死链接。

第六章总结与展望本文主要研究了基于SSM框架的音频分享平台的设计与实现。在进行开发设计前,首先对音频分享平台和SSM技术的现状进行研究分析,完成技术选择。接着分析音频分享平台的功能需求、可行性需求和数据需求分析。重点研究并设计音频分享平台的功能架构和平台功能的实现。本文第一章主要介绍了音频分享平台的研究背景及平台和SSM技术的现状。第二章主要针对音频分享平台的需求进行分析。在这次的系统开发前期,在网上查阅了大量的与音频网站设计与实现有关的信息,观察了其他发展成熟音频网站的运行管理模式,并进行了实际的操作,切实了解音频

温馨提示

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

评论

0/150

提交评论