基于JSP的音乐网站的设计与实现【附源码】

     基于JSP的音乐网站的设计与实现

摘 要

随着互联网和宽带上网的普及,网络传输以其特有的快速、高效、便捷的传输方式越来越被人们接受。在当今社会的影响下,人们因为快节奏的工作和生活产生了极大的压力,这时就需要一个放松的环境去释放这些压力,因此音乐网站也就应运而生了。与此同时,音乐网站也为广大音乐爱好者提供了一个音乐交流的平台,借此增加对音乐的了解。

音乐网站系统以Struts2为框架进行开发,以JSP作为页面载体,后台数据库使用Mysql,在Windows环境下使用MyEclipse开发工具进行开发,采用Ajax和Jqury技术,使得系统更易维护。前台主要实现了用户的登陆注册、音乐的上传、试听点歌、发送短消息、音乐下载以及对音乐进行留言等功能;后台主要用于对数据库的管理,实现管理员对音乐的删除、对注册过的用户进行删除、添加友情链接等功能。

关键词:音乐网站; Struts2框架; Mysql数据库

Music website design and implementation based on JSP

Abstract

With the popularity of the Internet and broadband Internet access, network transmission by its unique rapid, efficient and convenient transport more and more accepted by people. Under the influence of today's society, people as fast-paced work and lives of great pressure, then you need a relaxed environment to release the pressure, so the music website also came into being. At the same time, music website also for the vast number of music lovers provides a platform for the communication of music, to increase the understanding of music.

Music website system with Struts2 as a framework for development, to the JSP page as the carrier, using Mysql backend database, using the MyEclipse development tools under Windows environment for development, using Ajax and Jqury technology, makes the system easier to maintain. Front achieved a major user of land registration, upload music, audition song, send short messages, music downloads and music messages to other functions; background is mainly used to manage the database, the realization of the administrator of the deletion of the music, to the registered user to delete, and other functions.

Keywords: Music Website ;Struts2 Framework ;The Mysql database

目 录

1 绪论 1

1.1 课题研究的目的 1

1.2 课题研究意义 1

1.3国内外现状 2

2系统环境概述 3

2.1 开发工具和服务器介绍 3

2.1.1 MySQL简介 3

2.1.2 MyEclipse开发平台 3

2.1.3 Tomcat服务器 4

2.2 开发技术介绍 4

2.2.1 Java编程语言简介 4

2.2.2 JSP技术 5

2.2.3 Struts2框架技术 5

2.2.4 MVC分层结构 6

2.2.5 Ajax和Jquery技术 7

3 详细设计 8

3.1 性能分析 8

3.2 功能分析 8

3.3 系统架构 9

3.4 系统登录流程 10

3.5 系统功能设计 11

3.5.1 前台功能设计 11

3.5.2 后台功能设计 12

3.5.3 系统用例分析 12

3.6 数据库设计 13

3.6.1 E-R关系图 13

3.6.2 数据表设计 16

4 系统实现 19

4.1 用户注册 19

4.2 首页 19

4.3 音乐盒 24

4.4 短消息 25

4.5 分享音乐 26

4.6 播放列表 26

4.7 后台管理 27

5 系统测试 29

5.1 系统测试的目的 29

5.2 测试用例和测试结果 29

5.2.1 测试用例 29

5.2.2 测试结果 30

6 总结 32

致谢 33

参考文献 34

1 绪 论

随着网络技术以及计算机的发展,人们也逐步进入到计算机网络这个范围中,人们通过Internet相互交流和沟通。因此不同的网站也应运而生了,例如音乐网站、娱乐网站、聊天网站等等,正因为在这样的一个信息化的网络时代,音乐更是随处可在。这就表明了,音乐网站要想有一个好的前景就必须用新的网络技术去支持,不断提升网络的宽带质量,更要提升音乐的试听、下载速度。

1.1 课题研究的目的

随着计算机网络技术的发展,音乐网站系统正逐渐的渗透到各个领域,网络化和信息化的发展也促进了Web网页应用和技术的快速发展。音乐网站正是在这样的前提下而产生的,人们通过互联网给日常生活增添了很大的乐趣,让人们在工作之后可以进行休闲的娱乐。

因为宽带用户的增加,带动了音乐网站产业的蓬勃兴起。无论国内还是国外,音乐网站市场都呈现一派生气,近年来,全球数字娱乐业持续发展。网络传播以其特有的快速、高效、便捷的传输方式被人们所接受,越来越多的走进了大家。并 且在当今音乐浪潮的影响下,随着音乐事业逐渐走向高峰,音乐已无处不在,音乐己与我们密不可分。全球数字娱乐业的迅猛发展、网络电视等,无不充斥着激烈的竞争。音乐网站在这种背景下逐渐发展起来。音乐网站改变了传统音乐产业的产业结构。而现在许多音乐网站不能提供在线播放,并且在技术支持上也不完善。于是设计和实现这样一个音乐网站就成为了必须,不仅仅满足用户的可以试听音乐的功能,而且还要保证在速度上不能慢,更要在功能和性能上满足用户更多的体验和需求。

1.2 课题研究意义

