ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:334.20KB ,
资源ID:6130676      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6130676.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(在线音乐播放系统详细设计.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

在线音乐播放系统详细设计.docx

1、在线音乐播放系统详细设计案卷号日期在线音乐播放系统详细设计说明书 作 者: 完成日期: 签 收 人: 签收日期: 修改情况记录:版本号修改批准人修改人安装日期签收人 1 引言1.1 编写目的为软件开发人员在编码的过程中有所依据和参考。面向人员:程序开发人员1.2 背景说明:a待开发的软件系统的名称:在线音乐播放系统b列出本项目的任务提出者:北软老师c开发者:邓凯d用户:广大互联网用户e将运行该项软件的单位:web服务器1.3 定义 OMS :Online music system,在线音乐播放系统。1.4 参考资料列出要用到的参考资料,如:a本项目的经核准的计划任务书或合同、上级机关的批文;b

2、在线音乐播放系统概要设计.doc;c本文件中各处引用的文件、资料,包括所要用到的软件开发标准。列出这些文件的标题、文件编号、发表日期和出版单位,说明能够得到这些文件资料的来源。2 程序系统的结构本程序主要采用四层结构,如下所示:图1 系统结构示意图3 程序(标识符)设计说明3.1 在线音乐网络爬虫设计说明:资源的数量和质量将决定了系统的商业价值,为了获取更多的网络媒体资源,为系统设计了一款针对互联网上音乐资源的网络爬虫。3.1.1爬虫的原理:网络爬虫是一个自动提取网页的程序,它为搜索引擎从Internet网上下载网页,是搜索引擎的重要组成。传统爬虫从一个或若干初始网页的URL开始,获 得初始网

3、页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。聚焦爬虫的工作流程较为复杂,需要根 据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列。然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网 页URL,并重复上述过程,直到达到系统的某一条件时停止,另外,所有被爬虫抓取的网页将会被系统存贮,进行一定的分析、过滤,并建立索引,以便之后的查 询和检索;对于聚焦爬虫来说,这一过程所得到的分析结果还可能对以后的抓取过程给出反馈和指导。相对于通用网络爬虫,聚焦爬虫还需要解决三个主要问题:(1)对抓取目标的描述或定义

4、;(2) 对网页或数据的分析与过滤;(3) 对URL的搜索策略。3.1.2在线音乐播放系统爬虫的设计:与通用爬虫不同,在线音乐播放系统爬虫只针对 音乐频道音乐频道,针对MP3格式的资源。3.1.3爬虫的流程图:为保证资源的数量和可用性,每首歌至少抓取3个不同url地址。输入: 初始URL集。算法: 广度优先遍历。输出: 歌曲-URL地址的索引集。3.2资源验证模块 资源响应模块对资源进行验证。验证的标准有1. 文件的MIME类型2资源的响应时间输入: URL地址输出: 是否符合要求的布尔值。3.2.1验证流程 3.3播放模块:3.3.1播放模式的选择: 1)随机播放 2)顺序播放 3)单曲播放

5、 算法:用一变量记录当前模式,当捕获来自客户的模式改变的请求后,变量值变成相应的模式的值,调用不同德程序段空置音乐播放次序。3.3.2资源的改变:每首歌曲服务器将会发送三个链接至播放器,如果前面的链接在3秒之内没有响应,则将资源转换为另一个资源,同时发送错误信息给服务器。算法: 在系统中设置定时器,如果定时器超时,则自动提取另一个链接。 3.4查询模块: 系统本地资源主要来自网络爬虫,同时支持在线查询,用于完善查询功能。用户可以输入歌手名,或者歌曲名称查询,系统首先会在自己的数据库查询,如果没有找到相应的结果,那么系统转向互联网发送请求,同时解析返回的页面,提取页面中url地址,歌手信息,歌曲

6、信息,将信息按一定格式存入数据库。同时将信息发送给客户端。这样就保证了系统资源不断丰富。3.4.1具体功能 :1,、 歌手查询。 查询出系统内所存的所有歌手信息。点击歌手会获得此歌手所唱的所有歌曲。点击歌曲可以加入播放器播放,拖动可以加入我的收藏夹,所有的操作都会由系统给出提示。2、歌曲查询。 输入歌曲名称,可以获得所有同名的歌曲,以及其歌手。 3、歌曲-歌手查询。 同时输入歌曲和歌手信息,可以输出与此相匹配的歌曲和歌手信息,同时,如果在本地数据库中不存在,系统将转向互联网查询,并将查询结果存入数据库,然后发送给客户端。 4、下载 当用户单击某一个歌曲的条目时,在系统界面的下框中会出现 三个可

