您的当前位置:首页基于SSM框架的音频分享网站的设计与实现-毕业论文

基于SSM框架的音频分享网站的设计与实现-毕业论文

来源:锐游网


---文档均为word文档,下载后可直接编辑使用亦可打印---

摘 要

在信息时代飞速发展的今天,人们获取信息的方式基本来源于互联网。互联网在人们娱乐生活上发挥着重要作用。传统的音乐网站大同小异,已经无法满足所有人的需要。基于SSM框架的音频分享平台可以让不同年龄层的人享受音频所带来的快乐,让人们学习生活两不误。

音频分享平台项目使用了SSM框架开发,采用了JAVA编程语言,开发工具采用Eclipse,数据库采用MySql。用户可播放收藏搜索音频,后台的音频分类,收藏分类,音频类别分类简洁明了,管理员可通过搜索快速进行增删改操作。

本文对音频分享平台前期的目的背景,具体的需求分析进行了研究,讲述了音频分享平台的总体设计,利用了表格和思维导图详细分析音频分享平台的功能,列出数据库的数据表和测试用例及测试结果。最后,音频分享平台开发与设计已完成。

关键词: 音频分享 SSM框架 JAVA

Abstract

With the rapid development of the information age, the way people get information is basically from the Internet. The Internet plays an important role in people's entertainment. Traditional music websites are much the same and no longer meet everyone's needs. The audio sharing platform based on SSM framework can let people of different ages enjoy the happiness brought by audio, and let people learn and live at the same time.

The audio sharing platform project was developed using SSM framework, JAVA programming language, Eclipse development tool and MySql database. Users can play favorite search audio, background audio classification, collection classification, audio category classification is simple and clear, the administrator can quickly through the search operation.

In this paper, the purpose of the early development of audio website, the specific needs of the analysis of the research, the audio platform overall design, the use of tables and mind map detailed analysis of the audio website function, the database data table and test cases and test results. Finally, the website development and design have been completed.

Key words:Audio sharing SSM framework JAVA

目录

第一章 绪论 .............................................................................................. 1 1.1 研究背景及意义 ............................................................................. 1 1.2 研究现状 ......................................................................................... 2 1.2.1音频分享平台研究现状 ............................................................. 2 1.2.2 SSM技术研究现状 .................................................................... 2 1.3 研究内容 ......................................................................................... 2 1.4 章节安排 ......................................................................................... 3 第二章 音频分享平台需求分析 .............................................................. 4 2.1 平台需求分析 ................................................................................. 4 2.1.1功能需求分析 ............................................................................. 4 2.1.2可行性需求分析 ......................................................................... 5 2.2 数据需求分析 ................................................................................. 5 第三章 音频分享平台设计 ...................................................................... 6 3.1 平台总体设计 ................................................................................. 6 3.1.1平台总体架构设计 ..................................................................... 6 3.1.2平台功能结构设计 ..................................................................... 7 3.2 平台功能模块设计 ......................................................................... 7 3.2.1榜单管理 ..................................................................................... 7 3.2.2音频管理 ..................................................................................... 8 3.2.3分类管理 ..................................................................................... 8 3.2.4音频搜索 ..................................................................................... 8 3.2.5收藏管理 ..................................................................................... 8

3.2.6登录管理 ..................................................................................... 8 3.2.7注册管理 ..................................................................................... 8 3.3 数据库设计 ..................................................................................... 8 第四章 音频分享平台实现 .................................................................... 10 4.1 相关技术 ....................................................................................... 10 4.1.1 SSM框架 .................................................................................. 10 4.1.2 Bootstrap框架 ........................................................................... 10 4.1.3 MySQL数据库 ......................................................................... 10 4.2 数据库实现 ................................................................................... 10 4.3 “登录”功能的实现 ......................................................................... 13 4.4 “注册”功能的实现 ......................................................................... 14 4.5 “收藏”功能的实现 ......................................................................... 15 4.6 “音频上传”功能的实现 ................................................................. 17 4.7 “榜单”功能的实现 ......................................................................... 18 4.8 “音频分类”功能的实现 ................................................................. 19 4.9 “搜索”功能的实现 ......................................................................... 20 第五章 音频分享平台测试 .................................................................... 22 5.1 测试的目的及原则 ....................................................................... 22 5.2 测试环境 ....................................................................................... 22 5.3 测试用例 ....................................................................................... 22 5.4 测试报告 ....................................................................................... 24 第六章 总结与展望 ................................................................................ 25 参考文献 .................................................................................................. 26