随着网络通信技术、多媒体技术及数据存储技术的快速发展,音乐网站作为一种大众的Web服务,给喜爱音乐的网络用户提供了极大的便利,增添了音乐用户的选择。但有一些音乐网站由于各种不同的原因遭到了社会的淘汰,其原因主要集中在页面设计、查询浏览的速度、功能模块等不同方面。因此,为了用户可以方便、快捷、简单、安全地实现音乐搜索去查找自己喜欢的音乐,并能实时地试听音乐、下载音乐、将音乐加入到自己的音乐盒中、点歌并将自己的建议写入到留言板以便网站的完善等,需要建立一个自由、安全的音乐网站。

本音乐网站应用MVC模式进行设计开发。通过对网站有关音乐媒体发布事项的一番调查与分析,在用户对音乐需求的基础上,明确音乐网站系统需要实现的具体功能并实现其功能。

1.3国内外现状

2005年9月2日,全球最大的零售商沃尔玛公司表示将与微软公司正式合作,开设一家新的网络音乐下载商店。从该网络音乐下载商店下载的音乐能够在微软的媒体播放器上播放。无疑,沃尔玛的加入,将会是国际音乐网站市场的又一有力的角逐者。现如今,国际音乐网站市场上已经有IPod、 Microsoft、Sony、 Napster.、eBay、 Real Networks等几位实力相当雄厚的集团竞争,发展势头如日中天。也是音乐网站市场的领跑者。然而,由于国际上苹果模式的冲击,以及版权问题,中国音乐网站市场陷入了发展的低谷期,歩履蹒跚。

中国的音乐市场在前几年发展相对缓慢。据艾瑞咨询最新发布的《2007年中国音乐网站研究报告》研究显示,盗版和免费盛行严重影响着中国音乐网站市场的发展,2007年中国音乐网站产业与传统唱片市场和国外音乐网站市场相差甚远。同时,艾瑞分析指出,中国音乐网站潜在着巨大的市场需求,发展空间还有待市场各方充分挖掘。直至2012年,中国的音乐网站市场得到了飞速的发展,音乐用户包括下载和在线试听的已达到数亿,而国内的许多音乐网站,例如百度MP3,虾米音乐等,也是发展迅速,提供着高端高质量的音乐服务。因此,中国音乐市场将歩入成熟阶段,音乐网站潜藏的巨大空间将充分释放。

中国音乐市场在与传统媒体,媒介与互联网的融合发展中,日新月异。在内容提供方面,已经形成自制、沉积、购买版权、用户上传、合作集成等多渠道来源。网络服务方面,电信和传统媒体各有所长并发挥着重要作用。对于终端产品方而言,音乐网站的收听从以前单一的媒体扩展到只要有网络连接的各种电子器件。而用户消费格局方面,除了传统的广告外,按次收费、包月收费、版权营销等也越来越得到用户的接受和用户习惯的肯定。因此中国音乐网站的发展,也正以迅猛的速度发展并与国际接轨。

2系统环境概述

本音乐网站系统的设计是基于Struts2框架以及MySQL数据库来实现的。本系统的开发工具主要有Myeclipse集成开发环境、MySQL数据库管理工具、Tomcat服务器处理工具等。

2.1 开发工具和服务器介绍

对于音乐网站所涉及到的开发工具和服务器进行简要的介绍。

2.1.1 MySQL简介

MySQL是一个精巧的SQL数据库管理系统,虽然MySQL不是开放源代码的产品,但MySQL数据库是开放源码的一种小型关联式数据库管理系统。MySQL数据库的特点是体积小、处理速度快、总体成本低等,使得在因特网上的中小型的网站的应用非常广泛。并优于其开放源码这特点,有很多的中小型网站为了降低网站总体成本就必定会选择Mysql数据库作为网站数据库[1][2]。

对于其他大型数据库例如Oracle、SQLserver、db2等相比,MySQL数据库肯定有其不足的地方例如稳定性和功能。但这也丝毫不会减少它受欢迎的程度,因为对于一般的个人和中小型企业来说,MySQL数据库所提供的功能是绝对可以满足的。

2.1.2 MyEclipse开发平台

MyEclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。虽然大多数用户很乐于将MyEclipse当作Java IDE来使用,但MyEclipse的目标不仅限于此。MyEclipse还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展MyEclipse的软件开发人员,因为它允许他们构建与MyEclipse环境无缝集成的工具。由于MyEclipse中的每样东西都是插件,对于给MyEclipse提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。

MyEclipse是一个开发源码项目,它其实是Visual Age for Java的替代品,其界面跟先前的Visual Age for Java差不多,但由于其开放源码,任何人都可以免费得到,并可以在此基础上开发各自的插件,因此越来越受人们关注。

2.1.3 Tomcat服务器