7、选项-下载、MV。如果用户单击下载,系统会提取歌曲条目中的url地址,自动建立连接。如果连接成功,则会弹出MP3的下载框。可以很方便地为用户提供下载服务。 如果用户点击 MV ,则系统会自动提取歌手信息,歌曲信息,发送请求至 同时将新建窗口,将返回的结果显示在新窗口中。 3.5用户反馈模块: 用户反馈模块主要用来收集用户的反馈信息,在播放的过程中,会因为各种各样的原因,导致歌曲播放的效果不尽如人意,还有很大一部分可能会出现内容与名称不匹配,而资源验证模块的工作只能初步地判断资源的可用性,所以为了提供更好的用户体验,需要广大的用户积极地参与系统的改进。 当歌曲被选中播放时,系统会出现错误报告的选

8、择框,里面所罗列的条目有以下几条 1.、链接速度过慢 2.、是网友翻唱,或者其他类型的音频 3、 是另外一首歌 4.、歌曲质量差 5、是其他以上没有列出的原因 用户可以选择其中的一项,向服务器发送错误报告,服务器会记录每一条错误报告。 3.6系统提示模块: 为了加强与用户的互动,系统提供了丰富的提示功能 ,当用户的行为触发不同的事件的时候,将会弹出不同的提示框,用以给用户适当的提示。系统提示模块贯穿于整个系统。 用户注册模块: 3.7 用户登录模块: 用户的权限分为 游客,会员,管理员。登录后根据不同的权限,所看到的界面不一样,当会员登录后,将不可见到管理员所能操作的模块,管理员登录后,将会呈

9、现出系统管理模块。 3.8 系统管理模块:是否存在 主要对系统中的资源进行管理,处理用户以及系统提交的错误报告。 主要采用了以下几个措施来维护系统资源。 1.、利用资源验证模块的测试功能,对错误信息为 链接速度过慢的资源进行测试,如果测试结果为资源不符合要求,则替换资源。 2,、对其他类型的错误信息,提供试听功能,人工地辨别错误。 3.、对已经辨别的错误,提供更换资源的功能。 利用网络爬虫,在互联网上自动地寻找与先前的资源不同的资源。 3.9娱乐频道模块: 此模块利用rss技术,为用户提供更为方便快捷的娱乐资讯。3.9.1 RSS简介 RSS是在线共享内容的一种简易方式(也叫聚合内容,Real

10、ly Simple Syndication)。通常在时效性比较强的内容上使用RSS订阅能更快速获取信 息,网站提供RSS输出,有利于让用户获取网站内容的最新更新。 网络用户可以在客户端借助于支持RSS的新闻聚合工具软件(例如 SharpReader,NewzCrawler、FeedDemon),在不打开网站内容页面的情况下阅读支持RSS输出的网站内容。 本系统利用爬虫的页面下载和解析功能,抓取各大网站的rss发布地址,下载并解析页面。可以聚合多个网站的信息。 3.10注册模块: 3.10.1功能:用户注册,用户需要填写用户名,密码,在填写完用户名之后,浏览器会异步地发送请求给服务器,验证用户名

11、是否可用。3.11我的收藏: 系统为每个会员用户维护一个我的收藏。 会员用户可以将自己喜欢的歌曲添加进我的收藏,可以讲我的收藏中的歌曲添加进入播放器。 4系统架构设计: 4.1.、 前台 : JavaScript构建 AJAX引擎 AJAX的最大机遇在于用户体验。在使应用更快响应和创新的过程中,定义Web应用的规则正在被重写;因此开发人员必须更注重用户。现在用户已经逐渐习惯 如何使用Web应用了。例如用户通常希望每一次按钮点击会导致几秒的延迟和屏幕刷新,但AJAX正在打破这种长时间的状况 在线音乐系统主要的目的是为用户提供一流的体验,所以在系统的实现中应该大量地采用 AJAX技术。 4. 2、