第一章 绪论

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.2 SSM技术研究现状

目前,国内外有很多的Web开发技术,其中应用最广泛的两类技术分别是微软(Microsoft) 公司的.Net平台和 Sun及IBM等公司提出的J2EE平台;J2EE 主要面向使用 JAVA 程序设计语言进行基于Web的企业应用的开发部署[5]。J2EE 平台相较于.Net 平台是开放的、跨平台的、可移植的,因此很多企业都选择 J2EE 平台的结构设计和解决方案;传统的J2EE 以 EJB(Enterprise JavaBean) 容器为核心,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.1 SSM框架

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.2 Bootstrap框架

Bootstrap就是一个已经写好了HTML和CSS的样式组合,是一个容易上手、用于快速开发Web应用程序和网站的前端框架。Bootstrap可以在所有的主流浏览器上运行,而且Bootstrap 的响应式 CSS 能够自动适应于台式电脑、笔记本和手机等应用。方便音频分享网站页面在不同平台上的自动切换。在用户使用体验来说,出自大公司Twitter,做到了完全开源,减少用户测试的工作量。Bootstrap框架中,各种命名都统一化和规范化,减少管理员日后的维护工作。网站页面风格统一,画面和谐。

4.1.3 MySql数据库

MySql是一种关系型数据库,将关联数据保存在不同的数据库表中,而不是全都挤在一起,提高了反应速度。目前来说网站程序使用MySql数据库较多,MySql可以与JAVA开发语言完美配合,对于新手开发者,MySql数据库的免费开源、体积小、连接速度快的特点打动了新手开发者的内心,是一个适合降低音频分享平台开发成本的数据库。

4.2 数据库实现

1、页面(authority)表

页面表主要用于保存各种页面的基本信息,其属性有用户编号(id)、页面名称(name)、菜单序列号(menu_href)、菜单位置(menu_position)、序列号(serial_number),该表结构如表3-1所示。

表3-1 authority 字段名称 id name serial_number menu_href menu_position 数据类型 bigint varchar int varchar varchar 长度 20 64 11 128 8 可否为空 否 否 否 否 否 描述 自动编号 用户名 序列号 菜单序列号 菜单位置 2、收藏(collect)表

收藏表主要用于保存关于收藏功能的所有信息,其属性有:用户编号(id)、用户收藏的音频名(musuc_name)、收藏用户id(user_id)、用户名(user_name),收藏时间(creat_time)、收藏的音频id(music_id),该表结构如表 3-2所示。

表3-2 collect

字段名称 id user_id user_name music_id musuc_name creat_time 数据类型 bigint bigint varchar bigint varchar datetime 长度 20 20 16 20 32 可否为空 否 否 否 否 否 否 描述 自动编号 收藏用户id 收藏用户名 收藏的音频id 收藏是音频名 收藏时间 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-3 music

字段名称 id name file_path creat_time cover_img author 数据类型 bigint varchar varchar datetime varchar varchar 长度 20 32 64 64 32 可否为空 否 否 否 否 否 否 描述 自动编号 音频名称 文件路径 创建时间 图片路径 作者

click_count play_count type_id remark update_time summary int int bigint text datetime varchar 11 11 20 128 否 否 否 否 是 否 点击数 播放次数 类型id 评论 更新时间 简介 4、音频类别信息(musictype)表

音频类别信息表主要用于保存音频的类别信息,其属性有:用户编号(id)、音频类型名称(name)、创建时间(creat_time)、更新时间(update_time),该表结构如表3-4所示。

表3-4 musictype

字段名称 id name creat_time update_time 数据类型 bigint varchar datetime datetime 长度 20 116 可否为空 否 否 否 是 描述 自动编号 音频类型名称 创建时间 更新时间 5、用户播放记录(record)表

