




已阅读5页,还剩29页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
辽宁财贸学院本科毕业设计(2017届本科毕业生)题目:基于JAVA的流行音乐网站开发学生姓名:学生学号:9系别:经济系专业名称:信息管理与信息系统指导教师:二一七年三月基于JAVA的流行音乐网站开发摘 要现代社会科技发展迅速,网络俨然成为传播信息的主要途径。层出不穷的音乐网站也成为我们日常工作和休闲娱乐的主要工具之一。我们也不再仅仅局限于听和光盘了,而是将目光聚集到了一个更方便快捷和有效的视野里。方便便捷的搜索,内容详细的歌曲信息,流畅高速的播放功能给众多音乐欣赏者带来方便和美好音乐的享受。这就是流行音乐网站在当今社会发挥的作用。流行音乐网站的目的是通过互联网、优化社会资源配置,从而实现音乐公共财富的最大化利用,它是运用现代通信技术、计算机和网络技术搭建的一种高效共享平台。对流行音乐的具体情况进行了解,通过对各大网站有关媒体音乐发布事项的调查与分析研究。在需求分析和数据建模的基础上,明确了一个流行音乐网站要实现的一些基本功能。再对网站系统结构设计和功能设计进行详细研究,从而完成一个流行音乐网站的设计和开发,在开发过程中主要运用JAVA开发语言中的SSH框架(Struts2,Spring,Hibernate)、JSP、JQUERY等相关技术。关键词: Struts2,Spring,Hibernate,数据库,JSP,音乐网站,JQuery,JavaScript,html,css全套设计加扣 3012250582 目录一、绪论3(一)、研究作用及目标3(二)、研究主要内容与常用方法3二、技术简介4(一)、B/S开发模式4(二)、JavaWeb41、Servlet42、JSP技术53、Listener监听器技术5(三)、MVC模式6(四)、SSH框架61、Struts 2.x框架72、Hibernate框架83、Spring框架8三、系统需求分析9(一)、构架概述91、功能构架92、模块需求描述10(二)、系统开发环境11四、系统设计11(一)、设计指导思想11(二)、流程设计111、系统操作流程图112、数据增加流程123、数据修改流程134、数据删除流程13(三)、实体关系模型设计14五、系统实现17(一)、主要模块设计171、首页172、在线听歌功能173、音乐分类184、搜索歌曲205、歌曲评论216、下载歌曲227、音乐评论管理238、音乐资源管理249、网站用户管理26(二)、系统设计中的核心难点27六、系统测试28(一)、程序调试28(二)、程序的测试291、测试意义及目的292、测试内容及结果29七、总结30八、参考文献313一、绪论(一)、研究作用及目标现如今利用java语言的地方很多,使用SSH框架进行Web开发也越来越常见,在这样的环境下,我这次就以框架为我开发音乐网站的主要框架。我的这个流行音乐网站的前台页面采用EasyUI前台框架技术,保证页面的便捷性,操作起来简单而且这种前台框架的封装思想对以后的软件开发提供了很好的设计思路和理念;通过SSH框架和JavaScript/HTML/CSS和相关的图片素材处理,完全自主原创的音乐播放界面,这对开发跨平台的流媒体播放有很大帮助;网站编码中使用接口扩展功能,采用低耦合,高内聚设计思想,很好实现了设计模式中开闭原则。熟悉Struts 2框架的MVC分层思想及相关标签库的使用方法,分析Hibernate ORM框架的映射关系和抓取策略,学习使用Spring对前两个框架进行完美的整合。配置对系统架构优化具有一种系统化管理的好处。使得对Java技术有了更深层次的理解,更加巩固和提升自己的JavaWeb开发技术水平。为了使喜欢音乐的人能够快速高效便捷的获取自己喜欢的音乐类型和满足音乐爱好者对明星们的崇拜,以音乐共享为主题的流行音乐网站发展起来了。音乐网站采用现在流行的B/S架构,完善的管理功能,先进的设计思维,整个网站在实用性、安全性、稳定性等方面都做了很大的进步。我所设计的这一个网站是基于JSP的全新的流行在线音乐网站,这个网站不同于其他音乐类网站,给人一个全新的听觉和视觉体验,让他在查看和搜索音乐时显得更加快捷方便,为了增近了人与人之间的交流与沟通,我特意增加了歌曲评论功能。这也正是我毕业设计的意义所在。(二)、研究主要内容与常用方法内容:1、流行音乐网站建模的过程、方法与具体步骤。2、流行音乐网站的可视化建模设计方法。3、流行音乐网站的建模技术及理论基础。4、流行音乐网站设计中用到的主要框架(SSH)的开发模式,以及每个框架底层实现原理,学习如何利用框架进行高效率开发。方法:1、资料分析法。翻阅大量有关音乐网站设计方法与理论的书籍资料,并进行相关资料的整理分类分析工作,整理出一套适合本次开发的理论基础。2、面向对象法。万事万物皆对为对象,对象是对实体的一种客观抽象概念,面向对象的基本出发点就是从人类思维方式来设计来开发。3、案例分析法。浏览其他相关音乐类网站,参阅网站的整体布局。分析和研究网站功能的设计和实现过程,为网站的总体建模提供参照。二、技术简介(一)、B/S开发模式B/S是Brower/Server的缩写,是一种三层结构的系统。第一层客户机是用户和系统的交互数据的接口。客户端程序精简到一个常用的浏览器软件,如火狐,微软公司的IE等。浏览器把HTML代码编译转换成网页。让网页能实现交互,将前台的数据传到后台,向服务器提出请求。这里所说的后台就是第二层的Web服务器。服务器来响应客户端的请求,并根据相应请求动态生成HTML代码,然后返回给客户机的浏览器呈现给用户。当客户端提交的请求有涉及数据的存取,Web服务器就需要和数据库共同完成这一处理工作。第三层数据库服务器的职责类似于C/S模式,负责处理来自不同的Web服务器发出的请求,以及对数据库进行相关的操作和管理。 B/S的好处就是可以在随时进行操作。只需要提供一台能上网的电脑就能操作,客户端可以实现零维护。这样可以大大提高系统的扩展性。系统管理员只需要分配给相应的用户名和密码,用户只要登陆就可使用系统。(二)、JavaWeb1、Servlet比如在上个世纪,动态页面自动生成已经对Web开发进行了一次大的改革,它可以节省大量人力物力,使原本需要投入在静态页面维护工作上的精力用来设计和建设更加高效的页面上来。动态Web应用可以根据用户的请求的不同,动态的返回值与对应的结果信息相匹配。Servlet有三个回调函数分别是doget、dopost和doput。回调函数这种专门用于生成动态页面的程序,被称为CGI(Common Gateway Interface,公共网关接口)程序。为了解决执行效率问题,推出了Servlet规范。本质是一种改进之后的JavaCGI,目的是减少程序运行时系统不断启动进程所消耗的资源,减少对java虚拟机进行的不必要的操作,从而提高应用程序的运行效率和速度。Servlet处理Java Web请求与相应的工作过程如图2-1图所示。图2-1 Java Web请求响应过程Sun公司为了让Servlet更加商业化、系统化、规范化,推出了一套完整Java Servlet API文档,面向接口的理念使得Servlet有了很好的实用性。但是他也有缺点:Servlet需在Java类中嵌入Html标签,但是Html发生变化的时候Servlet也需要修改。这对开发造成很大麻烦。 2、JSP技术JSP(Java Server Pages)是将静态的HTML和动态界面的生成策略相互结合,它扩展了Servlet API,接近HTML文件,JSP和HTML的区别就是JSP页面中能够嵌入JAVA代码,实现动态加载。JSP文件虽然能嵌入JAVA代码,但它不像普通JAVA文件那样。对JSP文件修改后,只要刷新对应页面就可以。因为修改静态页面对后台的Servlet没有影响,所以不需要重新对JSP进行编译,直接刷新浏览器就可以。当请求一个JSP页面,Web容器将进行3个处理:首先将编写好的JSP文件通过Web容器中的JSP转换Servlet转换成为对应的*.java源代码;然后通过JAVA虚拟机将*.java源代码文件编译成对应二进制字节码文件;最后收到客户端发来请求时,将已经编译好的二进制字节码文件进行处理,将动态生成的HTML页面返回给客户端浏览器。3、Listener监听器技术监听器其实就是一个实现了特定接口的Java程序,它专门用来监听另一个Java方法的调用和属性的变化,当监听的对象触发事件后,监听器会自定将其方法执行。这里的监听器和Java AWT/Swing编程中的Listener很相似,都是当某一个事件被触发后,可以执行特定的程序,进而实现某些目的。开发人员不需要知道事件(Event)和监听器(Listener)是怎样相互作用的,只要记住某一个事件触发的时候,一定会调用指定的Listener方法。所以只要将用户自己的业务逻辑写入到特定的方法中即可。本系统中使用Listener监听器实现了系统初始化监听功能,当系统服务器启动后,会去监听Application对象,初始化系统配置文件。JQuery技术很好的改善了JavaScript程序员编写JS程序的方法和思路。JQuery一个很重要的设计理念,那就是“写的少,做的多”(write less, do more)。它具有独特的全面的选择器、事件绑定机制、对AJAX的完美封装使其在很多优秀的JavaScript库中独树一帜,得到了很多JS爱好者的维护和支持。 (三)、MVC模式MVC模式(Model-View-Controller)是软件过程中一种很常用的开发模式,它把整个软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。MVC执行原理图如图2-2所示。图2-2 MVC执行原理图MVC模式的目的是为了实现一种动态的程序开发,使后续对程序维护和修改简易化,使程序的模块重复利用性得到提高。另外,此模式对时间复杂度的简化,使程序结构看起来更加直观。各个层次的主要职责:(控制器Controller)- 负责转发页面请求,对请求进行相应并返回处理结果。(视图View) - 前端人员对图形界面进行设计。(模型Model) - 后台人员编写程序中相应的功能、数据库维护人员对数据库数据进行管理和数据库设计。(四)、SSH框架1、Struts 2.x框架Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts 1.x原本属于Apache开源社区的一个项目,现在已经成为Java Web开发工具中相当欢迎的技术框架,但随着技术的不断更新换代,它渐渐被别的优秀框架给替换,但如果使用Servlet和JSP来建立方便扩展的的应用程序开发,它是最稳妥的选择。而Struts 2.x是WebWork为核心,Struts 2.x的底层核心是基于过滤器的,而Struts 1.x的底层核心则为Servlet。Struts 2.x的发展其实只是借助于Struts 1.x在业界享有的名气。它的产生使得项目的业务控制层不与Servlet API发生本可避免的依赖关系,并且它提供了更多便捷的工具和应用如OGNL,S标签库等。Struts 2.x的框架架构如图2-3所示。图2-3 Struts2.x架构图 本项目使用Struts 2.x框架整合。同理它是以照MVC思想的理论,项目的整体运行逻辑是:(1)、用户将请求发送给指定的Action层;(2)、Action通过接受页面传输过来的参数来确定响应的信息;(3)、Action调用对应的业务逻辑层读取后台数据库准备页面要响应数据;(4)、根据Struts.xml配置文件中对应配置的结果集,将带有结果数据返回到前台;(5)、页面返回给指定的浏览器。本系统设计初期考虑到页面的安全性,使用Filter来阻止用户对JSP页面的直接访问,让用户访问页面时通过Action进行转发。在本系统中除了使用Struts 2.x框架担当控制层(Controller)内容外,还用到了Struts2.x有关文件上传下载的相关功能。使得数据的上传下载更加方便快捷,增加数据的安全性和合法性。2、Hibernate框架Hibernate是轻量级的持久化框架,数据持久化映射(Object-Relative Database-Mapping, ORM)是各种场合下都要严格遵循的规范,Hibernate提供一种全自动化操作数据库的持久化框架。Hibernate就是为了不再手动去操作数据库。Hibernate中与数据库的交互使用方言设置,通过HQL、QBC、QBE等工具,可以方便的对数据库内容进行操作,并且可以实现相同的的程序内容在不同数据库上可以不修改代码即可运行的效果,大大提高了代码的可维护性和重用性。Java代码与数据库进行交互主要是使用一般的JDBC编程,但是需要编写汗多语句,但这样的SQL因为数据库平台的不一致性,会导致系统只能在某个特定的数据库环境下运行,这样维护变得相当复杂。但Hibernate的HQL则可以根据配置自动根据对相应的数据库方言翻译成对相应的SQL。并且可以自动维护字段和类之间的关联映射。3、Spring框架的核心是依赖注入(IC)机制与面向切面编程(AOP)思想对项目中设的解耦合,解决企业应用开发的复杂性,对Java EE的支持等都非常好。Spring是一个轻量级框架,并弥补了庞大,低效率等缺点。Spring框架的主要模块内容如图2-4所示。图2-4 Spring框架图Struts框架是MVC思想的一个很好实现,但是如果Action与DAO层、Service层之间的耦合性过于紧密,这将非常不利于项目中遇到的需求变化和转型。这时我们可以使用Spring的IoC机制来通过配置文件来管理并维护这种耦合关系,使得Spring成为一个中间调节者。这样一来Struts的Action和Hibernate的DAO与业务层Service就能够实现彼此不相互依赖的低耦合性。同样通过Spring可以对Hibernate进行整合,这样对Hibernate的相关操作就可以移植到Spring中来,通过Spring对系统整体架构进行整体把控。三、系统需求分析开发一个系统,首先必须要进行系统需求分析。其主要目的是确定系统的范围大小和规模,确定软件的总体设计要求以及所必需的软件环境、硬件设备、与外界程序的接口,确定操作系统和相关软件是否合适,以及对开发软件总体上的约束和限制。系统需求分析有助于弄清所需开发的软件、硬件环境、支撑软件和客户人员的相关要求。(一)、构架概述1、功能构架根据需求考察调研结果决定了本系统主要包括以下功能模块如图3-1所示。音乐网站后台前台最新歌曲全部分类搜索歌曲注册用户用户登录试听排行下载排行评论管理类型管理歌曲管理用户管理系统管理修改密码图3-1 系统体系结构2、模块需求描述(1)、用户管理对音乐网站中所有注册用户进行管理。用户在网站中注册账户,可以试听音乐、下载音乐、和对音乐进行评论等功能。后台管理中实现对用户的管理,可以对用户信息进行修改和删除操作。(2)、歌曲管理在网站前台界面中可以查看最新歌曲列表,搜索歌曲,查看分类列表,了解试听排行以及查看每首歌曲的下载排行列表,在试听歌曲的同时可以对歌曲进行评论等功能。后台管理中,管理员可以查看所有歌曲信息列表,添加歌曲,删除音乐,查询歌曲信息等功能。(3)、歌曲类型管理在网站前台界面中可以通过导航条查看全部类别的歌曲,并可点击进入每首歌曲的播放信息列表,用户可以进行试听,下载和评论歌曲操作。管理员在后台管理中,可对歌曲类型进行管理,包括查看歌曲类型信息列表,添加歌曲类型,但若想删除歌曲类型,会提示必须先将类型内所有歌曲删除否则将不能删除。(4)、评论管理在网站前台界面中可以对该歌曲进行评论,也可查看别人对歌曲的所有评论。管理员在管理界面中,可以查看所有评论信息列表,并且可以对评论信息进行删除。(5)、系统管理管理员登录后台管理界面可以对自己账号密码进行修改。(二)、系统开发环境表3.1 开发环境类型软件/工具/平台版本操作系统Microsoft Windows 7 Ultimate Service Pack 2 64-bit6.1浏览器火狐25.0软件平台Java(TM) SE Runtime Environment1.7.0IDEMyEclipse 8.511.0MySQL Workbench5.2数据库MySQL5.6服务器Apache Tomcat7.0编辑器Editplus6.3.3四、系统设计(一)、设计指导思想(1)有良好、美观的系统交互界面。使管理人员能够快速地掌握系统的使用操作;(2)要求增加用户注册验证,以提高系统的安全性;(3)对原始数据的增删改查等操作简单方便;(4)要求对数据能进行查询、统计。查询要求能够以最快的速度找到所需的数据,以达到方便管理的目的。(二)、流程设计 1、系统操作流程图如图4-1所示。系统主界面系统登录页面输入用户名及密码错误信息检查错误信息检查系统管理密码正确功能页面功能处理图4-1 系统操作流程图2、数据增加流程添加数据时,主键编号字段是由系统自动生成,而且不能修改,其他信息则由用户进行输入,之后对数据进行合法性判断,合法则写入保存至数据库,不合法则需要重新输入数据。数据增加流程如图4-2所示。开始自动生成编号输入数据是否合法写入数据库结束图4-2 数据增加流程图3、数据修改流程在修改数据时,必须要先选中一条等待修改的记录,然后可以直接输入数据,判断合法性,合法则保存到数据库,不合法则需要重新输入。数据修改流程图如图4-3所示。开始选择需要修改记录输入数据是否合法写入数据库结束图4-3 数据修改流程图4、数据删除流程当鼠标点击一条记录时,单击删除按钮,弹出窗口提示“您确定要删除吗?”,确定删除后数据库中对应相关内容就会消失。数据删除流程图如图4-4所示。开始选择需要删除记录是否删除更新数据库图4-4 数据删除流程图(三)、实体关系模型设计前台用户关系模型如图4-5所示。密码用户名最新歌曲用户操作功能评论音乐评论音乐评论音乐搜索歌曲注册用户试听歌曲图4-5 用户实体关系模型管理员关系模型如图4-6所示。用户名密码评论管理管理员查看信息类型管理歌曲管理系统维护修改密码用户管理维护内容图4-6 管理员实体关系模型(四)、数据库设计T_USER:用户表,用来存储在网站上注册的所有用户的信息如表4.1。表4.1 用户表字段名字段类型默认值含义是否为空注解IdINT用户IdN主键LoginNameVARCHAR(30)登陆账号NUserNameVARCHAR(30)用户昵称NPasswordVARCHAR(30)用户密码NSexVARCHAR(2)用户性别NEmailVARCHAR(50)用户邮箱YRegTimeVARCHAR(19)用户性别NT_SONGTYPE:音乐类型表,用来存储在后台建立的所有歌曲类型如表4.2。表4.2 音乐类型表字段名字段类型默认值含义是否为空注解songTypeIdINT类型IdN主键songTypeNameVARCHAR(50)类型名称YaddTimeVARCHAR(19)添加时间YupdateTimeVARCHAR(19)修改时间YT_MANAGER:管理员信息表,用来存储后台管理员信息如表4.3。表4.3 管理员信息表字段名字段类型默认值含义是否为空注解managerIdINT管理员IdNmanagerNameVARCHAR(30)管理员名称YmanagerPasswordVARCHAR(30)管理员密码YT_SONG:歌曲信息表,用来存储网站上所有歌曲的详细信息如表4.4。表4.4 歌曲信息表字段名字段类型默认值含义是否为空注解songIdINT歌曲编号N主键songNameVARCHAR(50)歌曲名称YsingerVARCHAR(30)歌手名称YspecialNameVARCHAR(30)专辑名称YsongFileURLVARCHAR(100)歌曲文件路径YsongImgURLVARCHAR(100)歌曲图片路径YsongFileSizeVARCHAR(10)歌曲文件大小YformatVARCHAR(10)歌曲文件类型YhitsINT0试听次数YdownloadINT0下载次数YuploadTimeVARCHAR(19)上传时间YsongTypeIdINT歌曲类型IdY外键T_DISCUSS:评论信息表,用来存储用户对于所有用户对歌曲所分享的评论信息如表4.5。表4.5 评论信息表字段名字段类型默认值含义是否为空注解discussIdINT评论IdN主键songIdINT歌曲IdY外键userIdINT用户IdY外键discussTimeVARCHAR(19)评论时间YdiscussContentsVARCHAR(200)评论内容Y五、系统实现(一)、主要模块设计1、首页该网站是一个属于展示信息类型的网站,它最大的作用就是及时发布一些最新的歌曲信息,供人们进行音乐试听、下载、评论等操作。听众在浏览器的地址栏中输入网址,就可以直接进入首页,网站首页主要实现以下几个功能:(1)实现网站内容导航;(2)最新歌曲列表;(3)用户注册、登录;(4)试听歌曲排行;(5)下载歌曲排行展示。网站主页面如图5-1所示。图5-1首页视图2、在线听歌功能在线试听功能是通过使用一个简单的JS插件进行音乐播放,用来实现在线音乐的播放功能如图5-2所示。图5-2在线听歌功能视图该功能涉及的核心代码实现:/发送歌曲信息function SendMusic( song ) var mEngine = new Music( song ),m_setsound = document.getElementById(jpalyer_v_wrap),m_soundcon = document.getElementById(soundcontorl),m_auto = document.getElementById(SimpleMusicPlayer);m_play.onclick = function() mEngine.toPlay(play); /显示播放信息Mtotype.toShow = function() varseek = document.getElementById(seekbar);var wrap = document.getElementById(jpalyer_v_wrap);var vbar = document.getElementById(jplayer_vbar);seek.style.width = 340px;wrap.style.width = 60px;vbar.style.display = block;这两段代码就是从后天读取本地音乐文件中的信息进行音乐播放。3、音乐分类进到网站后,点击相应的音乐分类就能查看所想看到的信息,首页显示所有音乐类型,并且展示各类型中的歌曲信息如图5-3所示。图5-3歌曲分类视图该模块的主要核心类有SongType类,SongTypeAction类,SongTypeDaoImpl类。其中SongType类主要用来存放歌曲分类的基本数据信息,SongTypeAction类主要用来实现前后台数据交互,SongTypeDaoImpl类实现数据库底层操作。(1)、SongType类:这个函数类存放歌曲分类的基本信息,必须和数据库里的字段一一对应。主要作用是为了存放前台传输的数据。public class SongType private Integer songTypeId; /分类IDprivate String songTypeName; /分类名称private Integer songCount; /歌曲数据private String addTime; /添加时间private String updateTime; /上次修改时间private Set songs; /歌曲/setter和getter方法省略(2)、SongTypeAction类:该函数类主要为了实现前后台数据库的交互以及增删改查操作。/检查分类下面是否存在歌曲public void delSongTypeCheck()for (int i = 0; i ids.length; i+) Integer songTypeId = (Integer.parseInt(idsi);list = this.songService.querySongBySongTypeId(songTypeId);(3)、SongTypeDaoImpl类:该函数类通过Hibernate面向对象的思想和数据库进行连接,并对数据库中的数据进行相应的增删改查操作。/添加分类public void addSongType(SongType songType) this.getHibernateTemplate().save(songType);/删除分类public void delSongType(SongType songType) this.getHibernateTemplate().delete(songType);/修改分类public void updateSongType(SongType songType) this.getHibernateTemplate().update(songType);/获取导航分类public List queryNavagitorType() return this.getHibernateTemplate().getSessionFactory().getCurrentSession()/.createQuery(from SongType s order by s.updateTime)/.setMaxResults(4).list(); 4、搜索歌曲这个音乐网站可以在打开网站首页之后,搜索自己想要听的音乐,可以搜索歌手名,类别或者专辑名称进行搜索如图5-4所示。图5-4搜索歌曲视图5、歌曲评论在歌曲试听页面通过单击“评论”即可进入歌曲评论页面,既可以查看别人的评论自己也可以添加评论信息如图5-5所示。图5-5歌曲评论视图本功能模块主要涉及核心类有DiscussAction类,通过该类可以对评论信息进行相关操作,并且可以关联相关的用户信息歌曲信息等。/发布评论public String addDiscuss()discuss.setDiscussTime(DateUtil.dateFormatToString(new Date();son.setSongId(Integer.valueOf(songId);Song song = songService.querySongTyId(son);discuss.setSong(song);discussService.addDiscuss(discuss);6、下载歌曲如果用户有需求,可以根据自己的需要下载歌曲到电脑本地,下载后歌曲文件名是根据日期自动生成的格式如图5-6所示。图5-6歌曲下载视图本模块主要涉及的核心类有DownloadSongAction类通过该类和数据库进行交互,查询相应歌曲信息,然后根据歌曲的URL地址确定文件位置,再通过Struts2的下载功能完成文件的下载操作。7、音乐评论管理拥有管理员身份的程序员进入后台管理页面后,可以查看该网站内所有歌曲信息和用户评论,能进行删除操作如图5-7所示。图5-7评论管理视图本模块的核心类是DiscussAction类。这个类可以获取所有歌曲的评论信息,并通过JSON数据格式返回到前台页面。/获取评论列表public String discussList()Page page = PageUtil.createPage(5, totalCount, currentPageTemp);List discussList = this.discussService.queryAllDiscussByPagination(page, Integer.valueOf(songId);ActionContext.getContext().put(page, page);ActionContext.getContext().put(totalCount, totalCount);ActionContext.getContext().put(playSong, playSong);ActionContext.getContext().put(discussList, discussList);return discussListUI;这个类不仅能实现评论列表信息的获取,而且还能分页显示数据信息,也是使用JSON格式数据返回到前台页面进行遍历显示。8、音乐资源管理后台人员进入后台管理页面后,在音乐资源管理页面下,管理员可查看当前所有歌曲信息列表,也可针对特定歌曲进行按歌曲名称搜索或按歌手名,专辑名搜索。管理员能添加歌曲和详细信息,并通过点击上传歌曲按钮上传对应分类歌曲如图5-8和5-9所示。图5-8音乐列表管理视图图5-9音乐资源添加视图本模块涉及的主要核心类有SongAction类,该类主要完成歌曲信息的上传验证歌曲重复性等操作。/删除歌曲文件File songFile = new File(path + / + this.songService.querySongTyId(song).getSongFileURL();songFile.delete();/删除图片文件File imgFile = new File(path + / + this.songService.querySongTyId(song).getSongImgURL();imgFile.delete();this.songService.delSong(this.songService.querySongTyId(song);9、网站用户管理管理员进到后台管理界面后,在用户管理页面下,管理员可查看已经注册用户信息列表,能对用户进行增删改查,修改信息时必须选中一条记录,删除时可以选中一条或多条进行批量删除操作如图5-10所示。图5-10用户信息管理视图本模块中涉及核心类有UserAcion类,该类中可以对用户进行用户基本信息的增删改查,返回到前台界面。/ 检查用户合法性public void checkUser()User user = userService.queryUserByLoginName(request.getParameter(loginName);if(user != null)response.setContentType(text/html;charset=utf-8);/拼接json数据total:10 , rows:,String json = NO;response.getWriter().write(json);该类中同样是调用底层数据库对象增删改查操作,返回JSON数据到前台页面显示。(二)、系统设计中的核心难点该系统用SSH + EasyUI框架技术,Struts2的功能是完成前台页面数据的接收和处理,并将处理后的数据返回到前台页面显示供用户体验。Hibernate的功能是操作底层数据库,自动生成SQL语句,字段的类型的自动识别。通过集成HibernateDaoSupport类,可以方便的对数据进行增删改查操作,使得各个类之间相互独立。业务逻辑层主要采用Spring完成,Spring的IOC和AOP技术很好的对代码进行的封装注入,各个层次间的逻辑调用得到的很好的体现。能降低代码之间的耦合性,使代码层次分明结构清晰。1、网页音乐播放功能的实现前端用到的技术师JavaScript简称JS,结合CSS样式进行修饰,通过调用Windows自带的播放器功能完成音乐的播放。主要核心代码有,Mtotype.toPlay = function(toPlay)var m_play = document.getElementById(jplayer_play);var m_pause = document.getElementById(jplayer_pause);var m_image = document.getElementById(image); if(toPlay = play)timer = setTimeout(function()var t_time = document.getElementById(tt);var alltime = timeAll();t_time.innerHTML = timeDispose( alltime );,2000);通过获取播放音乐文件信息,解析音乐播放时间并调用对应播放器实现音乐文件的播放功能。2、系统后台界面的管理后台用到的框架是JQuery框架中的EasyUI,它是对JS进行了深一步封装后形成的开源框架。在使用它的初期,会遇到很多有关数据读取异常的问题,导致前后台数据交互出现错误。但是它和传统的CSS+DIV开发不同,它很好的结合了前台页面技术和后台数据处理操作,并且能和AJAX异步刷新结合。3、音乐评论功能要想实现音乐评论功能既要实现动态页面刷新效果,而且还不能频繁刷新页面,用JQuery中的Ajax异步刷新请求技术来动态异步的和数据库进行交互是最合适的。其中核心代码有,$.ajax(type: POST,url: songAction_checkSong.action,data: songName=+songName,success: function(msg)if(msg = OK)$(#testCanAdd).html(该歌曲可以添加!);else$(#testCanAdd).html(该歌曲已存在!);通过设置异步提交地址和数据类型,以及返回成功后的数据处理操作,来完成与后台数据的数据交互操作。4、音乐评论使用在线编辑器设计在这里用到了ckeditor插件,它是一个在线编辑器,有强大的图文编辑功能。在刚开始使用这个插件时,会有乱码现象,是因为编码格式与数据库不一致。在这过程中需要对编辑器进行自定义修改,因为有用不到某些功能,这样就要求要去修改它的原始代码。修改一部分之后会影响其它功能的实现,所以通过修改config.js配置文件实现在不影响原始功能的基础上,实现自定义设计功能。5、前台页面布局这里用到的是DIV+CSS布局格式,因为它能对页面进行美化渲染。六、系统测试(一)、程序调试但凡是程序都会出现错误。如果是语法错误,程序运行就会报错。所以这样的错误修改起来容易。有些错误是在程序执行时由于不当的操作或对某些数据逻辑计算公式错误导致的。这样的错误隐蔽性高,不会经常出现。对这种动态发生的错误的测试是相当费力的。(二)、程序的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大学生心理健康教育 课件 第七章 大学生健康恋爱及性心理的培养
- 应急安全体验馆培训课件
- 2024年浙江省东阳市中考物理高频难、易错点题(A卷)附答案详解
- 秋季腹部保暖与肠道功能关联研究
- 水利设施管养人员考前冲刺试卷附参考答案详解【夺分金卷】
- 2025自考专业(汉语言文学)复习提分资料带答案详解(典型题)
- 2024-2025学年计算机二级过关检测试卷附答案详解【B卷】
- 2025年教育行业并购动态:投资策略与整合路径研究报告
- 2025年老旧小区电梯加装工程社会效益分析报告
- 2025年工业互联网平台微服务架构性能测试报告:工业互联网平台在能源管理中的应用
- 成都产业投资集团有限公司所属产业投资板块企业2025年招聘投资管理等岗位的考试参考试题及答案解析
- 乡镇综合行政执法队队长试用期满转正工作总结
- 2025天津医科大学眼科医院第三批招聘1人备考考试试题及答案解析
- 2025年法院书记员招聘考试笔试试题含答案
- 银行积分培训课件
- CPK、PPK和SPC(X-R控制图)模板
- 汉诺塔课件教学课件
- 校企合作实习生管理制度与考核办法
- 2025年二级建造师考试施工管理真题及答案
- 穿线施工方案(3篇)
- 光伏发电运行维护定期巡视检查项目和周期
评论
0/150
提交评论