五子棋手机网络对战游戏的设计与实现(编辑修改稿)内容摘要:

WAR 即可。 Tomcat 确实是一个很好的工具,不仅仅因为其免费,功能强大,更因为其开放性。 servlet 技术介绍 Servlet 是用 Java 编写的 Server 端程序,它与协议和平台无关。 Servlet运行于 Java- enabled Web Server 中。 Java Servlet 可以动态地扩展 Server的能力,并采用请求-响应模式提供 Web 服务。 最早支持 Servlet 技术的是 JavaSoft 的 Java Web Server。 此后,一些其它的基于 Java 的 Web Server 开始支持标准的 Servlet API。 一、 Servlet 的特点 Servlet 是 Java 技术对 CGI 编程的回答。 Servlet 程序在服务器端运行,动态 地生成 Web 页面。 与传统的 CGI 和许多其他类似 CGI 的技术相比, Java Servlet具有更高的效率,更容易使用,功能更强大,具有更好的可移植性,更节省投资。 高效 在传统的 CGI 中,每个请求都要启动一个新的进程,如果 CGI 程序本身的执行时间较短,启动进程所需要的开销很可能反而超过实际执行时间。 而在 Servlet 中,每个请求由一个轻量级的 Java 线程处理(而不是重量级的操作系统进程)。 在传统 CGI 中,如果有 N 个并发的对同一 CGI 程序的请求,则该 CGI程序的代码在内存中重复装载了 N 次;而对于 Servlet,处理请求的是 N 个线程,只需要一份 Servlet 类代码。 在性能优化方面, Servlet 也比 CGI 有着更多的选择,比如缓冲以前的计算结果,保持数据库连接的活动,等等。 方便 Servlet 提供了大量的实用工具例程,例如自动地解析和解码 HTML 表单数据、读取和设置 HTTP 头、处理 Cookie、跟踪会话状态等。 功能强大 在 Servlet 中,许多使用传统 CGI 程序很难完成的任务都可以轻松地完成。 第 6 页 共 24页 例如, Servlet 能够直接和 Web 服务器交互,而普通的 CGI 程序不能。 Servlet还能够在各个 程序之间共享数据,使得数据库连接池之类的功能很容易实现。 可移植性好 Servlet 用 Java 编写, Servlet API 具有完善的标准。 因此,为 IPla Enterprise Server 写的 Servlet 无需任何实质上的改动即可移植到 Apache、Microsoft IIS 或者 WebStar。 几乎所有的主流服务器都直接或通过插件支持Servlet。 节省投资 不仅有许多廉价甚至免费的 Web 服务器可供个人或小规模网站使用,而且对于现有的服务器,如果它不支持 Servlet 的话,要加上 这部分功能也往往是免费的(或只需要极少的投资)。 二、 Servlet 的主要功能 Servlet 的主要功能在于交互式地浏览和修改数据,生成动态 Web 内容。 这个过程为: 客户端发送请求至服务器端; 服务器将请求信息发送至 Servlet; Servlet 生成响应内容并将其传给 Server。 响应内容动态生成,通常取决于客户端的请求; 服务器将响应返回给客户端; Servlet 看起来像是通常的 Java 程序。 Servlet 导入特定的属于 Java Servlet API 的包。 因为是对象字节码,可动态地从网络加 载,可以说 Servlet对 Server 就如同 Applet 对 Client 一样,但是,由于 Servlet 运行于 Server中,它们并不需要一个图形用户界面。 从这个角度讲, Servlet 也被称为 Faceless Object。 三、 JAVA Servlet 的优势 Servlet 可以和其他资源 (文件、数据库、 Applet、 Java 应用程序等 )交互,以生成返回给客户端的响应内容。 如果需要,还可以保存请求-响应过程中的信息。 采用 Servlet,服务器可以完全授权对本地资源的访问 (如数据库 ),并且Servlet 自 身将会控制外部用户的访问数量及访问性质。 Servlet 可以是其它服务的客户端程序,例如,它们可以用于分布式的应用系统中,可以从本地硬盘,或者通过网络从远端硬盘激活 Servlet。 采用 Servlet Tag 技术,可以在 HTML 页面中动态调用 Servlet。 Servlet API与协议无关。 它并不对传递它的协议有任何假设。 像所有的 Java 程序一样, 第 7 页 共 24页 Servlet拥有面向对象 Java语言的所有优势 Servlet提供了 Java应用程序的所有优势 —— 可移植、稳健、易开发。 使用 Servlet 的 Tag 技术 , Servlet 能够生成嵌于静态 HTML 页面中的动态内容。 一个 Servlet 被客户端发送的第一个请求激活,然后它将继续运行于后台,等待以后的请求。 每个请求将生成一个新的线程,而不是一个完整的进程。 多个客户能够在同一个进程中同时得到服务。 一般来说, Servlet 进程只是在 Web Server 卸载时被卸载。 4 开 发环境介绍 操作系统: Microsoft Windows XP 程序语言: Java 2 开发平台: Java 2 Micro Edition + Tomcat 开发工具: SAMSUNG Wireless Tool Kit + 关于 SAMSUNG Wireless Tool Kit SAMSUNG WTK(SAMSUNG Wireless Tool Kit)是 SAMSUNG 公司针对 J2ME 推出的用于手机和 Palm 等移动设备的 软件 开发包,它通用性高,开发出的应用程序可保证能运行在大部分设备上, 具 有强大的功能和完善的调试手段,它提供 了 运行模拟器的最基本组件,是其他 IDE 需集成采用的必备元素 ,也可以单独使用。 5 客户端模块的开发 综述 客户端部分主要划分为 3 个界面:菜单界面,登录界面、游戏界面。 具体实现的功能为: 菜单界面:有如下选项: 进入游戏 —— 进入到用户登录界面; 操作说明 —— 进入说明界面,说明游戏软件的操作方法; 登录界面: 得到用户输入的用户名和密码,向服务器提交,如果身份验证成功,界面则跳转到游戏界面,如果身份验证失败,则弹出警告窗口,说明登录失败原因。 游戏界面: 用户游戏时看到的界面,负责根据需要画图。 程序的类结构 程序一共有 7 个类,程序的类结构如图所示: 第 8 页 共 24页 图 3类结构图 游戏的功能流程图 进入游戏后,首先显示的是菜单,有 2 个命令选项:进入游戏和操作说明;一个按钮:退出程序。 选择进入游戏这个命令,则进入到用户登录窗口,如果登录成功,则跳转到游戏界面,如果登录失败,则跳出警告窗口, 3 秒后返回到登录窗口。 也可以从登录窗口退出程序。 如果选择操作说明命令,则显示操作说明界面,按返回按钮,又回来主菜单。 游戏的功能流程如图所示 图 4功能流程图 ServerConnector OmokCanvas :Canvas Omok. :MIDlet Cursor :Canvas Logo :Form Help :Form OmokBoard : Canvas 菜单 进入游戏 操作说明 退出 登录窗口 游戏 说明 Back 游戏 警告窗口 第 9 页 共 24页 游戏的实现 主类 Omok 的实现 MIDlet 是最核心的类。 MIDlet 程序有三种状态: 暂停状态 运行状态 销毁状态 J2ME 程序都是从 MIDlet 类开始执行。 系统在执行 MIDlet 程序时,首先构造一个 MIDlet 类型的对象,然后使程序进入到暂停状态,按照生命周期的规定,系统会自动调用 MIDlet 对象的 startApp 方法使程序进入到运行状态,开始程序的执行。 图 5 开始界面 首先,先要创建 MIDlet 类型的对象,下面来看对象的构造方法: public Omok() { startCmd = new Command(Start, , 2)。 exitCmd = new Command(Exit, , 3)。 theCanvas = new OmokCanvas()。 theOne=new main()。 display=(this)。 help=new Help(this)。 logo=new Logo(this)。 instance=this。 } 第 10 页 共 24页 在这个构造器中,创建了一个 Display 对象用于显示,然后,又创建了一个画布的实例。 Display 类有两个最主要的作用: 获得屏幕的属性。 例如屏幕是否是彩色的,以及支持的颜色数量等信息。 控制屏幕的显示。 例如使屏幕显示某个指定界面或者获得当前的显示界面等。 其中,特别是第二个作用使用的更加频繁。 当程序启动的时候,则调用了程序的 startApp 方法,用来显示画面: public void startApp() { (startCmd)。 (exitCmd)。 (this)。 (theOne)。 } 这个方法的作用是把在构造器中创建的画布对象设置为当前屏幕上需要显示的画面。 当调用 destroyApp 这个方法的时候,则退出程序。 public void destroyApp(boolean unconditional) { exit()。 } public void exit() { ()。 notifyDestroyed()。 } 退出程序的时候,要实行垃圾回收,释放掉不再使用的内存。 游戏登录界面以及操作说明界面的实现 这两个类的实现都是继承了 Form 类,来添加各种组件的。 下面是效果图: 第 11 页 共 24页 图 6 Form界面效果图 下面先来分析 logo 类: class Logo extends Form implements CommandListener 这是类 的声明,它继承了 Form 类,同时派生了一个接口,用来产生按钮事件。 Logo(Omok midlet) { super()。 = midlet。 UserName=new TextField(用户名 ,9,)。 UserPassword=new TextField(密 码 ,9,)。 try{ img=new ImageItem(,(/),image explorer)。 } catch( e){} append(img)。 append(UserName)。 append(UserPassword)。 backCommand = new Command(登录 , , 1)。 exit = new Command(退出 , , 1)。 addCommand(backCommand)。 // addCommand(exit)。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。