Tomcat是Apache软件基金会的一个核心项目,并且是由Apach和Sun以及其他公司或个人共同开发而成的。因为有了Sun公司的参与和合作,最新的Servlet以及Jsp规范总是能够在Tomcat中体现出来。Tomcat服务器是一种免费开源的Web应用服务器,是属于轻量级的服务器,技术先进以及性能稳定,普遍使用于中小型系统和并发访问量不是很多的情况,是调试Jsp程序的法宝。Tomcat具有处理静态Html页面的功能,同时又是Servlet和Jsp的容器,可以运行Jsp页面和Servlet。Tomcat很受广大编程爱好者的喜爱,因为在运行它的时候占用的系统资源不大,扩展性很好,支持系统开发应用常用的功能,并处于不断的完善中,程序员可以根据自己的需要去更改或在Tomcat中加入新的功能。

运行程序只需要将所做的项目部署到Tomcat中,然后启动运行Tomcat,在浏览器上可以展示Jsp。一般的我们在选择浏览器的时候用的是搜狗浏览器。

2.2 开发技术介绍

2.2.1 Java编程语言简介

Java是Sun公司在1995年推出的一种编程语言,被特意设计用于互联网的分布式环境。Java具有类似于C++的感觉,但相比C++而言,更易于使用。采用了以对象为导向的编程方式。使用Java编写的应用程序,既可以在一台独立的电脑上运行,也可以分布在一个网络的服务器端和客户端运行。另外,Java还可以用来编写容量很小的应用程序模块或者Applet,作为网页的一部分使用。applet可使页面使用者和页面之间进行交互式操作[3][4]。

Java推出之后马上给互联网的交互式应用带来了新面貌。目前,最常用的两种互联网浏览器软件中都包括一个Java虚拟机[5]。并且几乎所有的操作系统中都增添了Java编译程序。

Java语言比较于C语言而言比较简单,具有跨平台、安全性以及面向对象等特点。跨平台指的是Java能运行于不同的平台,引进了虚拟机原理,实现了不同平台的接口并且在虚拟机上运行。安全性指的是Java程序运行的时候,内存由操作系统直接分配而不是像C++那样通过指针来对存储器地址操作,这样以来就可以避免了病毒通过指针入侵到系统中。面向对象指的是Java语言在编程的时候一般都是将属性私有封装在类中并提供公开的访问方法[6]。这样一来实现了程序的简洁和可维护的性能。封装继承的思想使得程序只需做一次编译,然后通过上述特性反复利用,程序开发者只需要将主要的精力投在类及接口的设计和实现上。

2.2.2 JSP技术

JSP是由Sun Microsystems公司倡导以及许多公司参与狗共同建立的一种动态网页技术标准。JSP是最早的Java EE规范之一,也是最经典的Java EE技术之一,直到今天,JSP依然广泛地应用于各种Java EE应用中,充当Java EE应用的表现层角色。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(.htm, .html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp) [7]。JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑[8]。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户[9][10]。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。

