基于Java-Web的猜歌游戏设计与实现(含源文件)--毕业论文.doc_第1页
基于Java-Web的猜歌游戏设计与实现(含源文件)--毕业论文.doc_第2页
基于Java-Web的猜歌游戏设计与实现(含源文件)--毕业论文.doc_第3页
基于Java-Web的猜歌游戏设计与实现(含源文件)--毕业论文.doc_第4页
基于Java-Web的猜歌游戏设计与实现(含源文件)--毕业论文.doc_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本科毕业论文(设计)题目:基于Java Web的猜歌游戏设计与实现 姓 名: 学 号: 专 业: 计算机科学与技术 院 系: 信息工程学院 指导老师: 职称学位: 讲师/硕士 完成时间: 年5月 教务处制 x学院本科毕业论文(设计)独创承诺书本人按照毕业论文(设计)进度计划积极开展实验(调查)研究活动,实事求是地做好实验(调查)记录,所呈交的毕业论文(设计)是我个人在导师指导下进行的研究工作及取得的研究成果。据我所知,除文中特别加以标注引用参考文献资料外,论文(设计)中所有数据均为自己研究成果,不包含其他人已经发表或撰写过的研究成果。与我一同工作的同志对本研究所做的工作已在论文中作了明确说明并表示谢意。毕业论文(设计)作者签名: 日期: x学院届本科毕业论文(设计)基于Java Web的猜歌游戏设计与实现摘 要随着社会的不断发展,越来越多的人面临的压力越来越大,人们渴望随时随地都能放松自我。然而游戏正成为人们释放压力,放松自己最行之有效的娱乐方式之一。而基于Java Web的猜歌游戏以其界面美观,操作简单,对硬件要求低等优点将会备受大家的青睐。系统通过数据库对用户基本信息和歌曲信息进行统一管理,借助经典的框架Servlet对数据进行处理,又选择了前端一些功能强大的插件对数据进行展示,将猜歌与游戏很好的结合起来,意在给用户创造了一个良好的交互平台。为了更好地管理和维护本系统,系统还专门设置了管理员角色和用户角色。管理员主要的任务在于对用户上传的歌曲进行审核。而用户则是享受猜歌的乐趣,使得猜歌游戏能够稳定、高效地运行。 为了增强游戏的趣味性,告别了原始猜歌游戏的不灵活性。该系统通过用户上传歌曲功能时时更新数据库,使得歌曲不断地更新,玩家与玩家之间可以互相分享歌曲。随着网络的发展,该游戏还存在大量地后续研究工作。 关键词:猜歌;游戏;数据;Servlet框架;Java WebIJava Web-based song guessing game design and implementationAbstractWith the continuous development of society, more and more people are faced with the pressure increasing, people want to relax yourself anytime, anywhere. However, the game is becoming a people release stress and relax one of their most effective forms of entertainment. The Java Web-based song guessing game with its beautiful interface, easy operation, and low hardware requirements will be much everyone of all ages. System through a database of user information and song information for unified management, with classic Servlet framework for data processing, and selected a number of powerful front-end plug-ins for data display, the song guessing game a good combination, meaning giving the user to create a good interactive platform. , intended for the user to create a good interactive platform. In order to better manage and maintain the system, the system also sets the administrator role and user roles. Administrator main task is to audit users to upload songs. And users will enjoy the fun of guessing the song, so guess song game can be stably and efficiently run. In order to enhance the game interesting, bid farewell to the original song guessing game inflexibility. The system functions by users to upload songs from time to time to update the database, so the song constantly updated, you can share songs with each other between players and the players. With the development of the game there are a large number of follow-up research. Keywords:Guess the song; play; data; Servlet framework; Java Web目 录1 绪 论11.1 研究的背景及意义11.1.1 研究的背景11.1.2 研究的目的与意义11.2 研究的主要内容21.3 本文组织结构31.4 本章小结32 系统研究的理论依据和技术背景52.1 猜歌游戏的设计思想52.2 系统开发环境简介52.2.1 Eclipse简介62.2.2 Tomcat介绍62.2.3 Mysql数据库简介72.2.4 系统开发环境的搭建72.2.5 Servlet框架简介72.3 本章小结83 系统的需求分析和概要设计93.1 系统需求分析93.1.1 系统功能需求分析93.1.2 系统性能需求分析103.2 系统概要设计113.2.1 系统流程的设计113.2.2 系统主要的难点设计界面123.2.3 数据库表的设计133.3 本章小结144 系统的实现154.1 系统界面的实现154.2 登录界面的实现154.3 游戏菜单界面的实现174.4 选择歌曲类型界面的实现184.5 猜歌游戏主界面的实现184.6注册账号界面的实现224.7 上传歌曲菜单的实现234.7 游戏排名界面的实现254.7 歌曲审核界面的实现274.8 本章小结295 测 试305.1 单元测试305.2 系统测试小结366 总结与展望376.1 论文总结376.2 展 望37致 谢38参考文献391 绪 论本章首先介绍了课题的研究背景、研究的目的与意义,其次对本文主要研究的内容进行了叙述。1.1 研究的背景及意义1.1.1 研究的背景 接口到手机App的纯数据化接口,变化是如此地翻天覆地。显然的,这些变化推动了Web框架的发展,如考虑到REST 服务支持,Tomcat 6到Tomcat 7从只支持GET,POST方法到对GET,POST,DELETE,PUT,HEAD等多种方法的支持1;与此同时,Jdk的每次发布都会给Web mvc框架带来新的技术热点,如Spring3 Mvc 的Annotation 配置取代Spring2 Mvc原有的XML配置文件升级2。然而随着网络的发展,网页游戏已经逐渐取代以往的单机游戏成为游戏界的主流。网页游戏凭着它特有的互动性,深受各个年龄段人们的喜爱。网页游戏从其重返网游市场之始,就已经注定了它在网游市场中必定占有一席位置,而以Java为核心技术的必定是网页游戏未来发展的重头戏。所以设计一款休闲娱乐、简易方便的益智游戏前景非常客观。本系统就是基于Java Web开发的一款休闲益智游戏。意在于将歌曲与游戏相结合,给用户一个不一样的娱乐方式。1.1.2 研究的目的与意义游戏在现今社会里已为人们释放压力、放松自己最行之有效的娱乐方式之一。随着网络技术的快速发展,网页小游戏以其界面美观、操作简单、无需安装、对硬件要求低等优点备受广大玩家的青睐。因此,设计一款符合大众风格的网页小游戏具有重要意义。在分析网页游戏的基础上,首先通过游戏策划和需求分析确定游戏规则、界面布局和游戏所需实现的功能然后用Html,CSS处理各种界面元素,完成游戏界面的制作;最后采用Java Scrip语言和Java 面向向对象语言编程实现游戏选泽类型、游戏开始、音乐播放、上传歌曲、个人信息查询、猜歌排名、歌曲审核、选择歌曲类型、友好的猜歌界面、猜中提示、猜错提示、图片消除、图片重置,积分等级提高、虚拟金币获取以及重新开始和下一关等功能。为了体现游戏的竞技性,增加趣味性,特设计sql2008数据库以保存玩家的得分及排名信息,用Java实现对数据库的直接操作,通过框架连接前端页面和后台Java代码,实现提交分数和查看排行榜的功能。同时为了提高游戏性能,对路径判断算法进行了优化。本文论述了猜歌游戏的开发背景、意义,介绍了系统开发所使用的环境、工具以及开发语言,并对相关的开发技术进行了阐述。重点论述了游戏策划、需求分析、详细设计、动画设计、代码实现和游戏测试的过程。综上所述现阶段网页游戏的开发进入了一个新的阶段,在这个阶段的开发中网页游戏不仅需要丰富的编程经验,还需要掌握不同框架的优缺点和用户新的娱乐需求的进一步发掘,从而开发出符合用户需求,吸引用户的游戏。1.2 研究的主要内容该游戏是一个益智休闲的小游戏。歌曲能让人心情舒畅,而游戏则让人轻松愉悦,但如果两者结合,这无疑将会受到广大玩家的青睐。本游戏还有一大特点是无需下载客户端,一经注册便能使用。当进入游戏时玩家可以任选所需要挑战的难度。游戏分为普通场和挑战赛。在普通场当中你可以选择不同类型的歌曲进行猜歌,歌曲类型分为流行歌曲、经典歌曲、民族歌曲、黄梅戏。很显然,这基本满足所有玩家的需求。在普通场中,你可以随意猜歌,并且猜对以后你可以获取一定的金币和积分,但是你是不能获取等级的。即使你猜错了,你也可以选择继续猜或者选择下一首。然而在挑战赛中,这四种歌曲类型都有可能出现,并且如果你猜错了,你只有用你的一定的金币去换取下一首歌曲。倘若你余额不足,将会终止你的猜歌游戏,你也可以选择放弃使用金币。在挑战赛中,每猜对一首歌,你的积分、等级、金币都会上升。而且你所闯的关数与你领取的奖励成正比。但是如果你猜错了,系统也会扣除一定的积分。下面我将会阐述金币、积分和等级这三者的意义和区别。积分只是代表你猜歌场次的多少。不论你猜对猜错,都会增加。而金币则是一个类似虚拟的网络人民币,你只有在猜对歌曲的情况下才能获得,当你有一定的金币的时候,你在挑战赛当中将会很随意的通过,毫无疑问,你领取的奖励也就会越多,同时等级也会越来越高。所以玩好这个游戏的根本在于储存金币。 如果你认为该游戏仅仅是这样,那你就大错特错了。为了体现游戏的公平性和趣味性,游戏中还有一个上传歌曲的功能。凡是注册账号者都可以将你喜爱的歌曲进行上传。为了保证歌曲的质量,该系统有一个歌曲审核的功能。审核歌曲有一个专门的负责人。负责人通过歌曲的信息通过试听和查阅资料,核实歌曲是否能够加入到猜歌游戏当中。如果审核通过,则加入到猜歌游戏列表当中,给广大玩家进行猜歌,如果审核过程中发现上传的歌曲不符合要求,则不给予通过。1.3 本文组织结构本文主要详细介绍了Java Web的发展史和现在所占的主导地位,而网页游戏又以其界面美观,操作简单,对硬件要求低等优点将会备受大家的青睐。第1章首先概述了项目的研究背景,分析当前Java Web在当前发展下的一种趋势,提出了本文研究的主要内容。其次,对项目研究的目的和意义进行了综述,其中也阐述了。第2章本章主要介绍了系统研究的理论依据,就如何才能实现猜歌游戏,如何对猜歌游戏实现多样化、趣味化、简易化、动态化、管理化、为主题进行展开。同时对系统的开发环境做了简单介绍。第3章本章主要对游戏所实现的功能进行需求分析,对猜歌游戏和系统性能进行了分析,分析了猜歌游戏实现的可行性。对系统的性能进行了详细的分析同时也提出来解决性能问题的解决方案。同时对系统的流程进行了设计。第4章根据系统的概要设计进行详细的设计与实现。对功能来具体实现。第5章主要对系统的功能进行单元测试,并对系统的测试结果进行总结。 第6章是对全文的总结与展望,总结本文的研究工作和成果,展望未来的技术努力方向。1.4 本章小结本章首先概述了项目的研究背景,分析了Java Web 在当今社会的地位和发展,并且也将自己的优势发展到未来。随后又提出了网页游戏也随着 Web的发展而越来越受到大众的喜欢,进而提出了本文研究的主要内容。随后又对猜歌游戏实现的可行性和性能进行综合考虑,提出猜歌游戏的需求和设计出猜歌游戏的流程。再通过设计出的需求对猜歌游戏功能实现进行详细设计。最后对系统进行单元测试并且总结自己的成果和后期维护性。 422 系统研究的理论依据和技术背景本章主要介绍了系统中猜歌游戏的理论依据和系统的开发环境。2.1 猜歌游戏的设计思想本系统主要是通过Java Web实现猜歌游戏,那么Java Web的优势体现在以下几个方面。安全性:有Java做强有力的后盾支撑,安全性高;广泛性:不但有成熟的设计模式,而且还有成熟的框架,可以用很多表达式以及标签来展示我们需要的内容;稳定性:安全性高,也是它具有稳定性的原因之一,另外,因为JavaWeb被用来做很多大型的商业项目,所以说,稳定性比较高,然而还有很多高手不断的改进;又有强大的数据库统一管理数据,要实现猜歌游戏一点也不困难。猜歌游戏的主要设计在于表设计。通过建立表关系,使得数据与数据之间既能独立又能共享。显然用户表主要用于管理用户的基本信息,通过该表能够给用户提供查询排名,查看基本信息功能,而管理员则可以对用户进行修改删除功能。音乐表主要是为了管理音乐功能。通过这张表可以实现猜歌功能。同时这张表也关联其本身,用于音乐的分类,又管理用户表是为了查询该歌曲是哪一位用户上传的。还有一张音乐审核表。主要目的是为了管理用户上传歌曲。管理员通过查看音乐信息,试听功能,审核该歌曲能否加入到音乐列表中,为广大的猜歌爱好者进行服务。很显然,他需要关联音乐表,当然我们也需要知道是哪位用户进行上传的,所以也需要关联用户表。通过这三张表基本上能够管理猜歌游戏的基本数据,然而Java Web又有比较流行的Java语言做支撑。还有许多开源的前端框架,比如Jquery实现局部刷新技术。又有特有的标签对音乐进行播放,再加上许多架包都能提供上传与下载功能。实现猜歌游戏的登陆、开始游戏,玩家排名,注册用户、查看个人信息、上传歌曲、歌曲审核等功能一点也不困难。2.2 系统开发环境简介2.2.1 Eclipse简介Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境3。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Kit,JDL). 虽然大多数用户很乐于将 Eclipse 当作 Java 集成开发环境(IDE)来使用,但 Eclipse 的目标却不仅限于此。Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所4。2.2.2 Tomcat介绍Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器5。目前最新版本是8.0。Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的6。诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet7。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器8,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。目前Tomcat最新版本为8.0。2.2.3 Mysql数据库简介MySQL是一个关系数据库,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一9。MySQL 是一种关联数据库管理系统10,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL 所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。由于其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境11。 2.2.4 系统开发环境的搭建Java Web的开发环境的搭建主要分为软件和硬件两个部分。(1)Java Web的开发的系统需求操作系统支持:Windows 系统或者Linx系统 硬件配置:系统盘需要至少2G的剩余硬盘空间,用于安装Eclipse。和 Tomcat和Mysql。(2)系统的开发工具Eclipse8.0Tomcat8.0 Mysql Window系统电脑一台(3)系统的开发语言 Java2.2.5 Servlet框架简介Servlet是一种服务器端的编程语言,是J2EE中比较关键的组成部分(其实学到现在J2EE里面的13个标准才接触了3个,他们分别(MWC)上发布的手机操作系统12。Servlet本质上也是Java类,编写Servlet需要遵循java的基本语法,但是与一般的Java类不同的是Servlet是只能运行在服务器端的Java类,而且必须遵循特殊的规范,在运行过程中有自己的生命周期,这些特性都是Servlet所独有的12。另外Servlet和HTTP协议是紧密联系的13,所以使用Servlet几乎可以处理HTTP协议所有方面的内容,这也正是Servlet受到开发人员青睐的最大原因14。2.3 本章小结本章主要介绍了猜歌游戏的设计思想,通过表结构分析该猜歌游戏的可行性。重点讲解了为了实现猜歌游戏所需要开发环境。3 系统的需求分析和概要设计系统的需求分析是系统开发过程中的基石,是系统开发过程中比不可少的环节,影响着系统的整个开发过程。在开发本课题前,本人对有关本课题的国内外市场以及现有成果进行了研究和分析,在实现基本功能的前提下又加入了新的功能,因此具有一定的竞争力和市场价值。3.1 系统需求分析3.1.1 系统功能需求分析系统主要实现以下几个功能:登录,注册,开始游戏,上传歌曲,歌曲审核,个人信息查询,游戏帮助、猜歌排名、关卡设置、猜歌、猜错猜对提示等。登录是为了防止没有申请账号的用户访问本系统,却无法对这些用户进行统一管理。要想玩该游戏需要申请账号以后方能通过登录界面进入本系统,然后进行猜歌。选择开始游戏后,为了增加游戏的趣味性和挑战性。可以挑战不同类型的歌曲,分为流行歌曲、经典歌、民族歌曲、黄梅戏、随机歌曲。选择游戏类型以后便可以进行猜歌。为了体现游戏的操作方便,用点击按键获得歌曲而代替以前的文本输入,而且还可以修改自己选定的歌曲。猜歌的关卡分为普通场和挑战赛,两者都有奖励。在普通场中,当猜错以后,会有一定的积分奖励。但如果猜对以后,不仅积分奖励翻倍,还会奖励金币。并且猜错以后还可以选择继续猜,也可以选择挑战下一首。然而对于挑战赛来说,当你猜错以后,你将无法继续进行下一首,除非你愿意花费一定的金币。对于猜错的玩家会扣除一定的等级。但是还会有积分的奖励。倘若你猜对了,你将会获得一定的积分、等级、金币。而且这些奖励会随着你挑战的关数而逐渐翻倍。为了让广大的玩家很快的熟悉该系统,还专门有个游戏帮助。点击以后即可下载。通过查看游戏帮助很容易上手该游戏。但是如果仅仅是这些功能很难满足广大玩家的需求。为了增强游戏的趣味性和挑战性。本系统还增加了歌曲排名和上传歌曲的功能。玩家可以查询所有的玩家的排名,也可以按条件进行查询。在上传歌曲的过程中,系统还专门设置了管理员角色和用户角色。用户可以将自己喜欢的歌曲进行上传(如图3.1所示)。但是为了保证歌曲的质量,管理员会对歌曲进行审核。审核过程中管理员可以查看歌曲的信息和试听该歌曲来判断该歌曲的信息是否属实。如果属实,则给予上传。并且该歌曲将会是广大玩家所猜的对象。倘若审核不通过。则无法加入猜歌游戏列表当中(如图3.2所示)。 图3.1 管理员功能 图3.1 用户功能3.1.2 系统性能需求分析 选择一个好的框架对于提高系统的性能有很大的提高。虽然如今市场上都流行SSH框架,也就是Struts+Spring+Hibernate,又或者是Mybatis作为访问数据库的桥梁。但是这些框架都是为了提高开发速度,降低开发的成本。比较适合大型的项目。然而计算机的性能与速度成反比。要想提高计算机的速度,就必须要多消耗一定的内存。所以我选择了Servlet框架。其实这些框架本质都是从Servlet演变而来。为了实现多人开发。用XML技术做了一系列的配置。也做了许多的判断。所以自然而然对于原始的Servlet框架性能明显高于这些框架。因为这个系统基本上是自己独立完成。综合考虑,Servlet框架性才是适合自己的框架对于猜歌排名中的列表展示,为了提高用户的查询速度,我选择了分页模式进行查询。可以分页的方式可以由玩家自己来定义。本来一次性全部加载完数据变为分批加载。这样既能满足玩家的需求,又能提高系统的性能 而另一个则是用局部刷新代替了整个页面的刷新。也就是用Ajax进行异步刷新,又以前的整个页面进行传输转化为数据以键值对的方式进行传输,性能显然提高了许多。3.2 系统概要设计3.2.1 系统流程的设计通过浏览器访问站点以后进入到登录界面,未注册的可以注册账号再进行登录。在用户名丶密码验证码都正确的情况进入游戏菜单界面。趟若不正确又跳到登录界面进行再次登录。在游戏菜单中选择所想要操作的功能。选择开始游戏后进行猜歌,根据猜歌的结果返回给歌曲排名。选择上传歌曲后,在长传歌曲填写歌曲信息以后对歌曲进行上传。上传完以后,管理员对所有玩家的上传的歌曲进行审核,审核通过的加入到猜歌游戏当中,审核不通过的保留在审核列表当中。选择游戏帮助以后即可下载该游戏的帮助文档。即可快速熟悉该系统。游戏的流程图如图3.2和3.3所示。 图3.2 系统总体流程图图3.3 猜歌流程图3.2.2 系统主要的难点设计界面为了使得用户猜歌更加的方便和增加游戏的趣味性,便由按键选择框代替原本的输入框。当一首歌曲随机出现时,便获取该歌曲的名称,然而从140个常用字中随机取出一定的汉字,使得随机产生的汉字和歌曲的名称加起来正好30个字符,展现给玩家。玩家通过点击按键能获取到汉字,并且也可以删除所选择的汉字。最终获取出歌曲的名称,返回给服务器进行判断。如图3.4所示而另一个难点则是为了页面的美观,和系统性能的考虑。在游戏排名列表和审核列表中选择了Ecside 前端页面框架。该框架不仅样式好看,还具有很多种功能。其中主要的可以选择玩家所需要分页的页大小、以Excel或者Csv格式导出列表、打印列表等功能.如图3.5所示图3.4选择歌曲名称 图3.5 猜歌排名列表3.2.3 数据库表的设计一个系统好坏在于数据库表的设计,一个完美的设计不仅能体现代码逻辑结构的清晰,更能体现代码的质量。提高代码的重复利用性,减少计算机的内存,提高效率。本系统通过需求分析设计出了用户表,歌曲表和歌曲审核表。用户表作为基本信息表,歌曲表则关联用户表,将用户和歌曲紧密的联系起来。而歌曲审核表既关联歌曲表又关联用户表。通过一对一、一对多、多对多的关系,三者既能独立,又互相联系。如图3.6所示图3.6 表与表之间的关系3.3 本章小结本章主要对游戏所实现的功能进行需求分析,对图形和系统性能进行了分析,分析了图形的特点和实现的可行性。对系统的性能进行了详细的分析同时也提出来解决性能问题的解决方案。 对系统的流程,系统所需的图形文件,系统的总体架构和系统用例进行了设计。通过本章的分析、设计能更加具体的了解系统功能,对系统所要实现的功能和图形文件有了更深的认识。为下一章系统功能的具体实现提供了可靠的参考依据。4 系统的实现本章主要是对系统的主要功能的实现。4.1 系统界面的实现系统的每个页面都会有一个按钮来实现页面的跳转。当点击按钮以后,系统会去寻找用户所需要请求的页面,也就是控制器。控制器会根据用户的业务需求去调用业务逻辑层的代码去处理业务,业务逻辑层则会访问数据库,提取用户所需要的数据,最后以页面的方式将数据返回给用户15。如图4.1所示图4.1 基于mvc的Servlet实现原理4.2 登录界面的实现通过登录页面获取用户的基本信息,包括用户名、密码、验证码。在服务器端首先对验证码进行验证。然后再去验证用户名和密码。通过用户名去查询数据库中有无该用户的信息,如果存在再去验证密码是否正确,倘若都正确,则允许进入猜歌游戏系统进行猜歌。否则返回登录界面。protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException String account = request.getParameter(account).trim();String password = request.getParameter(password);String captche = request.getParameter(captche).trim();HttpSession session = request.getSession(false);if(null != session)String identityings = String.valueOf(session.getAttribute(identityings);if(identityings.equals(captche)Credential credential = UserService.Login(account, password);if(credential.isApproved()session.setAttribute(GameUser, credential.getUser();response.sendRedirect(home);elserequest.setAttribute(msg, 你输入的用户名或密码有误,请重新入); request.getRequestDispatcher(/views/login.jsp).forward(request,response);elserequest.setAttribute(msg, 你输入的验证码有误!);request.getRequestDispatcher(/views/login.jsp).forward(request, response);elserequest.setAttribute(msg, 超时);request.getRequestDispatcher(/views/login.jsp).forward(request, response); 图4.2 登录界面4.3 游戏菜单界面的实现 用户可以根据游戏菜单进行不同的操作。 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException List userList=UserService.query( where 1=1 ); request.setAttribute(userList, userList); System.out.println(userList.size(); request.getRequestDispatcher(/views/gameList.jsp).forward(request, response); 图4.3 菜单界面4.4 选择歌曲类型界面的实现点击开始按钮以后进入歌曲类型界面。游戏分为两种类型:普通场和挑战赛。普通场又分为流行歌曲、民族歌曲、经典歌曲、黄梅戏。挑战赛随机歌曲。protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException String flag=request.getParameter(flag);request.setAttribute(flag, flag);request.getRequestDispatcher(/views/playgame.jsp).forward(request, response);图4.4 关卡挑战界面4.5 猜歌游戏主界面的实现 用户选择不同类型的歌曲以后,将选择的信息反馈到服务器端,在服务器端通过查询数据库找到用户选择类型的歌曲。随机产生一首歌曲,并获取歌曲的歌名和地址。再从数据库中取出140个常用的汉字。随机产生的汉字与歌曲的名称组合成30个汉字。再随机排列,展现在页面上。protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException /获得sessionUser user=(User)request.getSession().getAttribute(GameUser);/获取玩家基本信息int userId;if(user!=null&!.equals(user)userId=user.getIid();User userGame=UserDao.getUser(String.valueOf(userId);request.setAttribute(user, userGame);int userDj=user.getDj();String dj=null;if(userDj=1000&userDj=3000&userDj=6000&userDj=8000&userDj=12000)dj=最强王者; request.setAttribute(dj, dj);/获得关卡String guanka=request.getParameter(dqdjg);/定义当前第几关int dqdjg;if(guanka=null|.equals(guanka)dqdjg=1;elsedqdjg=Integer.parseInt(guanka)+1;request.setAttribute(dqdjg, dqdjg);List gcList=GradeDao.query();int count=gcList.size();List list=new ArrayList();String msg=true;/ 1. 流行歌曲 2。民族歌曲 3.经典歌曲 4.黄梅戏 5. 随机歌曲String flag=request.getParameter(flag);String where= where 1=1 ;/表示挑战赛if(flag!=null&flag.equals(5)/表示普通场elsewhere=where+ and musicFid=+flag;List musicList=MusicDao.query(where);try /获取有多少首歌 int countMusic=musicList.size(); /随机产生一首歌 int a=(int) (Math.random()*countMusic+1); if(a=1) Music music=musicList.get(a-1); request.setAttribute(music, music); /获取地址 String musicUrl=music.getMusicPath(); /获取歌曲真实名 String musicRealName=music.getMusicRealName(); / 获取歌曲名 String musicName=music.getMusicName(); request.setAttribute(musicUrl, musicUrl.trim()+musicName.trim(); /获取music名字额长度 int musicLength=musicRealName.trim().length(); /随机获取30-musicLength个字for (int i = 0; i 30-musicLength; i+) int b=(int) (Math.random()*count); list.add(gcList.get(b).getSjzd(); /将歌曲名称放入 list集合中for(int i = 0; i musicLength; i+)list.add(musicRealName.charAt(i);List syList=new ArrayList() ;/再循环30次随机取出for(int i = 0; i 30; i+)int c=(int) (Math.random()*list.size();System.out.print(list.get(c)+,);Grade grade=new Grade();grade.setSjzd(String.valueOf(list.get(c);list.remove(c);syList.add(grade);/获取猜歌游戏按钮StringBuilder gequan=new StringBuilder();for(int i=0;i30;i+)int d=i+1; gequan.append(+syList.get(i).getSjzd()+);System.out.println(gequan);request.setAttribute(gequan, gequan);StringBuilder gequz=new StringBuilder();/获取猜歌的一共需要几个字for(int i=0;imusicLength;i+)int d=i+1;gequz.append();request.setAttribute(flag, flag);request.setAttribute(gequz, gequz);request.setAttribute(musicLength, musicLength); request.setAttribute(syList, syList); catch (Exception e) / TODO: handle exceptionrequest.getRequestDispatcher(/views/partials/musicmain.jsp).forward(request,response);图4.5 猜歌游戏

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论