开篇:润墨网以专业的文秘视角,为您筛选了一篇J2ME技术在移动查询系统中的应用范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!
摘要:该文设计了一种移动票证信息查询平台,选择j2me作为手机客户端应用开发环境, 遵循HTTP协议实现服务器与手机客户端的交互,平台利用部署在WebLogic上的Servlet实现数据库连接。终端客户可以方便的通过现有移动通信网络查询当前最新的票证信息。
关键词:J2ME;midlet;Servlet;jdbc
中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)34-1675-02
Application of J2ME in Mobile Enquiry System
XIONG Yi-long, DU Juan
(Department of Computer Science and Technology, Wuhan University of Technology, Wuhan 430063,China)
Abstract: The article designs a kind of mobile platform for ticketing requiring, which uses J2ME as the developing environment of client-side mobile phone and follows the HTTP protocol to accomplish the interaction between the server and mobile phone clients. The platform utilizes the servlet on the weblogic to connect to the database. End-users can query the latest ticketing information conveniently through the existing Mobile Communication Network.
Key words: J2ME; midlet; Servlet; jdbc
1 引言
随着移动电话等无线通信设备数量的戏剧化增长和功能的逐渐成熟,对运行在这些设备上的应用程序的需求也越来越大。消费者和企业都需要将移动通信设备的功能从语言通信扩展到运行在膝上型计算机和PC上的传统应用程序。同时,国际互联网将分散在各地的人链接在一起,国际互联网已经逐渐成为人们所不能离开的一种通信和信息处理工具,但是它却存在着受位置限制的缺点,例如:你在旅途的火车上想了解股市行情、进行在线交易;你出差某地想了解当地的天气情况;销售人员在和客户谈判时可能想立刻获知当前在库产品价格和数量以争取到一笔大的销售定单等,都无法及时通过国际互联网来实现。无线技术应用延伸了客户端用户对空间位置的需求,使这些用户需求变为现实。
JAVA 手机是一种支持JAVA虚拟机的无线移动终端,通过开发JAVA 手机程式,可以实现手机访问现有的网络资源。本文介绍了结合J2ME 和J2EE技术,进行移动查询业务的开发,并研究了手机访问网络数据库的方法。
2 问题的引出
对于水路稽查的人员来说,及时准确地获得船舶各种票据和证件的具体信息显得十分重要。通过移动终端能实时在线获得最新的票据和证件信息,是本课题研究的中心任务。基于实际需求,本课题主要实现以下目标:
1) 实现移动查询的框架设计;
2) 移动终端的具体实现设计,并进行移动网络联网技术探讨。
3 J2ME简介
J2ME即Java2 Micro Edition(Java2的微型版),是Sun公司Java2的重要组成部分。它是针对有限硬件、有限功率、有限网络连接的设备,进行应用开发的技术,它适合在无线通信设备上开发交互性较强的网络应用。在此基础上编写的MIDP 应用程序具有良好的兼容性和可移植性,可在手机PDA等手持设备上很好的运行。J2ME 与WAP 的手机上网方式相比,具有一定优势,例如WAP必须通过WAP 网关才能访问Internet,并且仅能访问基于WML 构件的网站,而J2ME 由于提供对HTTP 和TCP 等高级Internet 协议的支持,使得通信终端可以访问Internet 上的所有信息。WAP 适合于文本主的内容,而J2ME 很适合于图形应用,有很稳定而可靠的安全机制。
J2ME的体系结构包括:
1) Configuration 应该注意到,J2ME要支持的硬件平台也有很大差异,其中有比较高端的设备,例如电视机的机顶盒、网络电视等;也有比较低端的,像手机等。作为Java平台必须要保证兼容性,必须要舍弃所有设备的特殊性.J2ME规定了configuration的概念,Configuration是支持通用设备的最小Java平台。作为所用设备的最小公分母来保证不同设备间平台的兼容性,这里的Java平台主要指Java虚拟机(JVM)和核心库。
2) Profileconfiguration舍弃了设备的特殊性来保证Java平台的相容性,但仅仅有configuration是远远不够的,特殊设备的具体功能和硬件条件都没有得到支持,为此在configuration的基础上,必须根据设备的具体功能在划分一次。Profile(简表或简挡)针对每一类功能设备特殊定义的与设备特性相关的API,建于configuration之上,作为configuration的补充。
4 系统设计
4.1 总体设计
基于J2ME 平台开发手机客户端程序,支持打开网络连接、传送数据、访问远程服务器,但并不支持直接访问数据库的能力,因此我们需要编写一套服务器端程序来接受手机客户端的请求指令,通过解析请求、与数据层交互、执行逻辑、响应结果的方式把数据再传回给手机。图1为整个移动查询系统网络的构成。
4.2 服务器和客户端的连接以及数据的传输
通用连接框架(Generic Connection Framework,GCF)为资源有限的设备提供了一个可扩展的、通用的I/O 框架。GCF 是一组在 javax.microedition.io 包中定义的接口。GCF连接接口为网络操作提供了基本的体系结构,并且为编写网络代码提供了独立的网络协议,使用GCF连接接口同样忽略底层的网络协议,这些接口分别是Connection,ContentConnection,Datagram Connection,InputConnection,OutputConnection,StreamConnection和StreamConnectionNotifier。
由于无线设备所能支持的网络协议非常有限,仅限于HTTP、Socket 和UDP 等几种协议,为了能在不同类型的手机上移植,我们尽量采用HTTP 作为网络连接的首选协议。由于HTTP 是一个基于文本的效率较低的协议,因此,必须仔细考虑手机和服务器端的通信内容,尽可能地提高效率。服务器通过消息常量选择处理事件请求的Servlet 调用的方法。
4.3 客户端MIDlet程序设计
客户端主要包括实现用户界面和发送查询请求两部分。以“票据有效性查询” 这一主要功能模块为例,MIDlet 主要包括以下内容:设置一个TextField 类用于在相关界面的文本框输入“船检登记号”等数据;设置网络请求方法为HttpConnection.POST发出请求,打开网络,利用HttpConnection 的openOutputStream()打开输出流,将请求及数据发送给服务器端的Servlet程序;接Servlet的响应数据并显示;关闭输入输出流等。手机端在进入查询系统的主菜单界面后,可选择“船名查找”或是“船检登记号查找”。以“船检登记号查找”为例,在该页面下填入船检登记号信息,之后点击“Send”按键,即可通过无线网络,发出请求数据库的信息流。若找到记录则返回相应的票面信息数据,如图2显示了一个查询的过程。
部分主要设计代码如下:
StreamConnection connection=null;
InputStream in=null;
StringBuffer buffer=new StringBuffer();
try{
String cjdjh=this.cjdjh.getString();
String url="localhost:7001/cwts/pzyxxcx?
cjdjh="+cjdjh;
connection =(StreamConnection)Connector.open(url);in=connection.openInputStream();
int ch;
while((ch=in.read())!=-1){
buffer.append
((char)ch);}
String str=buffer.toString();
str=new String(str.getBytes
("ISO-8859-1"),"GB2312");
cjdjh_form.append(str);
}catch(Exception e){
e.printStackTrace();}
4.4 服务器端程序设计
Servlet是服务器端语言,它可自动开启多个线程为多个用户提供服务。本文中Servlet程序包括如下的内容:利用doGet()、doPost()和destroy()方法设置一定网络响应属性;设计输入流接收客户端的请求和数据;注册数据库,利用JDBC(Java数据库连接Java Database Connectivity)对数据库进行连接;利用SQL语句对数据库实施查询;对查询结果进行适当处理,并设计输出流用以将查询结果发送回手机;关闭输入输出流及其连接。
部分主要设计代码如下:
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String cjdjh=request.getParameter("cjdjh").trim();
DBConnect conn=null;
ResultSet rs=null;
String sql="select * from tjz where cjdjh='"+cjdjh+"' and sfzf='否' order by pzhm";
try{
conn=new DBConnect();
rs=conn.executeQuery(sql);(下转第1682页)
(上接第1676页)
out.print(new String("查询结果如下:".getBytes("GB2312"),"ISO-8859-1")+"\n");
while(rs.next()){
out.print(new String("票证号码:".getBytes("GB2312"),"ISO-8859-1")+rs.getString("pzhm")+"\n");
out.print(new String("有效期起:".getBytes("GB2312"),"ISO-8859-1")+rs.getString("yxqq").substring(0,10)+"\n");
out.print(new String("有效期止:".getBytes("GB2312"),"ISO-8859-1")+
rs.getString("yxqz").substring(0,10)+"\n");
out.print("------------------------"+"\n");
}
}catch(Exception e){
e.printStackTrace();
}
5 结束语
本文移动查询系统的实现具有很现实的意义,能解决即时稽查时信息需求问题,通过不断更新数据库,能做到与现有票证信息的同步。从社会效益上看,它为广大移动网络用户提供信息化服务,适应当今社会的信息需求,从水路征稽部门的工作看,能够及时票证信息,减轻稽查人员的工作量,提升工作效率。
参考文献:
[1] 温尚书.J2ME无线通信实用案例教程[M].北京:清华大学出版社,2003.
[2] Keogh J.J2ME开发大全[M].潘颖,王磊,译.北京:清华大学出版社,2004.
[3] 柳永坡.JSP应用开发技术[M].北京:人民邮电出版社,2006.