用户播放记录表主要用于用户播放音频的所有信息,其属性有:用户编号(id)、姓名id(user_id)、姓名(user_name)、创建时间(creat_time)、音频id(music_id)、音频名称(music_name)、播放次数(play_count),该表结构如表3-5所示。

表3-5 record 字段名称 id user_id user_name music_id music_name play_count creat_time 数据类型 bigint bigint varchar datetime varchar int datetime 长度 20 20 16 20 32 11 可否为空 否 否 否 否 否 否 否 描述 自动编号 姓名id 姓名 音频id 音频名称 播放次数 创建时间 6、角色(role)表

角色表主要用于保存管理员和普通用户的所有信息,其属性有:用户编号(id)、创建时间(creat_time)、用户名(name),该表结构如表3-6所示。

表3-6 role

字段名称 id name creat_time 数据类型 bigint varchar datetime 长度 20 32 可否为空 否 否 否 描述 自动编号 用户名 创建时间 7、用户信息(user)表

用户信息表主要用于保存注册的用户信息,其属性有:用户编号(id)、用户名(username)、创建时间(creat_time)、登录密码(password)、真实姓名(truename)、邮件信息(email)、更新时间(update_time)、用户类型(role_id),该表结构如表3-7所示。

表3-7 user 字段名称 id username password truename create_time update_time email user_type role_id authority_ids 数据类型 bigint varchar varchar varchar datetime datetime varchar varchar bigint varchar 长度 20 32 64 16 32 8 20 16 可否为空 否 否 否 否 否 是 否 否 否 否 描述 自动编号 用户名 密码 真实姓名 创建时间 更新时间 邮件 用户类型 类型id

4.3“登录”功能的实现

点击登录的时候系统会完成以下操作:去数据库的user表里查是否有该用户,判断用户的账号、密码、用户类型是否匹配,如果账号、密码和用户类型都正确,则跳转到首页。如果账号密码有错误,则会提示:用户名/密码有误!用户登录的逻辑实现如表2-1 。

调用IUserService的saveOrUpdate接口,换取用户标识User,并匹配Username、

RoleId、password,代码如下表。