12、 后台 : struts2 spring hibernate 框架。 Struts 用于将请求与视图分离, hibernate 实现对象模型到关系模型的映射。Spring用于实现系统的控制反转。 4.2.1视图层设计:Struts 是一组相互协作的类、servlet 和JSP 标记组成的一个可重用的 MVC设计。 这个定义表示 Struts 是一个框架,而不是一个库,但 Struts 也包含了丰富的标记库和独立于该框架工作的实用程序类。1.Struts的基本特点 对Servlet和JSP的增强, 减少代码编写量 基于Web MVC模式,规范java Web开发 改善java Web开发的扩展性

13、 2.Struts的优缺点优点 :使用广泛, 用户众多, 就业有优势; 历史较长, 有成熟的第三方工具支持; 有很多web应用使用struts. 缺点: 由于历史较长, 一些功能比较落后; 配置较为繁琐; 编程模型需要线程安全的支持, 影响性能. 3.struts的MVC简介 1) Struts中的Controller(控制器) 命令设计模式的实现: Struts 的控制器将事件(事件通常是 HTTP post)映射到类的一个 servlet.ActionServlet(Command)创建并使用Action、ActionForm 和 ActionForward .通过struts-confi

14、g.xml 文件配置该 Command.从而扩展 Action 和 ActionForm 来解决特定的问题。 可以通过扩展 ActionServlet 来添加 Command 功能。在Struts框架中控制器组件由三个部分构成: 1消息控制模块;用户所有的提交请求都发往消息控制模块,在由消息总线模块根据视图映射模块找到消息处理模块来执行处理逻辑。 消息控制模块接收所有用户的请求,并根据请求视图找到处理。Strtus中通过ActionServlet和RequestProcessor类来完成。2消息处理模块; 该模块执行该消息的逻辑处理,因此通常由用户扩展实现。 Struts中通过Action类来

15、实现。 3视图映射模块;控制器逻辑和视图逻辑之间的结合是通过配置模块和配置文件建立其的链接。Struts中配置模块通过ModuleConfig类来完成,而配置文件由struts-config.xml文件提供。4.Struts中的View(视图) 视图组件通过JSP组件实现的。Struts框架对视图组件进行了扩展和封装。 Struts对视图的扩展提供了一组扩展服务器标签用来提供视图显示以及传递数据到处理缓冲,而处理缓冲由ActionForm的扩展类来实现。 Struts框架利用ActionForm Bean来实现视图与控制器之间的数据的交互,维持会话级或请求级的模型的状态。 服务器标签主要包括:

16、 Html视图标签; Logic逻辑流程控制标签; Bean数据缓冲读取标签; 5.Struts中的Model(模型) 1,Struts框架中并没有定义特定的模型组件,而是希望由用户自己决定选择合理的模型组件。 J2EE中可用的模型组件包括: JavaBean 用户定义组件; EJB 组件,由EJB容器实现组件; JDO 未来J2EE数据访问模型; 一些扩展框架如:Hibernate; 2,模型中状态的级别 会话级或请求级:ActionForm bean来维持;持久级:模型组件来维持; 根据需求,需要以下action响应不同的请求; 系统对象模型设计: 4.2.2业务逻辑层设计:4.2.2.1

17、Spring简介Spring作为实现J2EE的一个全方位应用程序框架,为开发企业级应用提供了一个健壮、高效的解决方案。所谓全方位,主要有以下几个特点: 1 非侵入式:对于写代码从来不考虑复用和移植的程序员来说,这一点根本就没有吸引力,那么请跳过。所谓非侵入式是指Spring框架的API不会在业务逻辑上出现,也就是说我们的业务逻辑应该是纯净的,不能出现与业务逻辑无关的代码。首先针对应用而言,这样我们才能将业务逻辑从当前应用中剥离出来,从而在其他的应用中实现复用;其次针对框架而言,由于业务逻辑中没有Spring的API,所以业务逻辑也可以从Spring框架快速的移植到其他框架。2 容器:Sprin

18、g提供容器功能,容器可以管理对象的生命周期,对象与对象之间的依赖关系。你可以写一个配置文件(通常是xml文件),在上面定义对象的名字,是否是单例,以及设置与其他对象的依赖关系。那么在容器启动之后,这些对象就被实例化好了,你直接去用就好了,而且依赖关系也建立好了。 3 IOC:控制反转,谓之“依赖关系的转移”,如果以前都是依赖于实现,那么现在反转为依赖于抽象吧,其实它的核心思想就是要面向接口编程,至于何谓接口何谓抽象,以及它们的好处,多看看设计模式吧,这里就不费口舌了。 4 依赖注入:建立对象与对象之间依赖关系的实现,包括接口注入、构造注入、set注入,在Spring中只支持后两种 5 AOP:

19、面向方面编程,我们可以把日志、安全、事务管理等服务(或功能)理解成一个“方面”,那么以前这些服务一直是直接写在业务逻辑的代码当中的,这有两点不好;首先业务逻辑不纯净,其次这些服务被很多业务逻辑反复使用,完全可以剥离出来做到复用。那么AOP就是这些问题的解决方案,我们可以把这些服务剥离出来形成一个“方面”,以期做到复用;然后将“方面”动态的插入到业务逻辑中让业务逻辑能够享受到此“方面”的服务 其他还有一些特点不是Spring的核心,这里只做简单陈述,如:对JDBC的封装与简化,提供事务管理功能,对O/R mapping工具(hibernate、iBATIS)的整合;提供MVC解决方案,也可以与其

20、他web框架(Struts、JSF)进行整合;还有对JNDI、mail等服务进行封装。4.2.3数据库层设计:系统ER图: Hibernate简介Hibernate是目前流行的ORM框架。ORM(Object/Relational Mapper)即“对象/关系型数据映射”,这是一种主要的对象持久化技术,需要同时使用面向对象和关系型数据进行开发。Hibernate的轻量级ORM模型逐步确立了在Java对象关系映射架构中的领导地位,而且它的很多设计还被J2EE标准组织吸纳成为EJB3.0规范化标准。1.什么是ORMORM的全称是Object Relational Mapping,即对象关系映射。它

21、的实现思想就是将关系数据库中表的数据映射成为对象,以对象的形式展现,这样开发人员就可以把对数据库的操作转化为对这些对象的操作。因此它的目的是为了方便开发人员以面向对象的思想来实现对数据库的操作。2什么是Hibernate对于Hibernate的称呼有很多,比如工具、技术、框架以及解决方案等,这些都可以,重要的是大家要知道它的作用。在这里我习惯性称它为框架,它是一种能实现ORM的框架。能实现ORM这个功能的框架有很多,Hibernate可以说是这些框架中最流行、最受开发者关注的,甚至连JBoss公司也把它吸收进来,利用它在自己的项目中实现ORM功能。3ORM的实现原理现在在Java领域大家对Hi

22、bernate的讨论很多,比如它的优缺点、如何应用、错误如何解决以及把它和Struts/Spring等框架相结合作为整个系统的解决方案。在这里我想和大家探讨一些更深层次的话题,那就是Hibernate是如何实现ORM的功能?如果让我们自己开发一款实现ORM功能的框架需要怎么做?其实这些问题就是围绕着一个词,那就是“映射”,如果我们知道如何实现这种映射那么我们也能够开发出自己的一款ORM框架。会使用Hibernate的开发人员都知道,在使用它实现ORM功能的时候,主要的文件有:映射类(*.java)、映射文件(*.hbm.xml)以及数据库配置文件(*.properties或*.cfg.xml)

23、,它们各自的作用如下。映射类:它的作用是描述数据库表的结构,表中的字段在类中被描述成属性,将来就可以实现把表中的记录映射成为该类的对象。映射文件:它的作用是指定数据库表和映射类之间的关系,包括映射类和数据库表的对应关系、表字段和类属性类型的对应关系以及表字段和类属性名称的对应关系等。数据库配置文件:它的作用是指定与数据库连接时需要的连接信息,比如连接哪中数据库、登录用户名、登录密码以及连接字符串等。数据库涉及的查询操作有:1.随机查询歌曲,在系统主页加载时调用。2.查询特定歌手的所有歌曲3.查询所有歌手4.查询特定歌手的特定曲目5.查询特定曲目6.查询错误信息(管理员)7.删除错误信息8.更新资源连接9.添加歌曲进入收藏夹10.从收藏夹中删除歌曲。11.添加歌手(从网络中查询)12.添加歌曲(从网络中查询)13.注册用户。14.查询用户收藏夹 在1、2、3、6 操作中,由于所发出的SQL语句频率非常高,故不应该使用Hibernate的对象关系映射的特性。而应该通过获得hibernate的底层数据库连接,直接采用JDBC操作。 其他操作可以使用hibernate提供的特性,实现级联删除、级联插入、级联查询。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1