1、摘要当今社会是一个高速发展的社会,在高压的生活状态下,通常都会身心疲惫,都会想要找寻一些方式来减少压力,不论如何减压,都不会少了音乐的陪伴。如今随着网络的发展,各国人都可以进行交流,所以不同风格、不同国度的音乐开始到处传播,使我们有了很大的选择空间。音乐的种类多了,人们的需求也在发生变化,对音乐的管理网站也要在不断地升级,本系统就是为人们查询和收集音乐提供更方便的途径。在找到自己喜欢的音乐以后,还为用户表现了多样化的音乐平台。本文分以下几部分阐述了基于使用操作,采用NEO框架和NEO框架中包括的Struts2, Spring,FreeMarker,js技术设计实现过程。该音乐系统运用了NEO框
2、架和其中的部分技术来完成开发,是一个基于Java的音乐管理系统。在该论文中主要有以下工作要完成:一、对开发的系统要用到的技术和功能进行了解和介绍,从用户对系统的需求进行实际的需求分析和总体设计,详细说明音乐系统应具备的基本功能,对全部功能进行分类设计。二、根据设计的方案,实现音乐网站分类管理的详尽方案,系统主要分为两大模块:游客模块和用户模块,游客模块包括试听音乐和登录功能,用户模块包括试听音乐、增加歌曲、删除歌曲、修改歌手名信息、查找歌手功能。三、最后对设计的音乐系统进行测试和评论。关键词:Struts2 NEO框架 FreeMarkerABSTRACTOur society is a so
3、ciety with high-speed development. Living with high pressure, people will usually feel tiredness, and want to find some way to reduce the pressure, no matter how to reduce the pressure; there is no way without the company with music. Nowadays all the countries exchange frequent, different styles and
4、 different countries music spread, and give us a very wide space of selection. many peoples demands is also changing with so many kinds of music, the web site of the management of music need to constantly upgrading, this system just provide a more convenient approach to music. To find his own music,
5、 then it also provide people a platform to contact different music.This article describes with following sections based on use and operation, use the struts2, spring, freemarke and js of the neo framework and operation to achieve the process.The music website system use neo framework and part of the
6、 technology to complete the development, a management system to java. Mainly, there are following works to finish in this article.Firstly,to understand and introduce the technology and function used by the developed system, To make actual needs analysis and gross design from the needs of user , and
7、dentally introduce what basic functions the music system should have Classification and design to all functions. Secondly,according to the design, implementation of classified management of the detailed plan of the music, the system is mainly divided into two modules:tourists module and users module
8、, tourists module includes the functions of increase and check, user module include the functions of increase delete change and check .Thirdly,test and comment the music of the web site.Key words: Struts2NEOFreeMarker目录1 前 言11.1 开发背景11.2 国内外研究现状11.3 系统设计目标22 系统开发所采用的技术32.1 NEO框架32.2 各项技术与分层之间的对应关系32
9、.2.1 表现层32.2.2 控制层42.2.3 业务逻辑层和数据持久层53 倾听音乐系统需求分析83.1 可行性分析83.1.1 技术可行性分析83.1.2 安全性分析83.2 功能分析93.3 系统业务流程分析94 概要设计104.1 设计指导思想和原则104.1.1 指导思想104.1.2 软件设计原则104.2 构架概述104.3 系统功能模块设计104.4 数据库逻辑结构设计124.4.1 整体E-R图设计124.4.2 数据库表结构设计135 系统详细设计与实现155.1 游客模块的实现155.1.1 登陆页面的实现155.1.2 搜索歌手的实现165.2 用户模块的实现175.2
10、.1 上传歌曲的实现175.2.2 修改歌手的实现205.2.3 删除歌曲的实现215.2.4 留言的实现226 系统测试236.1 测试概论236.2 倾听音乐系统采用的测试方法246.3 倾听音乐系统登录功能测试256.4 倾听音乐系统注册功能测试26结论28谢辞29参考文献30附录31大连交通大学信息工程学本科生毕业设计(论文)1 前 言目前,随着Internet在全球的推广和普及,越来越多的人开始进入这个全球范围的计算机网络,世界因此变成了一个小小的地球村,人们通过互联网彼此沟通和交流。各种各样的网站也随之产生了,比如音乐网站、新闻网站、娱乐网站、政府网站等等,它们的出现使得人们甚至可
11、以待在家里就可以知道外面的世界正发生着什么样的变化。而在如今这样一个信息化的网络时代,音乐变得无处不在,尤其是多媒体的出现让音乐更加大众化、普及化了。现在只要你鼠标轻轻一点,就可以找到各种各样的,甚至是不同国家的音乐信息供你选择来试听和下载。这样一来,对于音乐网站的要求就更加高了,不但要求在线音乐试听的速度,而且需要及时的更新音乐信息,这就意味着要不断提升网络的带宽,同时也需要新的网络技术来支持该系统,数据的压缩编码和用于发布媒体的网络技术就是在这样的背景下诞生的。而该音乐系统正是利用流媒体技术设计开发的,它的出现将使得用户收听音乐更加方便快捷。现在,网络应用软件运行的模式主要有二类:C/S模
12、式和B/S模式。前者主要的缺点是维护、升级较麻烦,后者是近几年伴随Internet迅速发展起来的一种技术。它与客户服务器方式类似,客户端是一个标准的浏览器,服务器端是IIS,而IIS与数据库和应用服务器的紧密结合,使得这种模式的应用范围不断扩大,它已不仅仅用于网上查询、有很多部门的业务系统、企业的MIS系统纷纷采用这种模式。它的主要优点是便于扩充应用、升级维护简便。基于上述考虑,用B/S模式来设计在线音乐系统比较合适。1.1 开发背景网络技术以及计算机的发展,网友们对网络的要求也在日益增长,平常在网络上听歌用一大堆的软件下载下来又要管理,又占空间。比如那些流行歌曲,下载下来听了之后又要删除,很
13、是不方便。而该系统改变了这一现状。他本身就是一个音乐互交的系统,用户通过它可以方便、快捷、安全地实现音乐搜索,并能实时试听,将自己喜爱的歌曲加入自己的主页,为用户建立一个自由、自主、安全的音乐系统。1.2 国内外研究现状音乐,它本身作为一种艺术、一种社会意识形态,反映的是人类社会生活,人类思想感情。通过节奏、旋律、和声、音色完美的结合,感染欣赏者。人们常说,音乐可以陶冶情操,净化灵魂,这些当然和音乐的特性以及人们对音乐的心里感知是分不开的。人们对音乐的感知理解与欣赏是通过一系列心理活动来完成的,而音乐的社会功能主要是以潜移默化的方式,通过欣赏者的心里活动得以发挥。随着社会发展,各国的交流非常频
14、繁,人们所熟悉的音乐和音乐人不再单单局限于国内,还有很多来自国外,中国的音乐也随着国家间的交流被传播得更远。记得在04年的雅典奥运会,最后的8分钟时间里,中国的一首茉莉花响彻整个体育场,随后茉莉花成了中国歌曲的代表,也成为国外人了解中国音乐、文化的传送带。现在,有很多的外国人来到中国,专门来学习中国的民俗音乐。在我们经常看到的娱乐节目中,经常可以看到外国人演唱中国的歌曲。音乐不仅仅用于陶冶情操和休闲娱乐,他还随着社会的发展,用于文化交流。所以各国的音乐不进行明确的分类和管理是不可行的。所以,就要有一个系统来管理和归纳分类这些多样的歌曲。海外,现在大部分的中国年轻人都比较偏向于日韩明星,再有搞艺
15、术的还钟情于美国的朋克风格、摇滚风格等。都是来自海外的艺术,对我们现在的年轻人也很有影响,形成了一股潮流风。记得前一阵的迈克尔杰克逊的离开,就对整个欧美,甚至是全球的音乐爱好者一个沉重的打击。歌迷们相拥而泣,来怀念这位伟大的音乐人。可见音乐的影响不单单是对一个国家歌迷的影响,有时可以影响全世界,是人们相聚在一起,来怀念他。国内,国内的部分艺术已经在国际上有一定的影响力,像成龙在好莱坞的影响一样,我们中国的民族音乐在外国那也是有很大的影响力。都对中国的民族艺术更有了一定的了解。音乐网站系统就是为了更好的来管理音乐,将音乐分类。方便大家查找音乐,更好的了解不同国家的音乐风格、特色。1.3 系统设计
16、目标音乐系统实现的功能很简单,将系统分为游客和用户两个模块,主要实现传统的增删改查功能,用户和游客都具有试听音乐和查询歌手的权限,但用户在游客的权限基础上还具有上传音乐、留言、删除歌曲和修改歌曲名功能。2 系统开发所采用的技术2.1 NEO框架NEO框架采用了分层体系的思想以及MVC设计模式,定位为三层体系结构,即表现层、业务逻辑层以及数据层,其中表现层又细分为页面资源层和页面模板层,业务逻辑层细分为控制层和业务处理层,NEO框架的体系结构如图2-1所示。业务逻辑层控制层页面资源层表现层页面模板层页面模板层业务处理层数据层图2-1 NEO框架体系结构我应用的NEO框架则是对于FreeMarke
17、r模板技术和Struts2、Spring框架技术进行了整合,而提出的新框架。2.2 各项技术与分层之间的对应关系整合后新的框架分为四个层,各项技术与分层之间的对应关系如下:表现层:FreeMarker;控制层:Struts2;业务逻辑层:SpringFramework;数据持久层:Spring JdbcTemplate。2.2.1 表现层表现层主要包括页面资源层和页面模板层。在页面资源中采用了HTML、CSS、JavaScript技术,在页面模板层则采用了FreeMarker模板技术。FreeMarker允许Java servlet保持图形设计同应用程序逻辑的分离,这是通过在模板中密封HTML
18、完成的。模板用servlet提供的数据动态地生成HTML。模板语言是强大的直观的,编译器速度快,输出接近静态HTML页面的速度。FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写。FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式的应用程序。虽然FreeMarker具有一些编程的能力,但通常由Java程序准备要显示的数据,由FreeMarker生成页面,通过模板显示准备的数据。FreeMarker不是一个Web应用框架,而是适合作为Web应用框架一个组件。FreeMarker与容器无关,因为它并不知道HTTP或Servlet;F
19、reeMarker同样可以应用于非Web应用程序环境 FreeMarker更适合作为Model2框架(如Struts)的视图组件,你也可以在模板中使用JSP标记库2.2.2 控制层Struts2是一个MVC Web框架。Struts2是Struts的下一代产品,是在struts和WebWork的技术基础上进行了合并的全新的Struts2框架。其全新的Struts2的体系结构与Struts 1的体系结构的差别巨大。Struts2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts2可以理解为WebWork的
20、更新产品。虽然从Struts1到Struts2有着太大的变化,但是相对于WebWork,Struts2只有很小的变化。Struts2的核心机制如图2-2所示。Servlet Filter DispatcherInterceptorInterceptorInterceptorActionResult图2-2 Struts2的核心机制根据Struts2的核心机制图,基本可以看出Struts2的运行过程如下:接收到请求,核心控制器FilterDispatcher找到合适的Action,拦截器调用Action中的方法执行,Result进行输出。同时,可以看出Struts2具体的作用如下分为的情况为:将
21、用户的请求封装为一个数据对象。根据请求的不同,调用相应的逻辑处理单元,并将数据对象作为参数传入。逻辑处理单元完成后,返回一个结果数据对象。将结果数据对象中的数据与预先设计的表现层相融合并展现给用户。Struts2的体系与Struts1体系的差别非常大,因为Struts2使用了WebWork的设计核心,而不是Struts1的设计核心。Struts2中大量使用拦截器来处理用户的请求,从而允许用户的业务逻辑控制器与Servlet API分离。Struts2框架的大概处理流程如下:1 加载类(FilterDispatcher)2 读取配置(struts配置文件中的Action)3 派发请求(客户端发送
22、请求)4 调用Action(FilterDispatcher从struts配置文件中读取与之相对应的Action )5 启用拦截器(WebWork拦截器链自动对请求应用通用功能,如验证)6 处理业务(回调Action的execute()方法)7 返回响应(通过execute方法将信息返回到FilterDispatcher)8 查找响应(FilterDispatcher根据配置查找响应的是什么信息如:SUCCESS、ERROR,将跳转到哪个jsp页面)9 响应用户(jsp-客户浏览器端显示)10 Struts2标签库(相比struts1的标签库,struts2是大大加强了,对数据的操作功能很强大
23、)2.2.3 业务逻辑层和数据持久层在业务逻辑层和数据持久层中用到了Spring框架技术,Spring和Struts2一样都是一种轻量级的JavaEE应用程序框架,Struts2注重的是降低表现层和逻辑层的耦合程度,主要是把业务逻辑和表现层分开,但是不涉及业务层与持久层的关联。Spring主要是对业务层的细化,也就是更深层次的降低耦合程度。Spring框架核心的思想就是建立一个Java对象的大工厂,用户只要给工厂一个指令,工厂就能将用户需要的对象根据配置文件组装好烦坏给用户。用户需要做的许多工作则可以写成简单的配置文件。组成Spring框架的每个模块(或组件)都可以单独存在,或者与其他一个或多
24、个模块联合实现。每个模块的功能如下:1 核心容器:核心容器提供Spring框架的基本功能(Spring Core)。核心容器的主要组件是BeanFactory,它是工厂模式的实现。BeanFactory使用控制反转(IOC)模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。 2 Spring上下文:Spring 上下文是一个配置文件,向Spring框架提供上下文信息。Spring上下文包括企业服务,例如JNDI、EJB、电子邮件、国际化、校验和调度功能。 3 Spring AOP:通过配置管理特性,Spring AOP模块直接将面向方面的编程功能集成到了Spring框架中。所以,可以很
25、容易地使Spring框架管理的任何对象支持 AOP。Spring AOP模块为基于Spring的应用程序中的对象提供了事务管理服务。通过使Spring AOP,不用依赖EJB组件,就可以将声明性事务管理集成到应用程序中。 4 Spring DAO:JDBC DAO抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。Spring DAO 的面向JDB 的异常遵从通用的DAO异常层次结构。 5 Spring ORM:Spring框架插入了若干个ORM框架,从而提供了OR
26、M的对象关系工具,其中包括JDO、Hibernate 和iBatisSQL Map。所有这些都遵从Spring的通用事务和DAO异常层次结构。 6 Spring Web 模块:Web上下文模块建立在应用程序上下文模块之上,为基于Web的应用程序提供了上下文。所以,Spring框架支持与Jakarta Struts的集成。Web模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。7 Spring MVC 框架:MVC框架是一个全功能的构建Web应用程序的MVC实现。通过策略接口,MVC框架变成为高度可配置的,MVC容纳了大量视图技术,其中包括JSP、Velocity、Tiles、iTex
27、t和POI。模型由javabean构成,存放于Map;视图是一个接口,负责显示模型;控制器表示逻辑代码,是Controller的实现。Spring框架的功能可以用在任何J2EE服务器中,大多数功能也适用于不受管理的环境。Spring的核心要点是:支持不绑定到特定J2EE服务的可重用业务和数据访问对象。毫无疑问,这样的对象可以在不同J2EE环境(Web 或EJB)、独立应用程序、测试环境之间重用。另外,在持久层的封装和整合上,Spring同样做了很多的努力。Spring的JdbcTemplate封装了传统的JDBC程式执行流程,并作了例外处理与资源管理器等动作,用户需要的只是给它提供一个Data
28、Source,而这只要在Bean定义中完成依赖注入。Spring JdbcTemplate的使用可以提高开发效率。通过图2-3可以帮我们进一步理解Spring JdbcTemplate。应 用 程 序JDBC TemplateDatebaseJDBC图2-3 Spring JdbcTemplateSpring是一个容器框架,归结而言Spring具体的作用也就仅如下点:管理系统中的业务逻辑,即Services;将Services所需的依赖注入;实现声明式事务管理;对Jdbc操作进行简单封装。3 倾听音乐系统需求分析3.1 可行性分析3.1.1 技术可行性分析本系统采用Windows系统的底层架构
29、,neo系统采用struts2底层架构,采用java作为开发语言,数据库采用MySql。对于完成同样功能的进程,采用同一个程序启多个子进程的方式。配置文件采用Struts2文件进行配置,采用Struts2配置,简单,清楚,容易维护。本系统采用Eclipse作为开发环境,Eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。Eclipse是一种可扩展的开放源代码IDE。Intergrated De
30、velopment Environment,简称IDE(集成开发环境,又名集成编程环境或可视化开发环境),是为了方便软件开发人员进行开发而设计的软件,一般针对某一编程语言开发,大多数为界面友好的可视化环境,一般整合源代码编辑器、调试器、编译器和资源编辑器。Eclipse平台的用户界面是由透视图、试图、编辑器组成的。每个“工作台”窗口都包含一个或多个透视图。透视图则包含视图和编辑器,透视图可根据用户的不同选择来布局视图和编辑器。可以同时打开任意数目的编辑器,但在任一时刻只能有一个编辑器处于活动状态。星号(*)指示编辑器具有未保存的更改。Eclipse包括了完备的编码、调试、测试和发布功能,支持H
31、TML,Struts2,CSS,Javascript,SQL等功能。3.1.2 安全性分析本系统的信息是基于B/S进行开发的,用户工作界面是通过WWW浏览器来实现,是Web兴起后的一种网络结构模式,Web浏览器是客户端最主要的应用软件。B/S最大的优点就是可以在任何地方进行操作而不需要安装任何专门的软件,只要有一台能上网的电脑就能使用,客户端零维护。B/S结构的运用越来越多,它的程序也能在客户端电脑上进行部分处理,从而大大的减轻了服务器的负担;并增加了交互性,能进行局部实时刷新。B/S结构维护和升级方式简单。目前,软件系统的改进和升级越来越频繁,B/S架构的系统明显体现着更为方便的特性。如果同
32、时又上报台电脑同时工作,要是出现了问题要一台一台的进行维修或者更改,工作量大效率也不高,但是B/S构架的系统只需要管理服务器就行了,所有的电脑客户端都是浏览器不需要做任何的维护。这种方便对人力、物力、时间、费用的节省是显而易见的,逐步向“瘦”客户机,“胖”服务器。B/S结构成本降低,B/S结构软件一般只有一次性投入成本。对于集团来讲,有利于软件项目控制和避免IT黑洞。在系统的性能方面,B/S占有优势的是其异地浏览和信息采集的灵活性。任何时间、任何点点、任何系统,只要可以使用浏览器上网,就可以使用B/S系统的终端。3.2 功能分析该音乐系统实现的功能很简单,将系统分为游客和用户两个模块,主要实现
33、传统的增加歌曲、删除歌曲、修改歌手姓名、查找歌曲功能,用户和游客都具有试听音乐、下载音乐和查询歌曲的权限,但用户在游客的权限基础上还具有上传歌曲、留言、删除歌曲和修改歌手姓名的功能。该系统的具体功能如下:1 点播歌曲。用户不用注册会员也可以点播该系统的歌曲。2 注册会员。用户需要注册会员后才能享受用户的其他功能。3 下载歌曲。注册会员之后即为本系统会员,可下载自己所喜爱的歌曲到本地电脑中。4 上传歌曲。本系统会员,可将自己喜欢,但系统没有的歌曲上传到本系统。3.3 系统业务流程分析音乐系统业务流程主要体现在用户对音乐进行的详细操作,下面就主要介绍一下初次登陆音乐网站后的业务流程。在进入音乐网站
34、的入口后,用户通过登录网站,浏览歌曲、查询歌手、歌曲和试听音乐,并对存在的音乐进行试听和下载功能。首先,游客需进行注册,然后才可以对网站的音乐进行更多的操作。如图3-1为该系统的业务流程图。游客 登陆注册登陆成功 存在增加下载试听查询列表删除修改YN图3-1 系统的业务流程图4 概要设计4.1 设计指导思想和原则4.1.1 指导思想该系统主要为人们提供一个搜索音乐、试听音乐、上传音乐、下载音乐和网上交流的平台。来满足人们对音乐的聆听要求。由于登陆该系统的用户不一样,我们将其分为不同的类库进行实现,这样可以方便修改和管理。本次系统即采用了Struts2方式编写,其中还运用了FreeMarker和
35、Spring框架技术。我们会分别从用户和游客的角度出发,对用户的需求进行分析创建正确的连接。做出最好、最简单的使用。将系统中游客和用户分别封装在两个不同的类当中,在系统今后的维护和修改提供了更大的发挥空间和方便。4.1.2 软件设计原则采用抽象与逐步求精、分而治之、模块化、封装和信息隐藏、高内聚和低耦合、关注点分离、策略和实现的分离、接口和实现分离与模块独立原则。4.2 构架概述表示层:为每个独立的页面模板编写一个FTL文件,在FTL页面可以显示Action中的业务处理结果,可以用Service内的方法而跳过Action直接进行数据访问与显示。FTL文件还可以使用宏、指令、内建函数等进行数据处
36、理。 业务逻辑层:通常存在多个Service。原则上围绕一个业务模块建立一个Service,这个Service包含了该业务模块的所有业务方法,各业务方法依靠调用时传入的参数完成相应的逻辑操作。控制层:提供业务逻辑对外的接口,以方便客户端访问,在该层中可保存用户请求参数,通过调用Services中的方法完成业务逻辑操作。同时,可保存业务逻辑处理结果,根据结果决定调用的表现层页面。另外,还提供了对request、response、session的访问。通常情况下,一个业务模块一般使用1至3个Action,每个Action包含多个可被调用的方法,通过Setter和Getter方法对Action中的属
37、性值进行存取。数据访问层:数据访问和存储(取得原始数据)。4.3 系统功能模块设计音乐系统主要实现对音乐的管理,其中,分为游客和用户两个模块,具体功能设计分析如下:1 游客模块管理对音乐网站的音乐进行试听、下载、搜索和注册用户等功能。2 用户模块管理对音乐网站的音乐进行试听、上传、下载搜索、留言、修改、删除等功能。音 乐 系 统用 户 模 块游 客 模 块登录试听歌曲搜索歌手上传歌曲试听音乐删除歌曲修改歌手留言下载歌曲图4-1 系统功能结构图该音乐系统的所有业务功能详见表4-1。表4-1 主要业务功能功能编号功能名称功能描述1登陆用户进入个人主页2注册游客的注册3进入艺人主页用户和游客进入艺人
38、的主页4增加游客注册和用户上传、留言5修改用户修改歌曲信息6删除用户删除已有的项目信息7查询用户和游客查询8下载用户和游客下载歌曲9试听用户和游客试听歌曲4.4 数据库逻辑结构设计4.4.1 整体E-R图设计实体-联系图(Entity-Relation Diagram)用来建立数据模型,在数据库系统概论中属于概念设计阶段,形成一个独立于机器,独立于DBMS的ER图模型。 通常将它简称为E-R图,相应地可把用E-R图描绘的数据模型称为E-R模型。E-R图提供了表示实体(即数据对象)、属性和联系的方法,用来描述现实世界的概念模型。构成E-R图的基本要素是实体、属性和联系,其表示方法为:实体:用矩形
39、表示,矩形框内写明实体名。属性:用椭圆形或圆角矩形表示,并用无向边将其与相应的实体连接起来;多值属性由双线连接;主属性名称下加下划线。联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型。本系统的E-R图如图4-2所示。图4-2 整体E-R设计图4.4.2 数据库表结构设计用户表主要记录了注册用户的信息,其中用户编号是用户表的主键,唯一标识一个用户。系统中的用户可以对歌曲进行增、删、改、查等操作。如表4-2所示。表4-2 用户表(user)列名文字说明数据类型长度是否允许为空userID用户编号int11nouserName用户名字varchar
40、100yespassword用户密码varchar100yessex用户性别varchar10yesemail用户邮箱varchar50yesintroduction用户描述varchar200yes歌手表主要记录了歌手的信息,其中歌手编号是歌手表的主键,唯一标识一个歌手。系统中,用户和游客都可以对歌手进行操作,可以搜索到歌手唱的歌曲。当用户和游客输入要搜索的歌手名称时,系统会根据输入的歌手名字在歌手表中查找歌手确定歌手的编号,根据歌手编号上歌曲表中找到对应的歌曲,显示在你收缩结果的显示页面,从而达到用户和游客想要完成的要求。如表4-3所示。表4-3 歌手表(singer)列名文字说明数据类型
41、长度是否允许为空singerId歌手编号int2nosingerName歌手名字varchar20yessingerIntro歌手描述varchar100yes歌曲表主要描述歌手对应歌曲的相关信息,其中歌曲编码是歌曲表中的主键,唯一标识一个歌曲。可以通过歌曲编码找到对应的歌手,再找到歌手的信息。在系统中,用户和游客都可以对音乐进行下载和试听操作。如表4-4所示。表4-4 歌曲表(song)列名文字说明数据类型长度是否允许为空songId歌曲编码int2nosongName歌曲名字varchar20yessingerId歌手编码int2yes留言表描述了用户留言情况,留言编码作为留言表的主键,唯
42、一地确定了用户留言的唯一性。在系统中,只有用户能给歌手留言,游客不能对其进行操作。如表4-5所示。表4-5 留言表(message)列名文字说明数据类型长度是否允许为空messageId留言编码Int2nomessageContent留言内容varchar50yes本系统的所有功能有以上四个表联系而成,其中singer和song表用外键构成多表连接。外键为歌手编号,当查询时,点击搜索就会通过歌手表中的歌手编码去到歌曲表中的歌手编码,从而对应到歌所唱的歌曲编码。把查询的内容显示到查询结果页面。用户表就储存注册的用户信息。留言表就单独接收用户对歌手的留言。5 系统详细设计与实现5.1 游客模块的实
43、现5.1.1 登陆页面的实现如图5-1所示,是本次开发项目的主页中登陆部分。如果你是该系统已经注册过的用户,可以直接输入你的用户名和密码正确的进入自己的主页,进行自己想要完成的操作,进而达到自己的要求。图5-1 界面实现图SuppressWarnings(unchecked)public String login() throws Exception Map u = new HashMap();u.put(userName, username);u.put(password, password);if(getServMgr().getUserService().getAdminByUserna
44、meAndPassword(u) != 0 )indexUrl = (String) getSession().remove(Constants.ORIGINAL_URL);getSession().clear();/ 清空原始Session信息getSession().put(Constants.LOGIN_USER, u);if (indexUrl = null) return home;elsereturn SUCCESS;elseerrorInfo = WRONG;return ERROR; 5.1.2 搜索歌手的实现如图5-2所示,是音乐系统中实现的搜索界面,在页面的右上角输入要搜索
45、的歌手名字,点击搜索按钮,就会出现你搜索的歌手对应的歌曲的列表,在此列表中用户和游客可以进行试听和下载操作。图5-2 用户和游客搜索界面实现图public String search1() throws UnsupportedEncodingException System.out.println(singerName);System.out.println(URLDecoder.decode(singerName,UTF-8);System.out.println(URLDecoder.decode(singerName,GBK);System.out.println(URLDecoder.decode(URLDecoder.decode(singerName,UTF-8),UTF-8);System.out.println(en2utf8(singerName);System.out.println(getRequest().getCharacterEncoding();songList = getServMgr().getUserService().getSingerSong(singe