个性化音乐推荐系统设计与实现.docx

上传人:飞****2 文档编号:15015788 上传时间:2022-05-10 格式:DOCX 页数:36 大小:52.81KB
返回 下载 相关 举报
个性化音乐推荐系统设计与实现.docx_第1页
第1页 / 共36页
个性化音乐推荐系统设计与实现.docx_第2页
第2页 / 共36页
点击查看更多>>
资源描述

《个性化音乐推荐系统设计与实现.docx》由会员分享,可在线阅读,更多相关《个性化音乐推荐系统设计与实现.docx(36页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上个性化音乐推荐系统设计与实现摘要21世纪是信息化时代,随着信息技术和网络技术的发展,信息化已经渗透到人们日常生活的各个方面,与人们的日常生活早已建立了离不开的联系。对网络音乐服务来说,不管是音乐下载服务,或者是网络音乐电台服务,都需要用到优秀的内容推荐系统去辅助整个系统。个性化音乐推荐系统是目前最流行的应用方法之一。同时音乐成为重要的媒介与朋友交流文化,所以很多SNS应用当中将音乐服务添加到里面。本系统采用SSH框架组合进行设计,基于Java Web技术,系统使用UML建模。本系统的功能模块主要包括:音乐上传、单曲管理、个人信息维护、收集歌曲信息、音乐检索以及系统推荐

2、等。音乐上传利用JavaScript脚本定义了一个函数,单曲管理在action中定义一个方法,系统推荐是利用协同过滤算法来进行的。整个系统主要实现了从用户注册和登录、检索音乐到收听音乐、评分音乐,个性化推荐的整个音乐系统,管理员可使用系统后台对音乐歌曲信息进行修改、会员信息修改、系统推荐等进行有效的管理。很大程度上提高了对音乐管理的效率,符合了广大用户们的基本需求。关键词:SSH框架,音乐系统,协同过滤,MVC模式专心-专注-专业DESIGN AND INPLEMENTATION OFPERSONALIZED MUSIC RECOMMENDATION SYSTEMAbstractThe 21s

3、t century is the era of information, with the development of information technology and network technology, it has penetrated into every aspect of daily life, with people in daily life has been inextricably linked to the establishment.For the Internet music service, whether it is music download serv

4、ice, or network music radio service, all need to use the excellent content recommendation system to support the whole system. Personalized music recommendation system is one of the most popular applications. At the same time music has become an important medium of communication with friends culture,

5、 so many SNS applications when the music services added to the inside.The system uses a combination of SSH framework design, based on Java Web technology,system used UML modeling. Site function modules include: Music upload, music management,personal information maintenance, collecting music informa

6、tion, music search and system recommend.The entire site is simple, user-friendly, flexible and practical. The main achievement of the user registration and login, retrieve music to listen to music, the whole comment is called online music listening processes, and system administrators can use the ba

7、ckground information on the goods, membership information, message information, and effective management. Greatly improving the efficiency of music management, in line with the needs of customers.Keywords: SSH Framework,Music System,Collaborative Filtering,MVC Pattern目录1 绪论 11.1 项目背景 11.2 系统开发的意义 21

8、.3 国内外音乐系统现状 31.3.1全球音乐系统系统发展情况 31.3.2中国音乐系统发展现状 31.3.3网络音乐系统市场发展趋势 42 技术准备 62.1 Java Web 62.1.1 Servlet技术 62.1.2 JSP技术 82.1.3 JSTL标签 92.1.4 JSP 2.0自定义标签 92.1.5 Filter过滤器 102.2 MVC模式 112.3 Spring框架 122.4 AJAX技术 123 系统分析与设计 143.1 系统简介 143.2 系统框架设计 143.3 功能需求 153.3.1面向管理的需求定义 163.3.2面向体验的需求定义 173.3.3面

9、向维护的需求定义 183.4个性化音乐推荐系统设计 213.4.1 音乐上传设计 223.4.2 单曲管理设计 223.4.3 收集歌曲信息设计 223.4.4 音乐检索设计 223.4.5 音乐推荐设计 233.5数据库设计 233.5.1 数据库概念结构设计(E-R图) 233.5.2 音乐推荐系统数据库表设计 254 系统技术实现 304.1 音乐上传功能的实现 314.2 收集歌曲信息功能的实现 324.3 单曲管理功能的实现 334.3.1 播放功能的实现 354.3.2 下载功能的实现 354.4音乐推荐功能的实现 364.4.1所用数据表 374.4.2实现过程 375 总结 4

10、1参考文献 43致谢 45译文及原文 461 绪论1.1 项目背景信息技术改变了了人们的生活方式,是当今信息化时代便捷人们生活的一项伟大创举。在生活节奏越来越快的今天,人们对娱乐便捷的需求也越来越强烈。日益发展的网格技术与信息技术,各种音乐推荐系统也是逐渐应运而生。用信息技术与互联网技术相结合的音乐网站,其便利性、数据存储安全性、共享性、数据容量等,明显优于传统的磁带与CD。计算机科学技术日益发展,它早已深入到人类社会的每个角落里,而且发挥着越来越不可代替的作用,利用传统方式的存储数据资料的方式已经逐渐离我们而去。设计本系统的目的是为了改善那些原有网站的的缺点,为用户提供一个使用更好更便利的在

11、线音乐平台系统,并且在协调不同的用户偏好方面也可以做的更好。此外,系统能提供给管理员一个清晰简明的界面,合理安排音乐分类信息,并根据用户的要求和信息;根据用户的某些特点,为用户提供一些更能产生共鸣的音乐。自古以来,音乐就一直伴随着人们的日常生活,古有笙箫唢呐,今有吉他萨克斯,如今人们听音乐大多通过手机、音乐播放器,或是直接在电脑上在线收听,连mp3,mp4都很少有人使用。人们也在不断地对音乐的形式进行创新和发展,21世纪初,人们还通过磁带或是光盘收听音乐,而今天数字音乐以遍及全球,人们大多通过互联网来收听音乐,换句话说,互联网是今天最流行的数字音乐的音乐介质和最大载体。Java技术是在Web开

12、发领域中,表现极其出色的技术之一,由于在Web开发领域中的杰出表现,Java技术近年来的发展非常迅猛,越来越多的网站使用Java进行开发。例如众所周知的淘宝网,随着就业务规模的不断扩大,php架构有些不能适应现在的用户需求,所以淘宝高层曾经考虑过将淘宝网转型成为Java平台架构,这无疑是对Java技术的一种巨大的肯定。在中国交通领域中,有许多在线购票网站,首当其冲的就是国家铁道部的12306网站,它隶属于国家机关,对技术的要求十分高,就连如此重要的网站也是使用SSH框架开发的,而SSH框架是隶属于Java平台。虽然有许多重要且成功的网站都是使用Java技术进行开发的,但由于Java技术过于复杂

13、等原因,现有音乐网站多是通过php等其他语言进行编写的。此外,这些音乐网站也几乎没有将最新的HTML5标准适用于网站中最重要的音频解码方面,而仍使用Windows自带的解码控件,这节省了网站开发的难度,但却十分不利于Android和iOS端的手机用户在该网站上获得良好的音乐体验。1.2 系统开发的意义此系统使用JAVA WEB技术, 采用SSH框架和MYSQL数据库作为工具进行开发解决方案,实现了B/S模式的个性化音乐推荐系统的设计。利用web服务器和客户自己的浏览器,为用户提供在线音乐系统平台,通过浏览器在网站上直接检索音乐、收听音乐、对音乐评分等,这些功能可以让用户得到更好的音乐体验,让用

14、户在一天24小时的时间内都可以在在线音乐系统中收听自己喜欢的音乐。网站的规则是根据目前商业网站的成熟规则进行设计的,主要功能为网上在线音乐收听,再加上留言等功能,此外能提供给管理者一个简单的界面,可以合理安排音乐分类信息,并根据用户的要求和信息;根据用户的某些特点,为用户提供一些更能产生共鸣的音乐。是一个综合性在线音乐系统网站。由于Java平台技术在当今时代已经逐渐取代php等其他技术成为Web开发的主流,而且通过SSH框架对Web网站进行编程开发的案例也更多更好,以此为背景,通过学习SSH框架,进行一个音乐网站的设计具有非常重要的意义。对Java平台技术加深深刻理解的最好方法,便是学会Hib

15、ernate ORM框架的映射关系维护和加载策略,在学会这个技术后,对使用Spring的基本整合配置对系统架构优化进行掌握和了解,在有了一定的技术基础后研究MVC思想(Struts 2.x框架)实现及标签库的使用方法,有很多音乐网站在页面复用方面并没有重点进行研究和开发,而本音乐网站在此方面进行了很多的研究并达到了很高的复用标准,这是对充分理解软件工程的复用思想的很好体现,在充分理解了复用思想后,对网站的开发提供了许多实践经验;如何设计并实现一个网站特有的音乐播放器是网站开发的重点之一,最终决定使用JavaScript/HTML5/CSS和对细小的图片进行素材处理来进行开发,实现一个原创的音乐

16、播放器,可以很好地帮助流媒体空间的跨平台开发;根据用户需求,要求网站在设计模式中必须具有开闭原则(对扩展开放,对修改关闭),在实现开闭原则的方法上,网站决定通过码表实现数据字典扩展功能从而完成这项技术要求。(1)在软件工程领域中设计理论和方法来分析个性化音乐推荐系统的发展过程中,使音乐网络领域在面向对象的方法研究中做出了实质性的贡献。(2)个性化音乐推荐系统使视图模型抽象方法、建模过程、模型表示等多个点的出发构建建了科学和有效的系统。(3)从个性化音乐推荐系统的结构,过程和可视化功能的统一建模语言UML元素来看,个性化音乐推荐系统设计的可视化功能提供了方法和技术支持。1.3 国内外音乐系统现状

17、在设计整个系统之前,我们对国内外的预测系统进行了调研,希望吸取它们的优秀设计功能。个性化音乐推荐系统市场需求,以不断探索自己的发展模式来看,在解决了现有的版权等一系列音乐市场的问题后,个性化音乐推荐系统市场规模必然会增大,与此同时的传统模式的音乐专辑的销售情况就变得不容乐观了。1.3.1中国音乐系统发展现状个性化音乐推荐系统在中国,虽然一直被关注着,但它似乎并没有走出亏损的底部。然而,尽管它一直在底部,但并没有阻止个性化音乐推荐系统服务供应商探讨行业的发展模式。 从A8,发展到百度音乐和新浪音乐以及爱国者推出的音乐超市和腾讯QQ独特的平台和服务相结合,中国的音乐系统永不放弃在对个性化音乐推荐产

18、业的热情。有声音认为,随着4G市场的到来,未来的音乐服务将有什么办法打造产业链,但如何以创新模式在4G时代,这些不确定因素决定了中国的个性化音乐推荐系统仍然需要很长的路要走。2012 年,中国在线音乐系统市场规模仅为 3.8亿元,与传统唱片的市场规模不可相提并论。近年来预计,2014 年以后国内在线音乐系统市场将进入健康发展阶段,2013 年中国在线音乐系统市场规模超过 5 亿元,年增长率超过 60%,预计 2014 年将达 7.5 亿元。盗版一直是中国音乐市场的一个很大的敌人,它严重影响着在中国音乐的发展,2014年,中国个性化音乐推荐系统的市场规模仅仅是2.8亿元。近年来,政策调控加大,利

19、益的各项业务间的合理有效分配在产业链,有效政策法规的颁布和实施,将对中国的在线音乐系统市场产生积极的影响。预计2017年个性化音乐推荐系统市场之后将进入良性发展阶段,2015年中国音乐推荐系统市场规模超过5亿人民币,超过60的年均速度增长,预计在2016年将达到8.5亿的市场规模。1.3.2网络音乐系统市场发展趋势网络开始成为释放原创音乐的重要途径。 2001年3月6日0时,MP3格式的中国第一个网络歌曲出现在人们的生活空间中,开始了音乐网亮相的序幕。经过10多年的发展,今天的互联网和移动互联网已成为唱片公司的歌曲和视频发布推广的主要路径,网络首发的歌曲也成为在线音乐服务提供商吸引用户,用户聚

20、集的重要手段之一。网上商店已经成为最新的无线音乐下载的亮点之一。国际知名的apple公司开发了在线应用程序商店模式,google,blackberry,samsung等厂商纷纷跟进,nokia,motorola,lenovo等移动终端运营商已经投入巨资,试图开辟属于自己的一片天地。中国移动,中国电信,中国联通等通信运营商,也开始建立自己的在线软件商店。社区网站的音乐带来的变化和方式转变。人人网,赛我网等快速发展的社交阶层网站的代表,嵌入式网络音乐播放器插件和用户分享,口碑传播模式,以促进音乐的网络传输改造,让中小型CD公司和非主流创作者可以更容易地传播他们的作品。社区网站的粘贴性和互动性将带来

21、互联网音乐传播的巨大变化。互联网音乐将从一个简单统一向个性化发展。互联网音乐服务的形式已经从纯粹的音乐内容,发展到现在的提供音乐共享交换阶段。更多的网友不满意被动地听音乐,而是热衷于分享。在未来的网络音乐将发展到精密推荐音乐的阶段,用户需要实现智能网络音乐内容提供商推荐音乐。该网络音乐内容服务提供商和运营商提出了更高的要求,用户需要准确识别的行为,和智能地为用户提供分类服务。音乐云将成为热门的服务,未来尚不明确。A8音乐在2011年年初提出的音乐云服务的理念,开始了中国网络音乐云前奏,其他厂商纷纷效仿。所谓“云音乐”,简单来说是通过音乐软件的用户可存储在云音乐内容中的各种设备,如移动电话,个人

22、电脑和电视的播出,共享,而不需要用户再耗时从计算机内存中拷贝到其他终端设备。2 技术准备本系统中的设计部分主要使用JAVA WEB(SERVLET、JSP自定义标签、JSTL标签等)开发技术;对于系统的业务控制层我们使用STRUCTS2框架实现软件设计MVC思想中的业务的控制流转;本系统的数据持久层使用HIBERNATE框架进行系统托管;在系统架构方面,本系统使用WEB开发中常用的SPRING框架。如下章节将对上述关键开发技术进行必要的阐述。2.1 Java WebJava技术中最为核心的技术就是Java SE1(Java 2 Platform Standard Edition),Java S

23、E技术多被用于企业开发Java应用程序。随着计算机技术的发展Java开发技术在互联网得到了极大的发展,目前来看来说是应用最为广泛、开发技术占有率最高开发技术,当我们掌握了Java SE的主要内容后,面向Web开发时主要使用的是Java EE,Java EE是Java Web的主要开发技术。Web开发技术主要有两个最为重要内容:客户端(CLIENT)和服务器(SERVER)端。Java Applet是Java客户端的应用之一,Java Applet实际应用中使用得相对来说较少;对于服务器端的应用来说却显得异常丰富,最为人们熟知的如SERVLET技术、过滤器、JSP自定义标签等,下文中将详细介绍这

24、些技术。2.1.1 Servlet技术随着动态页面技术在上个世纪末开始流行,动态页面技术为Web开发技术带来了一次成功的大变革,它不仅极大的节省了人力成本,使得开发人员专注于静态页面维护的工作转移到如何使页面更加高效上来。对于动态展示的Web应用程序可以根据来自使用者的不同页面请求,依据不同请求动态地返回所需要的结果集。我们称之为公共网关接口程序CGI,而这是一种用于系统产生动态页面的程序代码。实现页面的动态输出功能的公共网关接口程序是运行在系统的服务器端,Java开发语言可以用来编写绝大部分的CGI程序,但是Java 程序编写的CGI执行效率相对来说较低。因为要执行Java程序编写的CGI程

25、序,不仅要在操作系统中运行CGI程序,还必须在操作系统中运行Java Virtual Machine,Java虚拟机,首先要在操作系统中运行Java虚拟机,然后才能在Java虚拟机中执行Java CGI程序,对于操作系统来说资源的浪费是非常大的。而CGI程序是运行在服务器端的程序,其执行效率是系统管理者非常关心的问题。因为CGI技术存在上述的弊端,也为了有效的解决CGI的执行效率问题,Java所属的公司SUN公司又推出了一套SERVLET技术规范2。SERVLET的本质是一种改进之后的CGI程序接口,引入SERVLET的主要目的就是为了减少系统的资源消耗,减少对JVM的依赖和不必要的频繁交互性

26、操作,从而从资源消耗方面来提高程序效率。SERVLET技术对于CGI程序的主要改进的地方有:SERVLET运行所需资源较少,此时操作系统只为SERVLET程序提供唯一的进程和JVM就可以满足程序运行所需的资源;当客户有多次请求同一个相同动态页面的请求结果集, SERVLET程序将只加载一个Java类来处理相同的请求;原始的CGI程序于WEB服务器交互方面不能直接进行有效的交互,SERVLET程序可以于WEB服务器交互,而且SERVLET程序还可以使不同程序进行共享数据。由此我们可以总结出,SERVLET技术在应用程序的性能方面提升是明显的。SERVLET技术处理Java Web客户断请求与数据

27、的处理过程如图2-1所示。图2-1 Java Web请求响应过程二十世纪九十年代末期,Java的所属SUN公司为了让SERVLET技术适应商业发展,建立了一套有效开发API成之为Java Servlet API,这就使得SERVLET技术具有了更好的跨平台性和较好的可移植性。在计算机科学技术的发展过程中任何一项技术都有自己的突出点和短板SERVLET在生成客户请求的网页时,需要在HTML标签中嵌套上JAVA程序代码。这时如果HTML标签中发生个CSS样式细小的变化将导致SERVLET中的Java类不得不重新进行修改。而实际应用中HTML页面的展现必须与Servlet后台代码的侧重点不同,因而这

28、种关联关系会让后台代码Java代码的维护非常麻烦。2.1.2 JSP技术JSP3(Java Server Pages)最大的特点是将静态的HTML标签技术和动态的页面技术相结合,它不仅能够扩展SERVLET API接口,还在继承原有技术上全面保留Java API,在页面的展现形式上更加趋近于HTML技术。当我们从JSP页面文件的布局上可以非常清楚地看到它与HTML静态网页在布局格式上几乎一致,然而于HTML静态页面相比JSP文件中却可以在任意符合JSP语法的地方嵌入Java程序代码,这样就可以轻松的实现SERVLET程序逻辑。那么在SERVLET应用程序中不易被提取出来的HTML标签代码在JS

29、P页面中能够以较为直接的显示方式展现给开发设计人员,这非常有利于前台页面的有效的结构和展示的设计。如果对TOMCAT服务器的Web服务器下的WEB/APP目录中的JSP文件进行解析,可以发现每一个JSP文件都将存在一个.java的文件于JSP文件相对。而且当开发人员或用户对JSP文件的HTML标签进行部分修改,系统将没有必要重新启动TOMCAT服务器就可以直接刷新更改后的页面直接看到效果。这跟SERVLET技术有很大的区别,主要是由于被修改的静态代码对Servlet程序代码没有起到作用,这时我们就不需要重新对JSP进行编译,所以直接刷新浏览器即可重新显示页面的更改。当来自用户的请求系统中的某个

30、JSP页面时,Web容器将会按照以下三个步骤进行处理:首先将开发人员编写好的动态JSP文件通过Web容器中的SERVLET转换引擎转换成为*.java源代码;然后通过Java虚拟机将*.java源代码文件翻译成为机器能够识别的字节码文件(二进制);最后当客户端发来页面请求时,WEB容器将按照已经编译好的二进制字节码文件进行处理,将生成的HTML页面代码反馈给客户端中显示。总的来说,JSP技术是一种更接近于视图层、更加易于表现的Servlet程序代码。二者在本质上并没有明显的区别,但是JSP技术为使用者和开发人员提供了丰富的标签库,例如JSTL标签、自定义标签等更加灵活便捷的标签。2.1.3 J

31、STL标签JSTL4全称为JSP Standard Tag Library,JSP标准标签库。由于这是基于JSP标准的标签库文件,与STRUCT2等标签库相比,JSTL标准标签库所提供的功能虽然并不是特别丰富,但是JSTL标准标签库的适用性却非常广泛。JSTL标签库主要为用户提供CORE标签库、FN方法库、XML标签库和FMT标签库、SQL标签库等5个部分的内容。首先CORE标签库为开发人员提供诸如为了达到实现循环效果后台代码中可以使用标签的for循环语句;FMT标签库主要用于控制标签库的标签格式化输出等;FN方法库提供多种方法来丰富开发者操作例如fn:contains()、fn:split(

32、)等;开发者可以使用对数据库操作的支持SQL标签库对数据库进行操作,如使用标签来实现数据库中的事务管理等,但这些标签在主流框架的冲击下,大多数项目环境中已经很少用这些标签;XML标签库实现XML相关的操作我们们可以使用等标签。2.1.4 JSP 2.0自定义标签JSP 1.x标准模版中提供了为用户自定义的标签库的功能供开发者使用,允许开发者编写其所需的标签而且能够并配置定义若干个标签,并以在开发过程中以标签库的形式对页面展示进行合理配置管理。但是开发者在编写自定义标签的时候首先要实现Tag接口或者继承TagSupport类,这个使用方法是JSP 1.x为开发人员提供的开放API。自从JSP 2

33、.05标准发布之后,用户只需要使用更加简单的SimpleTagSupport类来重写doTag(),这样就使得开发人员在自定义标签的时候更加快捷。JSP标签库中的自定义标签API的组织结构如图2-2所示。图2-2 JSP自定义标签的API体系本系统项目中在处理实体对象数据原型的管理逻辑时,由于分页功能的使用率非常高,因而在本系统我们使用了JSP 标准技术中的自定义标签库功能,定义了标签,标签极大的减少了JSP前台页面中的重复代码,为代码维护和界面显示带来了极大的便利。2.1.5 Filter过滤器Servlet API6代表着开源和开放的意思。2000年,三星公司通过发布Servlet 2.3

34、规范,Filter过滤器的功能得到添加,接下来的2.4、2.5版本又使其各项功能得了进一步的改进。在平时上网时,我们很少的会遇到这样一种情况,用户发的帖子中贴图显现出来的图文与本来所想的样子有很大的出入,出现这种情况最主要的原因就是贴子中的图片的来源网站用了“防盗链”的功能。而绝大多数的网站,在处理权限控制时(如在淘宝网购物必须具有已登录的账户),对于一些重要的操作过程都设置了审核这一环节(如检测到当前用户没有有效的登录状态,则拦截后续操作并转到提示页面)。这一类常用操作都是可以利用Filter过滤器来完成的。在这一项目中,我们想到有的用户会通过浏览器地址栏暴力探索等非常规方式登录还没有完成的

35、JSP页面造成逻辑错误,从而恶性的利用Filter过滤器拦截,让用户不能登录访问目的网页。这归根到底是由于本项目所采用的方法是:页面只能用作后台间接反馈给用户的调用出来的结果,用户只能访问后台功能的各模块。所谓监听器,其实和Java AWT/Swing7编程中的Listener是差不多的,一旦触发某一个事件,用户所指定的程序逻辑就会被立即执行,实现预设的目的。程序开发人员只要知道触发了一个事件所调用指定的Listener方法就行,而无需了解事件(Event)和监听器(Listener)是相互作用的过程。因此,只要把用户自己的业务逻辑编入所设定的方法程序中便可。监听器有监听对象属性变化、监听对象

36、的创建与销毁、监听Session内的对象、监听Session/Request/ServletContext等对象等这几种种类。该项目中的使用Listener监听器做到了“单态登录”,如果处于登录状态,而这一帐户又在此时于异地登录,先前的登录便会被注销。只要将业务逻辑编入到HttpSessionAttributeListener接口的attributeAdded()方法中便可实现这一功能。2.2 MVC模式Model-View-Controller可缩写为MVC8。Java EE中较为广泛的使用了这种分层的思想,主要特点就是提供对流程进行管理的用于控制导向的Controller,同时把业务逻辑和

37、前台表现层隔离开来。MVC思想最早是在1982年被提出来的,现在它作为差不多全部主流面向对像Web开发技术框架的标准,把业务逻辑和显示层进行分离,不但使得开发效率有所提升,而且具有部署快、可维护性高、耦合性低、重用性高等诸多优点。如果不使用第三方框加,采用的又是原生的Java EE技术,我们一般就会这样的判断:POJO、DAO、Service等内容为Model层,JSP为View层,Servlet为Controller层,请参见图2-3所示。图2-3 MVC分层思想一般想思想意识中的POJO(也称为Bean、VO或原型)不局限于Model层,也不属于其他任何一层。比如在JSP页面当中的EL表达

38、式一般情况下能通过“$bean.attribute”的形式调用到一个POJO内部的东西。当然这种调用是建立在JSP API基础之上的,绝非与人为设定的Model层产生相互作用。POJO作为数据传递的媒介,将表数据以POJO的形式通过Hibernate等框架到达DAO层,DAO层再把POJO原型对象与Service的交换。在Struts 2.x框架中的ModelDriven接口中有些时候POJO也会作为Controller层与前台交互的媒介。因此我们会错误的认为POJO与其他层是平等的,其实不然,把它归纳到Model层中是非常不科学的,它只是MVC分层中的一种通讯工具。但事事都无绝对性,这要看开

39、发的人如何去理解和应用。2.3 Spring框架Spring框架是一功能强大的整合工具,一直是多框架的保护神,Spring是由Rod Johnson于2003年创建并兴起,它为项目的解耦与新需求的扩展带来了很多方便,设计的初衷是为了应对企业应用的复杂性,积极支持Java EE,弥补了其臃肿、低效等不足之处。当然对传统的Java EE框架也是一种挑点。尽管Struts框架8充分的体现了MVC思想,但也带来局限性,Action与DAO层、Service层过于紧密的耦合,这将对项目的需要变化转型产生消极的影响。这种情况下我们可以使用Spring间接的协调,使用Spring的IoC机制来配置管理并维护

40、这种耦合关系。只有这样,Struts的Action和DAO与Service才能不互相依赖,而是更好的互相配合工作了。一样的道理,Hibernate也可以通过整合到Spring中来获得同样的良好效果。虽然Spring框架中提供MVC模块,但暂时并没有使用它们,而使用的是Struts 2框架,这主要是因为该项目中大量的采用了Struts 2标签库内容。2.4 AJAX技术AJAX指的是“异步的JavaScript包括XML”(Asynchronous JavaScript and XML)。即在不需要等待服务器将结果返回就可以继续下面的业务逻辑,就是所说的“同步方式”。而传统的“同步方式”是客户端

41、发出了一个请求,只有在服务器响应后,方可继续下一步的业务逻辑。比如我们平时在一个网站注册一个用户名,用户名输入后直接显示用户名是不是被占用,而不需要刷新页面或者点击一控件。之所以这样,最主要的就是因为onkeyup或onblur等HTML事件触发了AJAX的回调函数,在JavaScript作用下,直接根据服务器的结果信息改变HTML代码内容,而不必刷新页面。XMLHttpRequest对象是AJAX技术最核心的地方。常见的浏览器都支持AJAX技术,同时在不影响客户端当前的操作的情况下把数据通过一种简单的方式传递到服务器端。AJAX对数据的传递一般采用高效的JSON,但也习惯使用XML格式数据。

42、3 系统分析与设计3.1 系统简介本系统的主要功有,首先是对系统中用户、播放列表、歌曲、歌手等相关数据进行整合并存入数据库中,在需要时进行查询,并且还支持查看各类原型信息的查看、修改、删除等。通过本系统,用户可以很方便的了解到歌手的信息,以及专辑的信息,并且这些信息还可以保存在用的账户中,以便用户以后可以快速的查看。3.2 系统框架设计Struts 1.x原本是Apache中一个项目,但是现在已经成为java web开发中一个非常流行的网络框架,如果开发者想要基于Servlet和JSP创建一个可扩展的应用,Struts 1.x是一个不错的选择。而在后来的版本Struts 2.x中,是以WebW

43、ork为核心,从而使得那些与Servlet API相关的可避免的依赖关系不出现在核心业务控制层,不仅如此,Struts 2.x还提供了更方便的Validator、OGNL等工具,并且还抛弃了不繁琐的ActionForm。另外值得注意的一点是,一般软件的后续版本与之前本大同小异,没有什么根本的变化,但是在Struts框架中却不是这样,Struts 2.x和Struts 1.x具有完全不同核心,而它们具有相同的名字完全是因为Struts 1.x使用的广泛性。本项目便是基于Struts 2.x搭建,并且在设计中使用了MVC模型,项目运行的逻辑如下:(1)用户请求指定的Action;(2)Action

44、根据参数等条件进行导向;(3)Action调用指定的业务逻辑完成后台操作并准备前台数据;(4)根据struts.xml配置文件将带有结果数据的前台页面反馈给浏览器。数据持久化框架(Object-Relative Database-Mapping, ORM)一个在很多场景下对数据的访问都要求极其严格的框架,与Apache的iBatis提供的半自动化方式相比,Hibernate提供一种全自动化的数据持久化方案。在Hibernate中,通过相应的文件配置,我们可以实现相同的程序在不同的数据库平台下后可以正常运行,并且不需要做任何修改,而因此Hibernate也成为了Java中最为流行的数据持久化框架

45、。使用通用JDBC编程,开发者需要编写大量的插入,更新,删除,选择等语句来操作数据库。但是,这些SQL语句往往因为数据库平台的不同而变化,这使得程序的维护变得非常麻烦。在Hibernate中我们可以使用HQL语句,根据HQL语法和配置好的数据库类型,将不变的HQL语句随环境的不同而转换成不同的SQL语句。JDBC的缺点是,开发者必须关注数据库与POJO对象属性中的数据之间的映射关系,当多个POJO直接彼此带有关系映射时,该缺点更明显。因此可以通过合理的配置Hibernate使得自动的关联起表字段和类属性,自动维护单向或双向关系映射,那么开发者就可以很方便的对数据库进行操作。在本项目当中我们除了

46、使用Struts 2.x来创建Controller层外,还用到了文件上传的功能。在Structs 1.x中我们只能使用FormFile类来上传文件,但是在Structs 2.x中我们就可以直接使用java.io.File对文件进行操作,从而使得文件上传更加简单。3.3 功能需求本系统的需求方向主要分为“面向管理”、“面向体验”与“面向维护”共三个方面。首先是面向管理,所谓管理就是指系统管理员在登录账户后可以对数据库中的各项数据进行增、删、查、改等操作;然后是面向体验,指普通用户或者没有账户的游客也可以在网站上搜索、播放、收藏自己喜欢的歌曲;而面向维护则指在后期的修改中开发者能最低程度的修改当前

47、已有代码从而完成所需的功能。项目中的功能与具体需求方向之间关系概括整理如图3-1所示。图3-1 功能模块与需求方向3.3.1面向管理的需求定义面向管理的需求定理主要是针对系统管理员,涉及一般用户的内容比较少,并且不涉及未登录的用户。在本项目当中我们对管理的定义为可以对数据进行添加、修改以及删除等操作,而一般的浏览、搜索或者播放歌曲并不归类在管理当中。当用户登录系统之后具有不同的身份,而根据不同的身份我们分配不同的权限,其中主要身份包括超级管理员、一般管理员、普通用户以及未登录用户几大类。从表面上来看,超级管理员和普通管理员没有什么区别,但在权限上还是有些差别,比如超级管理员在用户管理上的权限要比普通管理员大。“面向管理”的需求则是体现在系统的全局架构上,而并没有体现在任何一个单一

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