《毕业设计(论文)基于J2ME的高校手机学生成绩查询系统的研究与应用.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于J2ME的高校手机学生成绩查询系统的研究与应用.doc(23页珍藏版)》请在三一办公上搜索。
1、本 科 生 毕 业 论 文题目: 基于J2ME的高校手机学生成绩查询系统的研究与应用姓 名: 学 号: 专 业:计算机科学与技术 年 级: 2006级 学 院: 信息科学技术 完成日期: 2010年5月 指导教师: 本科生毕业论文独创性声明本人声明所呈交的毕业论文是本人在导师指导下进行的研究工作及取得的研究成果,除了文中特别加以标注和致谢的地方外,本论文中没有抄袭他人研究成果和伪造数据等行为。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢意。论文作者签名: 日期: 20 年 月 日 本科生毕业论文使用授权声明海南师范大学有权保留并向国家有关部门或机构送交毕业论文的复
2、印件和磁盘,允许毕业论文被查阅和借阅。本人授权海南师范大学可以将本毕业论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或其他复印手段保存、汇编毕业论文。论文作者签名: 日期: 20 年 月 日 指 导 教 师 签 名: 日期: 20 年 月 日 目 录1 引言11.1 研究背景与意义.11.2 国内外研究现状22 开发环境及相关技术的介绍22.1 J2ME介绍22.1.1 概念22.1.2 架构32.2 关于Wireless Tool Kit32.3 关于MyEclipse和EclipseMe32.4 MIDP应用程序42.5 开发环境的搭建43 需求分析43.1 对功能的规定4
3、3.2 功能需求的描述53.3 运行环境规定84 系统总体设计84.1 数据结构设计84.1.1 数据字典84.1.2 实体-关系模型84.2 系统框架设计114.3 类-责任-协作模型114.4 对象-行为模型114.5 系统状态变迁图144.6 系统体系结构设计144.6.1 系统总体设计144.6.2 客户端的体系结构设计154.6.3 服务器端的体系结构设计185 总结与展望18参考文献19致谢19基于J2ME的高校手机学生成绩查询系统的研究与应用作者: 指导老师: (海南师范大学信息科学技术学院,海口,571127)摘 要:随着手机的日益普及和Java功能在移动设备上的实现,Java
4、应用程序产生的手机增值服务逐渐体现出其影响力,这对丰富人们的生活内容、提供快捷的资讯起着不可忽视的作用。随着移动通信技术的发展,企业应用、多媒体应用和联网游戏逐渐成为了移动开发领域关注的热点。本文介绍了在移动手机上开发的高校学生成绩查询系统。该系统的设计采用了面向对象的方法,对J2ME客户端体系架构,J2EE 服务器体系结构以及移动客户端与J2EE服务器互相通讯进行了设计,实现了现有的Web成绩查询的基本功能。关键词:J2ME;J2EE;手机;成绩查询系统Research and Application of The Mobile Score Query of College Student
5、System Based on J2ME Author: Yanyan Xu Tutor: Bing Han (Department of Computer Science and Technology, School of Information Science and Technology, HaiNan Normal University, Haikou, 571127)Abstract: With the ever-increasing popularity of cell phones and with the implementation of Java on mobile equ
6、ipments, the value-added service from Java gradually shows its influence, providing people with colorful life and prompt information. As developing of technology in mobile communication, enterprise applications, multimedia applications and online games become the hot spot in the field of the mobilit
7、y development. This paper describes the mobile score query of college student development system on mobile phone standard. In this system we use Object-oriented Approach to develop the architecture of the J2ME client, J2EE server architecture and mobile client and the J2EE server communication with
8、each other, and we realize the basic functions of .Web score query.Key words: J2ME;J2EE;mobile;Score Query System1 引言1.1 研究背景与意义J2ME(Java 2 Micro Edition) 是近年来随着各种不同设备,尤其是移动通信设备的飞速发展而诞生的一项新的开发技术。它定位在消费性电子产品的应用上,对设备的智能化、多样化,提供了革命性的解决方案,并因其“Write Once, run anywhere”的Java特性而提高开发的效率。而现在随着手机的日益普及和Java功能在
9、移动设备上的实现,Java应用程序产生的手机增值服务逐渐体现出其影响力,这对丰富人们的生活内容、提供快捷的资讯起着不可忽视的作用。随着移动通信技术的发展,企业应用、多媒体应用和联网游戏逐渐成为了移动开发领域关注的热点。而且随着手机的普及使用,利用手机上网原理,针对手机屏幕小和运行速度慢的特性,设计并实现了手机学生成绩查询系统。使学生在上网不方便时,通过手机查询自己的成绩及修改自己的登录密码。而且学校的老师也可以通过手机查询所教科目的学生的成绩,以及补考的学生的名单和成绩。1.2 国内外研究现状考生成绩查询方式经历了传统书信通知、电话查询、网上查询和手机短信查询的几个阶段,其中以网上查询方式最为
10、经济。当前,虽然Internet达到了前所未有的普及,但其终究受到“有线入户”的限制,在广大的农村、不发达地区以及学校学生宿舍还不能很方便的实现上网,老师也不能随时随地查看所教科目的学生的成绩,最主要是学生,他们不能在想查成绩但没有电脑或没联网的情况下查找自己的成绩,因为不是每个人都有自己的电脑,就算有电脑没联网也是不行的,而且电脑就算是笔记本的体积比较大,带起来很不方便。但手机可以随时都放在在身上,体积小很方便携带,而且无线通信网络几乎覆盖了全国每个角落,只要有一部具有支持J2ME MIDP 2.0并可以连接互联网的手机,可以不受时间、地域和设备的限制,轻松获取考试成绩。因此,开发一个使用J
11、2ME/J2EE的手机查询考试成绩的系统,将是对Internet查询成绩的一个重要补充,有着巨大的实际意义。2 开发环境及相关技术的介绍2.1 J2ME介绍2.1.1 概念J2ME(Java 2 Micro Edition)是Java 2的一个组成部分,它与J2SE、J2EE并称。根据Sun的定义:J2ME是一种高度优化的Java运行环境,主要针对消费类电子设备的,例如蜂窝电话和可视电话、汽车导航系统等等。J2ME在1999年的JavaOne开发人员大会上初次亮相,它的目标是面向智能无线设备和小型计算机设备的开发人员。J2ME的一个关键优点是,J2ME与所有支持Java的设备都是兼容的。支持J
12、ava的设备就是任何运行Java虚拟机器的计算机。Motorola、Nokia等生产厂商都生产支持Java的设备。J2ME把所有的嵌入式装置利用Configuration 的概念区隔成两种抽象的型态,即两种型态的嵌入式装置:一种是Connected Limited Device Configuration(CLDC)规格,即运算功能有限、电力有限的嵌入式装置;而另外一种装置则规范为 Connected Device Configuration(CDC)规格。J2ME还定义出Profile的概念。Profile 是架构在Configuration 之上的规格。之所以有Profile的概念,是为了
13、要更明确地区分出各种嵌入式装置上Java 程序该如何开发以及它们应该具有哪些功能。因此Profile 之中定义了与特定嵌入式装置非常相关的扩充类别函式库,而 Java 程序在各种嵌入式装置上的使用者介面该如何呈现就是定义在Profile 里头。Profile 之中所定义的扩充类别函式库是根据底层Configuration 内所定义的核心类别函式库所建立。J2ME主要适用于小型嵌入式设备,这些设备与PC或是服务器设备相比没有统一的硬件标准、外观与操作方式,其功能也是千差万别的。但是J2ME在适用于这些设备的同时也保留了Java的传统特性,即任何时候和任何地点的代码具有可移植性、部署灵活性、安全的
14、网络传输性,以及代码稳定性。2.1.2 架构J2ME 使用配置(Configuration)和简表(Profile)2定制 Java 运行时环境 (JRE)。作为一个完整的JRE,J2ME由配置和简表组成,配置决定了使用的 JVM,而简表通过添加特定于域的类来定义应用程序。配置将基本运行时环境定义为一组核心类和一个运行在特定类型设备上的特定 JVM。简表定义应用程序,特别地,它向J2ME配置中添加特定于域的类,定义设备的某种作用。J2ME架构由3个软件层组成,如图2-1所示。第一层是包括在内的配置层,这个层次直接与原生操作系统进行交互。配置层还处理Profile和JVM之间的交互。第二层是Pr
15、ofile,由小型计算设备的应用程序编程接口(API)的最小集合组成。第三层是Mobile Information Device Profile(MIDP)层,MIDP层由用户网络连接、永久存储和用户界面的Java API组成。它还能够访问CLDC库和MIDP库。4图2-1 J2ME架构的层次2.2 关于Wireless Tool KitWTK(Wireless Tool Kit)是Sun公司针对J2ME推出的用于手机和Palm等移动设备的开发包,是除手机厂商的专用开发包外唯一的手机模拟器开发包。它通用性高,开发出的应用程序可保证能运行在大部分设备上,而不像专用厂商具有一定的不兼容性。虽然它没
16、有强大的功能和完善的调试手段,但它提供运行模拟器的最基本组件,是其他IDE需集成采用的必备元素。2.3 关于MyEclipse和EclipseMeMyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对Eclipse IDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML, Struts, JSP, CSS, Javascript, SQL, Hibernate。简单而言,
17、MyEclipse是Eclipse的插件,也是一款功能强大的JavaEE集成开发环境,支持代码编写、配置、测试以及除错,MyEclipse6.0以前版本需先安装Eclipse。MyEclipse6.0以后版本安装时不需安装Eclipse。Eclipseme是Eclipse的最佳J2me开发插件,EclipseME帮助你轻松的把无线工具包整合到Eclipse开发环境中,注意eclipseme 1.0.0以后的版本只支持eclipse3.1以上的版本,eclipseme 1.0.0支持eclipse3.1和eclipse3.0。2.4 MIDP应用程序MIDP引入了全新的应用程序模型MIDlet。
18、MIDlet是应用程序的主类,被应用程序管理软件(Application Management Software,AMS)管理。多个MIDlet可以组成MIDlet套件,以jar包的形式发布。与jar文件一起发布的还有一个文本文件Java应用程序描述符(Java Application Descriptor, JAD)。JAD文件的作用在于描述MIDlet套件的基本信息,AMS安装MIDlet套件时可以首先解析JAD文件的内容读取套件信息。MIDlet:是Jave一个类,扩展了javax.microediton.midlet.MIDlet抽象类。MIDlet生命周期分3种状态:运行状态、暂停状
19、态、销毁状态等。2.5 开发环境的搭建1下载JDK和J2ME无线工具包()安装SUN JDK:jdk-6u7-windows-i586-pJavaSE.exe安装SUN J2ME SDK:sun_java_wireless_toolkit-2_5_2-ml-windows.exe2下载并安装MyEclipse(MyEclipse6.5.0GAE3.3.2InstallerA.exe)下载并安装Apache Tomcat 5.5.203下载并安装EclipseMe(eclipseme.feature_1.7.9_site.Zip)4下载并安装MySQL5.03 需求分析3.1 对功能的规定该系统
20、的用户类型分为学生和教师,教师可以先登陆之后,对所教科目的所有学生成绩进行查询,可以对自己的登陆密码进行修改;学生可以先登陆之后,选择自己所要的查询方式,迅速查出该学生自己的成绩,并计算该学生查出的所有成绩所获得的总学分,也能对自己的登陆密码进行修改。本系统具体实现如下的功能: 1. 通过手机模拟器根据设定的条件查询成绩(实现学生网上成绩的查询。学生可以先登陆之后,选择自己所要的查询方式,迅速查出学生的成绩)。2. 用户(学生和老师)的登陆。3. 用户(学生和老师)修改自己的密码。4. 老师可以查询所教课程的学生成绩和补考学生的名单。 5. 用户的不同权限设置。高校手机学生成绩查询系统的Use
21、r Case如图3-1:图3-1 User Case图3.2 功能需求的描述(1) 用户登陆:用户必须登陆该系统,才能进行密码修改和成绩查询操作。如下图所示,图3-2是用户登陆的流程图。 图3-2 用户登陆的流程图(2) 修改用户密码:如下图所示,图3-3是密码修改的流程图。 图3-3 修改用户密码的流程图当用户成功登陆后,用户在界面上选择“密码修改”按钮时,用例开始。注意:当用户还没有登陆时,系统会给出提示,提示“对不起,您还没有登陆,请先登陆!”。按“修改”按钮后,系统验证原始密码的正确性。若验证通过,系统更新数据库,并提示“恭喜,用户密码修改成功!”,提示后自动跳转到主界面;若验证不通过
22、,系统给出提示,提示“密码错误!”,系统返回主界面。(3)成绩查询:成绩查询的方法有两种:一种是学生登陆后,查询自己的成绩;另一种是教师登陆后,查询该教师所教科目的学生成绩。选择“成绩查询”按钮,系统会根据用户的权限判断用户进入相应的成绩查询的界面。如图3-4学生成绩查询的流程图所示。图3-4学生成绩查询的流程图当用户的权限为学生时,进入学生成绩查询界面,选择相应的查询方式。系统根据可选择的下拉列表(学年、学期、课程性质)其中的一项或多项,再选择相应的查询方式(学期成绩、学年成绩、历年成绩、未通过成绩)进行成绩查询,根据选择的内容和该用户的用户名的关键字,从数据库中检索,并返回该学生所要查询的
23、所有科目的成绩和总学分。如下图所示,图3-5教师成绩查询的流程图。图3-5 教师成绩查询的流程图当用户的权限为教师时,进入教师成绩查询界面,用户选择科目、年级、班级和是否为补考,点击“查询”。系统根据所选择的关键字,从数据库中检索,并返回某班的该课程的学分和所有学生或该课程补考学生的成绩。用户按“查询”按钮后,如果没有成绩记录,系统给出提示,提示“对不起,查无记录!”。3.3 运行环境规定客户端:支持J2ME MIDP 2.0并可以连接互联网的手机服务器端:PC机或服务器应用程序服务器:Apache Tomcat 5.5.20数据库系统:MySQL 5.04 系统总体设计4.1 数据结构设计4
24、.1.1 数据字典系统的数据字典如表4-1到表4-9所示:表4-1 学生信息表student字段名称数据类型字段大小是否主键是否为空说明stu_idchar12是否学号stu_namevarchar20否否姓名stu_genderchar2否否性别stu_birthdatetime否是出生日期nativeplacevarchar60否是籍贯class_idchar6否否班级号cometimedatetime否否入学时间gradenumeric4否否年级表4-2 教师用户表userteacher字段名称数据类型字段大小是否主键是否为空说明uidchar6是否用户名pwdchar12否否密码col
25、l_idchar2否否学院号表4-3 学生用户表userstu字段名称数据类型字段大小是否主键是否为空说明stu_idchar12是否用户名/学号pwdchar12否否密码表4-4 课程表course字段名称数据类型字段大小是否主键是否为空说明cou_idvarchar9是否课程号cou_namevarchar30否否课程名称xuefennumeric(3,1)否否学分xueshinumeric2否否学时typevarchar20否否课程性质dept_idchar4否否专业号termnumeric1否否学期表4-5 已安排的课程表courseinfo字段名称数据类型字段大小是否主键是否为空说明
26、gradenumeric4是否年级class_idchar6是否班级号cou_idvarchar9是否课程号uidchar6否否教师编号表4-6 成绩表scores字段名称数据类型字段大小是否主键是否为空说明stu_idchar12是否学号cou_idvarchar9是否课程号scorenumeric(4,1)否否成绩isdualnumeric1是否是否为补考表4-7 学院表college字段名称数据类型字段大小是否主键是否为空说明coll_idchar2是否学院号coll_namevarchar30否否学院名称表4-8 专业表dept字段名称数据类型字段大小是否主键是否为空说明dept_id
27、char4是否专业号coll_idchar2否否学院号dept_namevarchar30否否专业名称表4-9 班级表classes字段名称数据类型字段大小是否主键是否为空说明class_idchar6是否班级号dept_idchar4否否专业号class_namevarchar30否否班级名称4.1.2 实体-关系模型由实体-关系模型,进一步进行MySQL数据库系统所支持的实际数据模型的设计,具体描述数据库的逻辑结构。系统的实体-关系(Entity-Relationship,ER)模型如图4-1所示:图4-1 E-R模型图4.2 系统框架设计该系统分为客户端和服务器端两部分。其中,客户端处于
28、J2ME的手机设备上。由于目前无线网络受到传输质量的约束,手机与服务器的通信应尽量减少;而且手机为资源受限的设备,其计算能力远不如PC机或服务器,因此应让其主要的业务功能处理、运算等交给服务器来完成,手机只简单地作为表现层。服务器端采用JSP来进行业务逻辑处理。JSP可以直接处理HTTP的请求,可以减小客户端与服务器端之间的耦合度,也容易进行后期的扩展,如用JSP等技术构建网页,用PC机上的浏览器登陆后台进行的维护和管理,还可以扩展为用内容更加丰富的Web成绩查询系统。服务器端则划分为3层。业务逻辑层:主要用JSP来实现,负责与客户端通信和处理业务数据等功能。控制层:控制层进行业务逻辑验证,并
29、封装数据库的访问细节,负责访问数据库,提供对业务数据的保存、更新、删除和查询等操作。数据库层:采用开源的关系数据库系统MySQL。通过以上的分层,将会提高系统的可移植性、可维护性、可扩展性、可重用性、可管理性等性能。具体的系统框架如图4-2所示:图4-2 系统框架图4.3 类-责任-协作模型类-责任-协作(Class-Responssbility-Collaborator,CRC)模型5 是一种简单且有效的面向对象的分析技术。它由三部分组成:类、职责、协作。一个类代表许多类似的对象。而对象是系统模型化中关注的事物。他们可以是一个人、地方、事情、或任何对系统有重要性的概念;职责是类需要知道或做的
30、任何事物。这些职责是类自身所知的知识,或类在执行时所需的知识;协作是指为获取消息或协助执行活动的其他类。根据需求分析中的功能规定和用例描述,可以抽取出以下各个分析类:学生用户、教师用户、班级、学生信息、课程、已安排的课程、成绩。系统具体的CRC模型如表4-10到表4-16所示:表4-10 UserStu类的CRC模型类名:User_stu类的类型:交互类的属性:学号用户名、密码责任:协作:登陆与UserNotFoundException类、DB类、PasswordNotCorrectException类协作修改密码与PasswordNotCorrectException类、DB类协作表4-11
31、 UserTeacher类的CRC模型类名:User_teacher类的类型:交互类的属性:用户名、密码、学院号责任:协作:登陆与UserNotFoundException类、PasswordNotCorrectException类和DB类协作修改密码与PasswordNotCorrectException类、DB类协作表4-12 Course类的CRC模型类名:Course类的类型:角色类的属性:课程号、课程名称、学分、学时、课程性质、专业号、学期责任:协作:查询教师所教的所有科目与DB类协作表4-13 Student类的CRC模型类名:Student类的类型:角色类的属性:学号、姓名、性别
32、、出生日期、籍贯、班级号、入学时间、年级责任:协作:查询学生的年级与DB类协作表4-14 Courseinfo类的CRC模型类名:Courseinfo类的类型:交互类的属性:年级、班级号、课程号、教师编号责任:协作:查询课程编号与DB类协作表4-15 Classes类的CRC模型类名:Classes类的类型:角色类的属性:班级号、专业号、班级名称责任:协作:查询教师所教的所有班级与DB类协作表4-16 Grade类的CRC模型类名:Grade类的类型:交互类的属性:学号、课程号、成绩、是否为补考责任:协作:学生查询自己的成绩与Student类、DB类协作教师查询学生的成绩与Courseinfo
33、类、Course类、Classes类、DB类协作4.4 对象-行为模型用户通过主界面菜单和用户界面导航,可以进行各种操作。用户的网络操作都是通过选择或输入数据,然后由HTTP连接类将请求发送到服务器,然后有相应的JSP调用相应的业务逻辑方法,将结果返回给客户端或返回错误的响应代码。下面是对象-行为模型的时序图如图4-3所示:图4-3 对象-行为模型4.5 系统状态变迁图当用户启动客户端应用程序时,应用程序启动,并处于未登陆状态,可以退出应用程序。当用户登陆成功后,系统处于已登陆状态,可以进行各种操作,也可重新登陆,或退出应用程序。具体的系统状态变迁图如图4-4所示:图4-4 系统状态变迁图4.
34、6 系统体系结构设计4.6.1 系统总体设计客户端负责显示界面,服务器端负责处理用户请求并且数据库连接,下面是整体设计图:密码修改界面成绩查询界面帮助界面系统描述界面退出界面欢迎界面选择功能界面用户登录界面数据库JSP处理请求连接服务器连接图4-5 系统总设计4.6.2 客户端的体系结构设计客户端设计六个主要的功能界面。登陆界面、密码修改界面、成绩查询界面、帮组界面、退出界面、系统描述界面。如下是系统设计的状态图:图4-6 客户端设计(1)六宫格主菜单在MIDP图形用户界面组件中,List非常适合做菜单,其可移植性非常出色。不足之处在于表现形式比较单一,对用户的视觉冲击不够。本系统的主菜单采用
35、画布的六宫格的设计方案,可以弥补以上的不足。六宫格主菜单的具体内容如图4-7所示:图4-7 系统主菜单(2)使用POST方法进行数据传输HTTP最简单、最方便、最灵活的形式就是传送一个HTTP GET或POST请求(Request)给J2EE Server,然后等待Server返回一个响应(Response)。在GET请求中,请求的信息数据被附加到URL中传送到服务器;而POST请求的数据则是和URL分开传送的,这样有两个好处:一是对传送的数据量大小没有限制,二是数据以分开的流传输,可以是其他的各种格式,包括二进制数据,而且对用户是不可见的。服务器端用字节流的形式返回必要的数据给客户端,最大限
36、度地减少网络传输量,同时也减少了用户等待的时间。(3)Cookie管理尽管J2ME支持HTTP协议,但是不支持Session会话管理,因此必须在系统中加以实现。该系统实现了J2ME的Cookie管理,考虑到J2ME的限制和该系统的需求,我采用了记录管理系统(Record Management System,RMS)来实现该功能,RMS是MIDP必须支持的一个子系统,可以持久性存储数据,因此它是存储cookie的理想空间。下面是对RMS操作的相关代码:/ 删除记录存储器if (RecordStore.listRecordStores() != null)/listRecordStores():获
37、得小型计算设备在永久存储器中保存的记录存储器 try RecordStore.deleteRecordStore(myUidRMS);/删除记录存储器catch (Exception error) alert1 = new Alert(Error Removing, error.toString(), null, AlertType.WARNING); alert1.setTimeout(Alert.FOREVER); display.setCurrent(alert1,six);/ 创建一个新的记录存储器 try recordstore = RecordStore.openRecordSto
38、re(myUidRMS, true );/第一个参数是记录存储器的名字、第二个参数表示当记录存储器不存在时是否创建该记录存储器并且打开 catch (RecordStoreException e)e.printStackTrace();/ 添加记录到记录存储器中String uid = 200624101001;int a = 1;tryString outputData = new String2;outputData0 = uid.getString();String choice = a+;outputData1 = choice;for (int x = 0; x 2; x+)byte
39、 byteOutputData = outputDatax.getBytes();/把字符串转化成字节数组recordstore.addRecord(byteOutputData, 0, byteOutputData.length); catch ( Exception error)./ 从记录存储器中读取记录try recordstore = RecordStore.openRecordStore(myUidRMS, false );uid = new String(recordstore.getRecord(1);a = new String(recordstore.getRecord(2
40、); catch (RecordStoreException e) e.printStackTrace();/ 最终必须关闭记录存储器finallytry recordstore.closeRecordStore();/关闭记录存储器 catch (Exception error) . 4.6.3 服务器端的体系结构设计服务器端采用的服务器软件是Apache Tomcat Web服务器和MySQL数据库服务器。在逻辑上,将服务器分为3个层次,即业务逻辑层、控制层(JavaBean)和数据库层。其中,业务逻辑层由Tomcat容器的JSP实现,可以通过HTTP协议直接和客户端进行通信。控制层进行业
41、务逻辑验证,并封装数据库的访问细节。这样为服务器端分层可以提高服务器端代码的可移植性、可维护性、可扩展性、可重用性、可管理性等性能。服务器端处理用户的请求。分别为三个JSP来处理用户请求,login处理用户登陆请求,ChangePassword处理用户密码修改请求,Sscore处理学生用户成绩查询请求,Tscore处理教师用户成绩查询请求。loginChangePassword处理用户登陆请求模块处理用户密码修改请求模块处理学生用户成绩查询请求模块处理教师用户成绩查询请求模块客户端Midlet程序服务器端JSP发送请求和数据SscoreTscore图4-8 服务器端模块设计5 总结与展望系统总
42、体上比较成功,完成了需求分析中所要求的功能,界面设计也比较规范。但是服务器端并没有提供相应的查询功能,而只是使用了简单的JSP进行处理客户端请求。并且性能上没有到达足够优良,因为连接网络的线程是设计成了每连接一次就新建一个线程,根据JAVA是自动垃圾回收的,并不是线程停止了就马上释放线程所占用的资源,所以可能照成线程过多的情况出现,而对内存本来就很小的于手机客户端而言,这是不容忍受的。网络连接也使用了Http协议进行连接的,这种访问服务器端的方式不够安全。该系统的关键环节在于手机客户端需要与服务器端连接才能查询成绩,与客户端的连接使用新的线程进行,而不是直接在Midlet线程中执行。在Midl
43、et中直接运行连接会造成界面卡死的情况,所以每次连接服务器端时都新产生一个线程进行。在设计过程中,为了解决遇到的问题,查阅了大量的相关资料,总结了很多前人的经验。该系统设计的是一个基于J2ME,结合了J2EE的应用系统,采用了分层的设计方法,分离了表现层、业务逻辑层、控制层和数据库层。系统的服务器端采用的都是开放源代码软件产品,例如Apache Tomcat服务器、MySQL数据库服务器,节省了一些开发时间。从总体上看,该系统在J2ME手机上实现了高校学生成绩查询系统的基本功能。而且这样的设计使得整个系统的可移植性、可维护性、可扩展性、可重用性和可管理性等性能有了很大的提升。但是,系统仍然存在
44、一些需要改进的地方。例如:缺少直观的后台管理功能;应该采用一个线程专门负责连接网络,当一次连接完成时,进程进入睡眠,然后当再次需要连接时就唤醒进程进行连接,这样做就可以不用多次创建进程浪费时间和空间;以及将如何提高整个系统的负载能力和易用性以适应手机内存小、屏幕小的模式等。这些问题都是将来可以升级、扩展和努力改进的方向。参考文献1 孙一林Java编程技术M北京:机械工业出版社20082 詹建飞J2ME开发精解M北京:电子工业出版社20063 李研,刘晶晶,俞一鸣J2ME技术开发与应用M北京:机械工业出版社20064 美James Keogh 著潘颖,王磊译J2ME开发大全M北京:清华大学出版社20045 韩万江编著软件工程案例教程M北京:机械工业出版社2007 6 詹建飞Java ME核心技术与最佳实践M北京:电子工业出版社2