表2-1用户登录的逻辑实现 public JsonViewData login(User user){ User tempUser = new User(); tempUser.setUsername(user.getUsername()); tempUser.setRoleId(user.getRoleId()); if (iUserService.queryCount(tempUser) == 0) {

return setJsonViewData(ResultCode.FAIL, \"用户名/用户类型有误!\"); } Subject subject = SecurityUtils.getSubject(); UsernamePasswordToken token = new UsernamePasswordToken(user.getUsername(), CryptographyUtil.md5(user.getPassword(), CryptographyUtil.SALT)); try { // 登录验证 subject.login(token); MapresultMap=Maps.newHashMapWithExpectedSize(1); resultMap.put(\"userType\ return setJsonViewData(resultMap); } catch (Exception e) { return setJsonViewData(ResultCode.FAIL, \"用户名/密码有误!\"); } }

图3-1 登录实现效果页面

用户点击登录后跳转到登录页面,填写姓名密码,选择用户类型,成功登录后跳转到首页,登录实现效果页面如图3-1。

4.4“注册”功能的实现

当进行注册操作时,需要用户输入账号密码邮箱真实姓名,点击注册后,会调用Springboot的Controller对应到的映射地址进行注册操作,这个操作实际上会去数据库查询用户是否存在,如果用户已经存在则提示已经存在;如果用户不存在则会创建这个用户,并且将进行刚创建用户设置为已登录状态并且跳转到首页的操作。

游客注册账号,将user对象的RoleId、UserType、AuthorityIds、Password添加到数据库中,注册成功就调用iUserService的saveOrUpdate接口存放新增用户信息,如表2-2。

表 2-2游客注册的逻辑实现 public JsonViewData register(User user){ user.setRoleId(USER_TYPE_C_ID); user.setUserType(USER_TYPE_C); user.setAuthorityIds(DEFAULT_AUTHORITY_IDS); user.setPassword(CryptographyUtil.md5(user.getPassword(), CryptographyUtil.SALT)); boolean success = iUserService.saveOrUpdate(user); return success ? 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添加收藏的逻辑实现

public JsonViewData save(Long id){ Set fields = Sets.newHashSet(\"id\ Music music = iMusicService.queryById(id, fields); if (BlankUtil.isBlank(music)) { return setJsonViewData(ResultCode.FAIL, \"传入的歌曲Id有误!\"); } Collect collect = new Collect(); collect.setUserId(getCurrentUser().getId()); collect.setMusicId(music.getId()); if (iCollectService.queryCount(collect) > 0) { return setJsonViewData(ResultCode.DUPLICATION, \"您已经收藏过该歌曲!\"); } collect.setUserName(getCurrentUser().getTruename()); collect.setMusicName(music.getName()); boolean success = iCollectService.save(collect); return success ? setJsonViewData(ResultCode.SUCCESS) : setJsonViewData(ResultCode.FAIL); }

图3-3 收藏管理实现效果页面

管理员成功登录后台,点击收藏管理字体,进入收藏管理页面,页面通过列表列出了所有用户的收藏信息,包括序号、歌曲名称、收藏时间、收藏用户等信息。为方便管理员进行收藏管理,提供了可根据歌曲名称和用户姓名进行搜索,收藏管理实现效果页面如图3-3所示。

4.6“音频上传”功能的实现

音频上传:首先通过BlankUtil.isBlank判断文件有无上传,获取上传时的文件名,获取文件扩展名(从\".\"开始,包含\".\"),获取文件上传的真实路径,在/upload/下存放文件,返回文件访问路径,判断上传文件是否成功,表2-4为音频上传的逻辑实现。

表2-4音频上传的逻辑实现

public JsonViewData uploadImg(@RequestParam(\"file\") MultipartFile file){ try { if (BlankUtil.isBlank(file)) { return setJsonViewData(ResultCode.PARAM_ERROR, \"请提供需要上传的文件!!!\"); } String originalFileName = file.getOriginalFilename(); String ext = originalFileName.substring(originalFileName.indexOf(\".\"), originalFileName.length()); String newFileName = BlankUtil.randomUUID() + ext; // 获取文件上传的真实路径 String rootPath = httpRequest.getSession().getServletContext().getRealPath(\"\"); String path = \"/upload/\" + DateUtil.formatCurrentDate(\"yyyyMMdd\"); File destFile = new File(rootPath + path); if (!destFile.exists()) { destFile.mkdirs(); } file.transferTo(new File(destFile + \"/\" + newFileName)); return setJsonViewData(path + \"/\" + newFileName); } catch (IllegalStateException | IOException e) { e.printStackTrace(); } return setJsonViewData(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最新榜单的逻辑实现 public JsonViewData newsestList(){ Set fields = Sets.newHashSet(\"id\ Set sortSet = Sets.newHashSet(new Sorter(\"create_time\ IPage page = new SimplePage(1, 10); Map resultMap = Maps.newHashMapWithExpectedSize(2); List musicList = iMusicService.queryList(null, fields, sortSet, page); resultMap.put(\"newsestList\ sortSet = Sets.newHashSet(new Sorter(\"click_count\ musicList = iMusicService.queryList(null, fields, sortSet, page); resultMap.put(\"hostList\

return setJsonViewData(resultMap); }

图3-5 阅读排行榜单实现效果页面

用户在首页可看到阅读排行榜单,榜单显示10首音频和音频上传时间,随便点击其中一首音频,会自动跳转到相应音频页面,阅读排行榜单实现效果页面如图3-5。

4.8“音频分类”功能的实现

音频类别的管理操作,包括类别信息的新增、编辑、删除操作。管理员进行音频类型信息操作,musictype表中进行相应修改。

音频类别列表页面:使用@RequestParam注解,加入默认值。调用iMusicTypeService的queryCount接口获取总类数,声明set的参数sortSet。音频类别数为0返回一个空的List,调用iMusicTypeService的queryList接口,组装分页信息,最后把信息放入model转发到页面把信息带过去。逻辑实现如表2-6所示。

表2-6音频分类页面列表的逻辑实现 public ModelAndView contentList(MusicType musicType,

@RequestParam(value = \"pageNo\ int totalCount = iMusicTypeService.queryCount(musicType); Set sortSet = Sets.newHashSet(new Sorter(\"create_time\ IPage page = new SimplePage(pageNo, pageSize); List codeList = totalCount == 0 ? Collections.EMPTY_LIST :

} iMusicTypeService.queryList(musicType, null, sortSet, page); this.createPageVo(pageNo, pageSize, totalCount); ModelAndView mav = new ModelAndView(); mav.addObject(\"datalist\ mav.setViewName(\"back/musicType/contextlist\"); return mav;

图3-6 音频类别实现效果页面

管理员点击音频类别管理字体,进入到对应的页面,该页面通过列表列出已添加的类别信息,包括序号、类别名称、创建时间、更新时间。为了方便管理员编辑修改,页面有提供搜索框,可根据音乐类别名称进行搜索。点击列表的删除按钮,实现类别信息的删除操作。音频类别实现效果页面如图3-6。

4.9“搜索”功能的实现

搜索功能的实现,前台用户可根据关键字搜索音频,后台管理员可根据需求在管理页面搜索音频,方便操作管理。

音频搜索实现:调用iMusicService的queryCount接口查询歌曲列表数,根据create_time进行排序,根据关键字查询,得到结果后显示相应页面,逻辑实现如表2-6所示。

表2-6音频搜索页面列表的逻辑实现 @RequestMapping(value = \"/list\")

public ModelAndView list(Music music, @RequestParam(value = \"pageNo\ int totalCount = iMusicService.queryCount(music); Set sortSet = Sets.newHashSet(new Sorter(\"create_time\ IPage page = new SimplePage(pageNo, pageSize); List musicList = totalCount == 0 ? Collections.EMPTY_LIST :

iMusicService.queryList(music, null, sortSet, page); StringBuffer param = new StringBuffer(); if (!BlankUtil.isBlank(music.getName())) { } if (!BlankUtil.isBlank(music.getTypeId())) { } ModelAndView mav = new ModelAndView(); mav.addObject(\"datalist\ mav.addObject(\"pageCode\param.append(\"typeId=\" + music.getTypeId() + \"&\"); param.append(\"title=\" + music.getName() + \"&\"); PageUtil.genPagination(httpRequest.getContextPath() + \"/music/list.html\ } totalCount, pageNo, pageSize, param.toString())); mav.addObject(\"pageTitle\音频库-HHS音频网\"); mav.setViewName(\"fore/music/index\"); return mav;

图3-6 音频搜索实现效果页面

用户在导航栏最右边输入关键字搜索音频,按照关键字显示对应音频,搜索音频实现效果页面如图3-6。

第五章 音频分享平台测试

5.1 测试的目的及原则

为了能更好的来使用音频分享平台,要对网站里的每一个模块进行一个相应的测试,测试的目的是为了及时发现系统中的隐藏缺陷,分析缺陷产生的原因,并找到对症下药的方式来补偿,为此该系统也达到了相对稳定状态,减少了失误,尽可能减少不必要的经济损失。

黑盒测试偏重测试软件的功能需求,考虑到时间因素,音频分享平台以黑盒测试作为主要测试方法。

5.2 测试环境

系统:微软window10: 设备:Dell Inspiron 7460 服务器:Apache Tomcat7 浏览器:IE浏览器和360浏览器

5.3 测试用例

黑盒测试以用户的角度,是在程序连接上进行的测试。各个模块测试用例如下:

(1) 测试管理员登录功能 用例编号 1 用例名称 管理员登录测试 测试功能 检测音频分享平台的管理员是否能正常登录。

(2)测试用户注册功能 用例编号 1 用例名称 用户注册测试 测试功能 检测音频分享平台游客是否能正常注册为普通用户。 操作 填写用户名,真实姓名、联系邮箱、密码,确认密码等个人信息。 预期效果 注册成功 结果 成功 操作 输入:账号:HHS ;密码:123456点击登录。 预期效果 启动了音频平台,并且登录成功,跳转到后台管理主窗体。 结果 成功

(3)测试收藏功能 用例编号 1 用例名称 测试功能 音频能否收藏音频。 操作 点击添加收藏按钮,在我的收藏页面看到收藏的音频。

(4)测试榜单功能 用例编号 1 用例名称 最新榜单测试 测试功能 检测上传音频后能否出现在最新榜单。

(5)音频模块测试用例 用例编号 1 用例名称 音频模块测试功能 测试用管理员正常上传音频。 操作 进入后台管理界面,点击音频管理的新增按钮进入页面,按步骤上传音频,点击上传。

(6)音频分类测试用例 用例编号 1 用例名称 测试功能 音频分类。 操作 使用管理员身份进入分类管理页面,点击新增,在弹窗写上新增音频

预期效果 收藏成功 结果 成功 收藏测试 检测普通用户操作 上传音频,回到首页,看到音频出现在榜单上。 预期效果 上传成功 结果 成功 预期效果 返回音频管理界面看到刚才上传的音频。 结果 成功 上传音频 身份是否可以预期效果 分类管理页面显示刚才新增的音频分类。 结果 成功 音频分类 测试能否新增

分类。

(7)音频搜索测试用例 用例编号 1 用例名称 搜索音频名称内容测试 测试功能 搜索音频姓名、作者内包含的内容是否能搜索到对应的音频。

操作 在搜索栏输入小王子后点击搜索。 预期效果 显示小王子的音频介绍。 结果 成功 5.4 测试报告

本次运用了黑盒测试方法,测试音频分享平台的各个功能和页面是否存在问题,得到了以下测试报告。

(1)音频分享平台页面风格简约,字体符合规范;能够正确的接收输入数据并且输出正确的结果;

(2)可用性测试中平台操作方便,用户管理界面友好,目前无出现bug; (3)功能测试用例中登录功能正常、注册功能正常、播放音频功能正常、收藏功能正常、发表音频功能正常、修改功能正常等功能均正常;

(4)音频分享平台所有的链接按指示确实链接到指定页面;链接的页面都存在,没有空链接;没有孤立的页面,平台上没有死链接。

第六章 总结与展望

本文主要研究了基于SSM框架的音频分享平台的设计与实现。在进行开发设计前,首先对音频分享平台和SSM技术的现状进行研究分析,完成技术选择。接着分析音频分享平台的功能需求、可行性需求和数据需求分析。重点研究并设计音频分享平台的功能架构和平台功能的实现。

本文第一章主要介绍了音频分享平台的研究背景及平台和SSM技术的现状。第二章主要针对音频分享平台的需求进行分析。在这次的系统开发前期,在网上查阅了大量的与音频网站设计与实现有关的信息,观察了其他发展成熟音频网站的运行管理模式,并进行了实际的操作,切实了解音频网站的用户市场需求。经过反复修改,最终确定了系统的功能。

本文第三章是音频分享平台的设计部分,设计了平台总体框架是B/S结构,概述了平台功能结构和数据库的设计,具体说明了每个功能模块的设计。第四章和第五章讲述了平台的实现与测试,得出结论是系统功能比较全面,具有较强的安全性。

历时三个多月的设计和开发,音频分享平台开发完毕。系统包含了音频的收藏、上传、搜索,能够满足用户的基本需求。后台管理的设计主要实现对系统各个功能的管理,对数据库的数据进行维护和管理。目前音频分享平台还有需要不断完善的地方,总的来说有以下几点不足:系统界面相对简单,单调,功能较少。因为系统还处于初级阶段,所以音频的种类数量不全。

从总体来说,音频分享平台按照了用户需求来开发,基本功能齐全,实用性高,页面简洁大方,开发成本低,因此基于SSM框架的音频分享平台的设计与实现达到了研究效果。

参考文献

[1] 吴超, 张尧学, 周悦芝, et al. 信息中心网络发展研究综述[J]. 计算机学报, 2015,

38(3):455-471. [2] 赵亮. 网络发展与人的思维方式变迁研究[D]. 河南师范大学, 2012.

[3] 姚琦, 易柯. 网络音乐的现状分析%Analysis of Network Music[J]. 音乐探索, 2005,

000(004):47-50. [4] 陈贝蕾. 喜马拉雅FM:知识网红孵化地[J]. 中国企业家, 2018, No.548(12):93-95. [5] 冯博,朱穗晖. 程序设计教程[M].北京:清华大学出版社,2005.

[6] Amstrong E,Ball S,Bodoff S,et al.The J2EE 1.4 tutorial[M].[s.l.]:Sun Micro

Systems Inc.,2005:2-25

[7] 李洋.SSM 框架在 Web 应用开发中的设计与实现 [J].计算机技术与发展,2016(12):190-194,共 5 页.

[8] 吴小青. JSP+TOMCAT+MYSQL 开源软件整合配置初探——以揭阳职业技术学院图书

馆网 站服务器配置为例[J]. 齐齐哈尔大学学报:自然科学版,2012,28(4).

[9] 盛婷婷.基于 HTML5 技术的移动 Web 前端设计与开发分析[J].电子制作,2016(10):46-47,75 共 3 页.

[10] 孙光福,吴乐,刘淇,et al.基于时序行为的协同过滤推荐算法[J].软件学报,2013(11):2721-2733.

[11] 史橹,吴毅坚,赵文耘. JAVAScript 代码分析技术综述[J].计算机应用与软件,2018,

35(11):22-31+38.

[12] 舒后,熊一帆,葛雪娇. 基于 Bootstrap 框架的响应式网页设计与实现[J].北京印刷学院

学报,2016,24(2):47-52.

[13] 刘昊,李民. 基于SSM 框架的客户管理系统设计与实现[J].软件导刊,2017(07):90-92. [14] 车元媛.基于DIV+CSS 的网页布局技术应用[J].电脑知识与技术,2011(09):61-62+65. [15] 贺雪梅.web 应用开发中的SSM 框架设计[J].电子世界,2019,559(01):208.

[16] 李淼,杜明晶,苗放. 网页设计中 Bootstrap CSS 框架的应用与拓展[J]. 电子技术与软

件工程,2013(17):222-223.

[17] 邹红霆.基于SSM 框架的Web 系统研究与应用[J].湖南理工学院学报(自然科学版),

2017(1).

[18] 刘晶. 移动音频APP\\\"喜马拉雅FM\\\"研究[J]. 传媒论坛, 2019, 002(001):37,39.

[19] Cay S.Horstmann. 《JAVA核心技术 卷I:基础知识》[M]. 机械工业出版社 2016年9

月1日

[20] 明日科技. 《MySQL从入门到精通》[M]. 清华大学出版社 2017年8月1日

[21] 赵静宇. 数据库设计规范化的理论研究与应用[J]. 电子技术与软件工程,2013(21):208-208.

[22] 高原. 服务器端JAVAscript技术研究[J]. 信息与电脑(理论版), 2012(1):78-78. [23] 李刚.轻量级JAVAEE企业应用实战第4版[M].北京:电子工业出版社,2015. [24] 赵江声 .Blueprint CSS 框架初探 [J]. 福建电脑 ,2010(02).

[25] 李世满 . 基于 HTML5 web 技术 App 快速开发研究 -- 以移动办公 App 软件开发为

蓝本 [J]. 电脑知识与技术,2016,12(03):81-82.

[26] 刘增辉. 《MyBatis从入门到精通》[M]. 电子工业出版社 2017年7月1日 [27] Craig Walls. 《Spring Boot实战》[M]. 人民邮电出版社 2016年9月1日 [28] 胡静. 浅析黑盒测试与白盒测试[J]. 衡水学院学报, 2008, 10(1).

[29] 袁瑞铭, 巨汉基, 汪萍萍,等. 基于黑盒测试技术的智能电能表软件测试方法研究[J]. 电

测与仪表, 2017, 55(22).

[30] 王晓娟, 白妞. 媒介融合背景下自媒体网络电台的生存现状与发展空间——以喜马拉雅、

蜻蜓、荔枝FM等为例[J]. 视听, 2016(11).

因篇幅问题不能全部显示,请点此查看更多更全内容

Top