JSP通过在标准的HTML页面中嵌入Java代码片段,或使用各种JSP标签包括使用用户自定义标签,从而可以动态的提供页面内容。也就是说JSP页面的内容由两部分组成:静态部分(标准的HTML标签、静态的页面内容,这些内容与静态HTML页面相同)和动态部分(受Java程序控制的内容,这些内容由Java程序来动态生成[11]。JSP和Servlet是Java EE规范的两个基本成员,它们是Java Web开发的重点知识,也是Java EE开发的基础知识。JSP和Servlet的本质是一样的,因此JSP最终必须编译成Servlet才能运行,或者说JSP只是生成Servlet的"草稿"文件[12]。

2.2.3 Struts2框架技术

Struts是全世界最早的MVC框架,它通过采用 Java Servlet/JSP 技术,实现了基于Java EE Web应用的MVC设计模式的应用框架,Struts也确实是Java EE应用中使用最广泛的MVC框架[13],拥有广泛的市场支持。此外, Struts具有页面导航功能,使系统的脉络更加清晰。通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处。

Struts2由传统的struts 1和WebWork两个经典的MVC框架发展起来的,Struts2是一个非常优秀的MVC的框架。与传统的Struts 1相比,Struts2允许使用普通的、传统的Java对象作为Action;Action的execute()方法不再与ServletAPI耦合,因而更易测试;支持更多的视图技术;基于AOP思想的拦截器机制,提供了极好的可扩展性;更强大、更易用的输入校验;整合的Ajax支持等,这些都是Struts2的巨大吸引力[14]。

Struts2框架工作的原理可以通过以下几个步骤来分析:首先客户端发出一个请求指向Servlet容器,这个请求经过几个过滤器后会到达Struts2框架的心脏FilterDispatcher过滤器,在处理用户请求时,会和请求一起相互配合访问Strurs2的底层框架结构[15]。在Web容器启动时,Struts2框架会自动加载配置文件里面的相关参数,并转换成相应的类。如:ConfigurationManager、ActionMapper和ObjectFactory。ConfigurationManager 存有配置文件的一些基本信息,ActionMapper存有action的配置信息。在请求过程中所有的对象(Action,Results,Interceptors,等)都是通过ObjectFactory来创建的。过滤器会通过询问ActionMapper类来查找到请求中需要用到的Action。过滤器会把请求的处理交给ActionProxy。ActionProxy作为Action的代理对象找到需要调用的Action类并创建一个实例。然后执行所对应的Action,返回的结果一般是需要去展示的Jsp页面或者是其他的标签。

2.2.4 MVC分层结构

概括来说,MVC思想将一个应用分成了Model、View、Control三个部分,三个部分以最少的耦合协同工作,从而大大提高了应用的可扩展性和可维护性。MVC结构具有以下特点:多个视图对应一个模型;模型返回的数据与显示逻辑分离;三层架构导致的低耦合性和易维护性[16]。那么在Struts2中,Model对应业务逻辑组件,它通常用于实现业务逻辑方法以及与底层数据库的交互等;View对应视图组件,通常是指Jsp页面,但也适用于其他视图显示技术,如Velocity或者Excel文档;Control对应系统核心控制器和业务逻辑控制器,系统核心控制器为Struts2框架提供的FilterDispatcher,它根据请求自动调用相应的Action。而业务逻辑控制器是指开发人员自行定义的一系列Action,在Action中负责调用相应的业务逻辑组件来完成处理。

2.2.5 Ajax和Jquery技术

Ajax全称是基于XML的异步JavaScript,是与服务器交换数据并更新部分网页的技术。(即在无需重新加载整个网页的情况下,能够更新部分网页的技术。)传统的Web应用允许用户填写表单,当提交表单的时候向服务器发送一个请求,服务器接收并处理接收的表单,然后返回一个新的网页。这种做法会浪费很多的带宽,因为前后两个页面中的大部分Html代码都是相同的。而与此不同的Ajax应用可以很好的解决这个问题,Ajax应用可以向服务器发送并取回必需的数据,它使用Soap或其他一些Web Service接口,并且在客户端采用 了js来处理来自服务器的响应[17][18]。由于在浏览器和服务器之间交换的数据大量减少,所以应用响应会变得更快。综上所述,可以发现Ajax应用程序具有如下优势:1.通过异步刷新,减少用户等待时间,很好的提升了用户的体验度;2.Ajax引擎在客户端运行,承担了一部分本来有服务器承担的工作,从而大大减轻服务器的负担;3. Ajax优化了服务器和浏览器之间的传输,减少了不必要的数据往返,减少了带宽占用。

Jquery是一个JavaScript库,它通过封装原生的JavaScript函数得到一整套定义好的方法。具有以下功能:1.链式操作方式(对发生在同一个Jquery对象上的一组动作,可以直接连接写而无需重复获取对象。);2.许多成熟的插件可供选择;3.可靠的事件处理机制;4.实现动画效果更方便[19][20],并且为网站提供Ajax交互。Jquery已经集成了js、CSS、DOM和Ajax于一体的强大功能,可以利用很少的代码,完成更多复杂的功能。Jquery作为封装的库,其目的在于简化开发者使用js。

3 详细设计

本网站是一个免费、开放的音乐交流平台,对于网站,都必须有固定的服务器让用户进行访问,用户的访问在本系统中会记录相关信息。音乐网站有后台管理员,管理员可以对在网站内上传的音乐进行删除操作,也可以删除注册过的用户,还可以根据一些情况来增加其他管理员对音乐网站进行管理。

对于只有注册过的用户,才可以对本网站内容进行浏览,进行音乐上传、试听及收藏和留言等。注册过的用户可以修改自己的密码,可以查询自己的账户信息,上传自己的喜欢的音乐及留言别人上传的音乐,还可以将别人上传的并且自己还喜欢的音乐添加到音乐盒。

在功能实现方面,注册过的用户可以根据音乐了解其隶属于哪张专辑;根据上传的音乐可以查询到该音乐的信息(包括上传人的信息);根据上传时间查询最新上传的作品;可试听音乐,试听后如果喜欢也可下载音乐;并且可以对音乐进行留言。

3.1 性能分析

音乐网站可以说是关于音乐的专场,在这里人们可以搜索其他用户上传的并且自己喜欢的音乐,也可以进行音乐的留言,这样能使其他用户更加深刻的了解其他的人对这首歌的感想。从而让人们能够在上传的音乐中找到自己喜欢的音乐,既省时又省事还省力。

3.2 功能分析

音乐网站系统主要由两部分组成: 前台管理模块和后台管理模块。注册过的用户在进入该网站后,不仅可以查看音乐、上传音乐、并将自己喜欢的音乐添加到音乐盒,还可以进行留言。管理员登录后,不仅可以查看用户状态,还可以管理音乐、用户的信息。管理员还可以根据情况添加一些管理员以维护该音乐网站的环境及安全。

(1) 登录与注销

每个用户必须用自己的注册的帐号登录到系统才可以访问网站。用户操作完成后退出系统,注销后可以重新登录系统。

(2) 系统管理员

实现管理员对音乐的删除、对注册过的用户进行删除、添加友情、修改密码链接等功能。

(3) 普通用户

普通用户可以浏览该网站的主页,包括试听、下载音乐,也可以进行留言;但不能查看音乐网站中的其他信息;必须要先注册之后才能登陆到系统中进行查看。

(4) 登陆用户

不但可以浏览该网站的信息, 也可以进行留言、下载音乐;还可以通过网站给其他注册过的用户点歌,并将自己喜欢的音乐加入到音乐盒。

3.3 系统架构

音乐网站分前台管理和后台管理两个大模块,其中前台管理又分为:首页、音乐盒、短信息、分享音乐、播放列表五大模块;后台管理又分为:后台首页、音乐管理、友情链接、用户管理、添加管理员、修改密码。根据以上功能,设计出了网站的总体架构模型,涵盖了整个网站的应用。逻辑模型如图3.1所示:

图3.1 逻辑模型

3.4 系统登录流程

音乐网站的登录流程应顺着系统信息流动的过程逐步地进行,用户登陆采用常用的登陆模式。用户输入用户名和密码,后台会进行验证,正确的话就可以登陆进书籍浏览页面,错误则会提示用户名或者是密码错误。未经注册过的用户要进行注册。用户注册模块包括用户名、密码、确认密码。用户在注册的时候系统会对用户注册的信息进行验证,如简单的输入字符长度和规范可以通过js来验证,检测该用户名是否已经注册过了,则是通过后台访问数据库来验证,不允许相同的用户重复注册。管理员登陆的方式,管理员登陆进去的是后台的界面,可以对用户和音乐的信息进行查看和删除等操作,添加友情链接和管理员,还可以修改密码。系统的登录流程图,如图3.2所示:

图3.2 登录流程图

3.5 系统功能设计

音乐网站系统主要由前台模块和后台管理模块两部分组成。用户在进入该网站后,不仅可以查看其各种自己喜欢的音乐,还可以选择查看关于自己喜欢的音乐的信息。管理员登录后,不仅可以查看用户状态,还可以管理音乐、用户的信息。管理员还可以根据实际情况添加其他管理员以维护该音乐网站的环境和安全。

3.5.1 前台功能设计

音乐网站的前台功能设计,如图3.3所示:

图3.3 前台功能设计模块

前台功能模块描述:

(1)注册模块:普通用户可以在次注册,填写相关的信息,注册成功后可以享受本网站的所有信息资料,也可在此进行试听和下载音乐,并可以对试听过的音乐进行留言。

(2)音乐盒模块:在这里用户可以对在网站里的一切音乐,随意试听。并将自己喜欢的音乐加入到音乐盒中。

(3)短信息模块:此模块显示了如果其他用户给你发送短消息,你可以点此查看,并可以在此界面进行回复。

(4)分享音乐模块:注册过的用户可以点此进入,进行上传音乐。

(5)播放列表模块:播放过的音乐会存在此页面上。

3.5.2 后台功能设计

根据前面的系统的系统功能分析中,可将后台功能划分成7个模块,如图3.4所示:

图3.4 后台功能设计模块

后台功能模块描述:

(1)登录模块:是管理员的登录界面,用于管理员的登录。

(2)后台首页模块:显示网站名称和制作人。

(3)音乐管理:对一些不满意的音乐可以进行删除;也可以了解音乐的情况(包括歌名、歌手、所属专辑、简介等)。

(4)友情链接:添加链接的网站名称和地址。

(5)用户管理:可以对注册过的用户进行删除。

(6)添加管理员:此模块显示了管理员可以根据音乐网站的实际情况进行添加一些管理员,方便管理。

(7)修改密码:可以在这个模块对管理员的密码进行修改。

3.5.3 系统用例分析

管理员用例图设计如图3.5所示,用户用例图如图3.6所示:

图3.5 管理员用例图 图3.6 用户用例图

3.6 数据库设计

音乐网站系统是提供给用户音乐信息,并对音乐信息进行管理的系统,数据库是该系统的核心和基础。并将系统中的信息按照特定的模型组织起来,提供系统可以方便地获取所需信息。同样,数据库设计更是整个系统应用的根基,是软件设计的起点,起着决定性的质变作用。

3.6.1 E-R关系图

根据对数据库的功能和数据库表的设计,我们能够很容易地抽象到的实体有管理员信息实体、音乐留言信息实体、友情链接信息实体、短消息信息实体、音乐信息实体和用户信息实体。系统总体E-R图如图3.7所示。还有关于本系统一些实体的E-R图:管理员实体E-R图如图3.8所示,音乐留言实体E-R图如图3.9所示,友情链接实体E-R图如图3.10所示,短消息实体E-R图如图3.11所示,音乐信息实体E-R图如图3.12所示,用户信息实体E-R图如图3.13所示。

图3.7 系统总体E-R图

图3.8 管理员E-R图

图3.9 音乐留言E-R图

图3.10 友情链接E-R图

图3.11 短消息E-R图

图3.12 音乐信息E-R图

图3.13 用户信息E-R图

3.6.2 数据表设计

根据网站的需求我们创建的数据库主要分为7个表:管理员表admin、留言表comments、友情链接表link、短信息表message、音乐列表music、最新消息通知表tip、用户表user。这七个表分别涵盖了整个网站所要用到的数据。下面分别介绍这几个表的结构:

(1)admin(管理员表),是专为管理网站后台的人员创建的表,用于存储管理员的信息,其中还设置了管理员的权限,管理员可以在网站后台修改信息。包括编号(id),管理员名称(name),密码(pwd)。其中,id(编号)为该表的主键。如表3.14所示:

表3.14 管理员表(admin)

(2)comments(留言表),本网站所有用户的留言都存储在此表中,方便用户查询。包括留言编号(id),留言内容(value),用户昵称(name),留言音乐编号(music_id),留言时间(time)。其中,id(留言编号)为该表的主键,如表3.15所示:

表3.15 留言表(comments)

(3)link(友情链接表),音乐网站添加的友情链接网站的信息存储在这里。包括id(友情链接编号),友情链接网站名称(value),友情链接网站地址(title),id(友情链接编号)为该表的主键,如表3.16所示:

表3.16 友情链接表(link)

(4)message(短消息表),此表用来存储网络用户给其他用户点歌的短消息的,包括发送消息人的名称(from),发送定位(to),消息标题(title),消息内容(value),消息时间(time),新到消息(new),管理员可以通过管理此表来管理短消息。其中,id(点歌的编号)为该表的主键。如表3.17所示:

表3.17 短信息表(message)

(5)music(音乐表),此表是音乐的信息,尽可能的详细音乐信息,方便用户以后的查找过程。此表包括音乐编号(id),音乐名称(title),歌手(singer),音乐所属专辑(special),音乐简介(value),音乐上传时间(time ),音乐点击次数(clink),网页地址(url)。其中,id(音乐编号)为该表的主键,如表3.18所示:

表3.18 音乐列表(music)

(6)tip(最新消息通知表),用户可以根据此消息来了解是谁上传了哪一首音乐,随时了解音乐网站的上传音乐动态。包括消息通知编号(id),消息内容(value),。其中,消息通知编号(id)为改表的主键。如表3.19所示:

表3.19 最新信息通知表(tip)

(7)user(用户表),专门存储在本网站注册的用户,方便用户的下次登录。包括用户编号(id),用户名称(name),用户密码(pwd),其中,id(用户编号)为该表的主键。如表3.20所示:

表3.20 用户表(user)

4 系统实现

整个音乐网站丰富多彩,界面功能模块清晰,让用户可以更加的了解这个音乐网站的功能,也借此增加用户对此音乐网站的喜爱。

4.1 用户注册

用户可以在本网站注册、填写相关的信息、注意格式一定要正确,否则会系统会自动提示出错,注册成功后可以享受本网站的所有信息资料,包括音乐上传、发送短消息等相关操作。如图4.1 及对应代码如下所示:

图4.1 用户注册界面图

4.2 首页

首页界面是富有特色的,既涵盖了整个网站的内容又显得简明、简便明了,可以让用户一眼就找到自己想要的功能模块,为其提供了方便。在网站首页用户可以登录,登录后可在首页上点相应导航,进行操作。未经注册的用户浏览网站时,如果没有任何用户上传音乐,则会看到显示内容------暂无任何音乐,快来分享给大家把!如图4.2所示:

图4.2 首页(无音乐上传)界面图

未经注册的用户浏览网站时,如果有用户上传了音乐,就可以对上传的音乐进行试听、下载,也可以对上传的音乐进行留言,还可以阅读其他浏览者对这首音乐的留言,借此了解这首音乐。但不能将音乐添加到自己的音乐盒,也不能点歌,更不能上传音乐、发送短消息。必须注册成用户登录进去才可以点歌、上传音乐、发送短消息等。有音乐上传的首页,如图4.3所示:

图4.3 首页(有音乐上传)界面图

首页主页面显示了五个大块:首页、音乐盒、短信息、分享音乐、播放列表。人们可以在本网站的首页进行注册用户,填写相关的信息,注意格式一定要正确,否则会系统会自动提示出错,注册成功后可以享受本音乐网站的所有信息资料,包括对音乐进行试听、下载、留言以及上传音乐,还可以将自己的喜欢的音乐点给其他用户。点歌功能如图4.4所示:

图4.4 点歌界面图

在首页中点击阅读留言进入留言模块中,留言内容通过表单插件Jquery.form使其最近留言信息进行异步更新,也就是只有更新了最近留言显示这一块,其他不进行更新。音乐留言如图4.5所示:

图4.5 音乐留言界面图

主要代码如下:

4.3 音乐盒

在这里用户可以在首页里任意的查找其他用户上传的音乐并将自己喜欢的音乐加入到自己的音乐盒中。加入之后,自动保存,用户在下次登录之后可在音乐盒中看到自己原先添加到音乐盒中的音乐。等过一段时间不喜欢自己所加入到音乐盒中的音乐也可以将其删除。如图4.6所示:

图4.6 音乐盒界面图

4.4 短消息

在这里你可以查看其他用户发给你的短消息,自己也可以给其他用户发送短消息。以此来增进彼此的了解,也可以让其他用户更加贴切的了解自己喜欢的音乐和事情。如图4.7和图4.8所示:

图4.7 发送短消息界面图

图4.8 查看短消息界面图

4.5 分享音乐

在这个模块可以上传音乐,上传音乐时的类型必须为MP3类型,也必须写上音乐名称、歌手、所属专辑、简介等信息,让不了解的人们更加快的了解到这首音乐。如图4.9所示:

图4.9 分享音乐界面图

4.6 播放列表

只有在音乐盒里对音乐进行过播放,才会有播放列表的存在,如果播放过此音乐,就可以点击播放上次创建的播放列表。如图4.10所示:

图 4.10 播放列表界面图

4.7 后台管理

管理员通过账号和密码进入后台管理系统,进行网站的相关维护。后台管理又单独设置了几个页面,为的就是使管理员的工作更加方便,使任何信息的删除,修改都集中到另一个界面上,这样的话就不会跟前台页面混淆了。如图4.11所示:

图4.11 管理员登录

以上所有实现的功能都是通过Struts2框架来开发的,首先在web.xml文件中定义核心Filter来拦截用户请求,之后利用配置文件定义处理用户请求的Action类,在配置Action,还需要配置处理结果和物理视图资源之间的对应关系,最后编写视图资源。

Jquery是一个JavaScript库,它通过封装原生的JavaScript函数得到一整套定义好的方法。Jquery有许多成熟的插件可供选择,例如:通过Ncejforms可美化表单,通过Thickbox可设置弹出效果,通过Audioplayer可支持音乐播放器等。通过使用Jquery表单插件Jquery.form来实现音乐网站系统中对于留言这一模块进行异步刷新,其中AjaxSubmit()由Ajax来提交表单。大多数情况下,都是调用AjaxSubmit来对用户提交表单进行响应。

5 系统测试

5.1 系统测试的目的

系统测试是为了发现错误而执行程序的过程,成功的测试是发现了至今尚未发现的错误的测试。测试的目的就是希望能以最少的人力和时间发现潜在的各种错误和缺陷。应根据开发各阶段的需求、设计等文档或程序的内部结构精心设计测试用例,并利用这些实例来运行程序,以便发现错误。信息系统测试应包括软件测试、硬件测试和网络测试。硬件测试、网络测试可以根据具体的性能指标来进行,此处所说的测试更多的是指软件测试。系统测试是保证系统质量和可靠性的关键步骤,是对系统开发过程中的系统分析系统设计和实施的最后复查。

5.2 测试用例和测试结果

5.2.1 测试用例

测试编号 测试目标 测试步骤 期望结果 实际结果

001

测试输入已经注册过的用户是否正确。 (1)进MyEclipse;(2)输入相应程序;(3)运行相应代码;(4)观察结果及相关提示信息。 当输入已经注册过的用户会提示------用户名已存在。 当输入已经注册过的用户会提示------用户名已存在。

002

测试在未登陆的情况下是否可以访问除首页外的其他的界面。 (1)进MyEclipse;(2)输入相应程序;(3)运行相应代码;(4)观察结果及相关提示信息。 在未登陆的情况下访问其他的界面,会出现提示------请登录后再访问。

在未登陆的情况下访问其他的界面,会出现提示------请登录后再访问。

003

测试在登陆页面输入注册过用户名和正确的密码,是否可以登陆成功并跳转到系统主页面。 (1)进MyEclipse;(2)输入相应程序;(3)运行相应代码;(4)观察结果及相关提示信息。 在登陆页面输入注册过用户名和正确的密码,此时登陆成功并跳转到系统主页面。

在登陆页面输入注册过用户名和正确的密码,此时登陆成功并跳转到系统主页面。

004

测试点击下载是否可以下载音乐。 (1)进MyEclipse;(2)输入相应程序;(3)运行相应代码;(4)观察结果及相关提示信息。 点击下载可以下载音乐。 点击下载可以下载音乐。

005 测试点击注销登录是否提示------注销成功。 (1)进MyEclipse;(2)输入相应程序;(3)运行相应代码;(4)观察结果及相关提示信息。 点击注销登录提示------注销成功。 点击注销登录提示------注销成功。

5.2.2 测试结果

  1. 在注册界面中输入已经注册过的用户会提示------用户名已存在。如图5.1所示:

图5.1 登录界面图提示图

2.在未登陆的情况下不可以访问除首页外的其他的界面,并且还会出现提示------请登录后再访问。如图5.2所示:

图5.2 登录界面图提示图

3.在登陆页面输入注册过用户名和正确的密码,登陆成功并跳转到系统主页面,点击下载也可以下载音乐。如图5.3所示:

图5.3 下载界面图

  1. 点击注销登录会否提示------注销成功。如图5.4所示:

图5.4 注销成功界面图

6 总 结

经过此次毕业设计,充分认识到了自己编程能力方面的缺陷,感觉到自己的基础比较薄弱。但在这段时间里,我不断地发现自己的问题,并且找出问题产生的原因,根据相关的方法解决问题。经过努力,查阅相关资料,终于完成了音乐网站的功能实现。从开始的时候确定论文题目,总体设计需求分析,模块功能设计,到后面每一个功能模块的实现,再到整个系统开发的实现。这次毕业设计让我认识到了自己的能力,也是对自己在大学四年里学习的一次实践和总结,同时也让我更彻底地了解了开发的基本流程,相信这些经验对于以后从事的工作会有极大的影响。

在本次系统设计中,我学会很多不错的技术,例如Struts2框架、Java、Jsp、Ajax、Jquery等。可以发现Ajax技术的应用能够让系统的用户体验度更好,例如,通过Ajax技术可异步刷新首页中的留言这一模块;Jquery作为Js的封装能够简化程序的开发,Jquery提供了丰富的插件,节省了对代码的编写时间。

通过此次毕业设计,将我所学的Java知识、软件测试知识以及学的有关MyEclipse的知识等综合应用,在设计的过程中我遇到了很到问题,不过在尹老师的帮助和自己的思考下还是很好的完成了。通过此次的锻炼,我对MyEclipse开发平台有了一个比较清楚的认识,使我体会到理论和实践的重要性。由于自己的分析设计和程序经验不足,该系统设计和实现过程中,还有许多没有完善的地方,比如用户界面设计不够美观,异常出错处理比较差等多方面问题,这些都有待进一步完善和提高。对于文中出现的不足和系统中出现的问题敬请老师指导。

致 谢

在大学四年的学习和生活中,我非常感谢学校的各位老师对我的不倦教诲,让我有了很强的专业知识,使我的见识更加长远,并且自己的知识更加完善。同时也感谢学校能够提供给了我这样一个良好的锻炼自己各方面能力的舞台,不仅在专业技能上有所提升,在与人相处和做事上也是我获益匪浅。

经过这段时间对音乐网站的分析、设计,使我对音乐网站有了全面的了解与认识,同时我对音乐网站做了详细的解剖。我的毕业设计和论文是在老师的精心指导下完成的,在准备毕业设计的过程中,尹老师从选题指导、设计框架到细节修改,都给予了我非常细致的指导,并且对于我的毕业设计也提出了很多宝贵的意见与建议。在此向尹老师表示衷心的感谢和深深的敬意,也非常感谢在百忙之中抽时。

参考文献

[1] 厉建欣,司青燕.论MySQL开源数据库在中小企业的应用[J].商场现代化.2010:17-18.

[2] 罗义斌,丁志强.用JDBC实现Java程序与数据库的连接[J].中文信息.2011:87-88.

[3] 孙建华. Java语言的应用简述[J]. 电子技术与软件工程,2015,01:257.

[4] 贾俊奇. 软件开发下的JAVA语言[J]. 中国科技信息,2014,13:133-134.

[5] 刘京华.Java Web整合开发王者归来[M]. 北京:清华大学出版社.2010:112-113.

[6] 冷巨冰.Java语言的发展与Java技术[J]. 硅谷. 2011(03):87-88.

[7] 唐溢. JSP技术在WEB页面中的应用研究[J]. 信息技术与信息化,2014,12:151-153.

[8] 王景. JSP动态网站的技术开发分析[J]. 赤峰学院学报(自然科学版),2013,20:24-26.

[9] 任智乾. JSP技术在Web数据库中的应用[J]. 信息与电脑(理论版),2011,06:161+163.

[10] 张超.基于JSP的MVC设计模式探究[J].电脑与信息技术.2013(4):92-96.

[11] 叶洁. 基于JSP和Java组件的动态Web网页的设计与实现[J]. 现代机械,2003,03:26-27.

[12] 常红梅. JSP与Servlet技术对比[J]. 太原科技,2008,01:62-63.

[13] 周会强.基于Struts2框架的Java Web应用开发研究[J].科技通报.2012(6):123-126.

[14] 邱晓荣. 基于MVC模式的Struts2框架在Web应用开发中的实现[J]. 黑龙江科技信息,2012,18:98.

[15] 张志刚. Struts 2框架技术开发与应用[J]. 计算机光盘软件与应用,2013,23:119-120.

[16] 刘楠楠. MVC框架在软件开发中的应用研究[J]. 数字技术与应用,2012,04:70.

[17] 文永胜.Web中利用Ajax技术进行模型优化[J]. 科技信息(科学教研).2011(23): 102-104.

[18] 徐英娟. Ajax基本原理及其Web应用探讨[J].电脑知识与技术. 2012(12):73-75.

[19] 尹婷,赵思佳.基于Jquery框架的AJAX网站设计模式的研究[J].湖南环境生物职业技术学院学报. 2010(03):90-91.

[20] 王洪九.运用Jquery和ajax实现数据库数据的提取和分页[J].信息与电脑(理论版). 2012(09):76-77.

相关推荐
qq_43361844几秒前
shell 编程(二)
开发语言·bash·shell
zfoo-framework6 分钟前
【jenkins插件】
java
风_流沙11 分钟前
java 对ElasticSearch数据库操作封装工具类(对你是否适用嘞)
java·数据库·elasticsearch
charlie11451419115 分钟前
C++ STL CookBook
开发语言·c++·stl·c++20
袁袁袁袁满15 分钟前
100天精通Python(爬虫篇)——第113天:‌爬虫基础模块之urllib详细教程大全
开发语言·爬虫·python·网络爬虫·爬虫实战·urllib·urllib模块教程
ELI_He99922 分钟前
PHP中替换某个包或某个类
开发语言·php
m0_7482361129 分钟前
Calcite Web 项目常见问题解决方案
开发语言·前端·rust
倔强的石头10637 分钟前
【C++指南】类和对象(九):内部类
开发语言·c++
ProtonBase41 分钟前
如何从 0 到 1 ,打造全新一代分布式数据架构
java·网络·数据库·数据仓库·分布式·云原生·架构