查询系统的设计与实现_第1页
查询系统的设计与实现_第2页
查询系统的设计与实现_第3页
查询系统的设计与实现_第4页
查询系统的设计与实现_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

1、的设计与实现赵明刘威赵新北京城市学院理工学部北京100083)摘要:J2ME和J2EE技术的结合为移动教师工资查询系统提供了很好的解决方案。介绍了J2ME-J2EE技术的体系结构,阐述了系统的整体架构,并讨论了系统J2ME客户端和J2EE服务器端的设计和实现方法。关键词:J2ME;J2EE;移动工资查询一、引言伴随着移动通信技术的发展和手机等移动设备的普及,基于手机平台的软件开发已经成为应用程序开发的研究热点之一。J2ME是SUN公司为了将Java2应用于消费类电子产品和嵌入式系统而推出的一项技术,以其独特的优势,在基于手机平台的应用程序开发中发挥着重要作用;J2EE在J2SE的基础上进行了扩

2、展,用于提供完全的企业级应用解决方案。结合J2ME-J2EE技术,我们建立一个完整的移动电子商务平台移动教师工资查询系统。本文首先简要介绍了J2ME-J2EE技术的体系结构,在此基础上,分析并设计了系统的整体架构,最后着重讨论了系统客户端和服务器端的设计和实现方法本系统已在多普达900手机上测试成功,证明文中所探讨的技术和方法在实际中是切实可行的。二、技术背景J2ME体系结构J2ME(Java2Platform,MicroEdition)是SUN公司专门为消费类电子设备和嵌入式系统而设计的Java2平台,目前,J2ME被大多数中高端手机和嵌入式设备所支持,它已成为在移动设备和嵌入式系统上实现网

3、络数据应用的热点技术。J2ME提出了配置(Configuration)的概念,将嵌入式设备划分为有限连接设备配置CLDC(ConnectedLimitedDeviceConfiguration)和连接设备配置CDC(ConnectedDeviceConfiguration)两大类1。CLDC定位于运算能力较弱、电力供应有限、联机速度有限、内存小的低端消费类设备,如手机、PDA等;CDC则定位于资源相对无限的高端嵌入式设备,如电视机顶盒、电冰箱、车载娱乐导航系统等。Configuration定义了在相同类别的嵌入式设备中执行Java程序至少要符合的运算能力、供电能力、内存大小等规范,同时也定义了

4、一组在这些设备上执行的Java程序所能使用的类库。J2ME在Configuration基础上提出了描述(Profile)的概念,用以满足相同类别中不同品牌的嵌入式设备对内存、用户界面、网络连接和可移植性等方面的差异。Profile是架构在Configuration之上的规范,它针对不同品牌设备的特殊要求提供了高级的API,开发和装载于为消费类电子设备的应用程序就建立在Profile上2MIDP(MobileInformationDevicesProfile)是目前发展较为成熟的Profile,已广泛应用于Java手机、Palm和PDA设备中,成为移动数据应用的良好平台。本系统的移动数据应用模块

5、就是基于CLDC/MIDP体系开发设计的。J2EE架构J2EE(Java2platform,EnterpriseEdition)是目前流行的多层企业应用技术,是使用Java开发企业级应用的一种事实上的工业标准。J2EE将业务逻辑从系统服务功能和用户界面中分离出去,放置在客户层和应用基础设施之间的中间层,解决了传统的两层模式(client/server)中难以升级或改进、可扩展性差、业务逻辑和界面逻辑难以重用等弊端。J2EE相关的技术主要有EJB、JSP、JavaServlet、JDBC、JavaMail、JMS和CORBA等3。典型的J2EE应用体系结构可分为四层:客户层:运行在客户机器上,采

6、用XML/HTML等技术,主要组件有Web浏览器、JavaApplets和独立的应用程序;Web层:运行在J2EE服务器上,采用JSP/Servlet/XML/HTML和JavaBean等技术;业务逻辑层:运行在J2EE服务器上,采用EJB技术实现业务逻辑;数据存储层:主要是运行在EIS服务器上的企业信息系统或大型数据库。三、移动工资查询系统设计与实现1系统整体架构移动教师工资查询系统采用J2ME技术开发系统客户端应用程序,采用J2EE技术开发服务器端应用程序,使用HTTP协议实现客户端与服务器端之间的网络通信4。系统采用基于J2ME-J2EE的四层体系结构,即客户层/应用表示层/业务逻辑层/

7、数据存储层,系统的整体架构如图1所示。图1移动教师工资查询系统整体架构图在客户端,用户的手机需要与Internet进行连接,可以采用GPRS、Wi-fi或者3G网络等方式,用户只需下载(如使用OTA技术)客户端MIDlet程序,安装到手机上就可以与服务器进行连接并发出访问请求;Web服务器使用Servlet容器来处理客户端的连接和请求,然后再将这些请求发送到企业级服务器上,企业级服务器使用EJB进行会话,处理请求,并通过JDBC连接到数据库系统上;数据库系统根据SQL查询语句,将生成的查询结果数据集发送回企业级服务器;企业级服务器把接收到的信息提交给Web服务器,Web服务器再通过HTTP将信

8、息返回给客户端;最后,客户端MIDlet将查询结果显示在用户的手机屏幕上。所有的访问并不直接访问后台的应用资源和数据资源而是通过中间层进行访问,这样既可以保证后台数据的安全性,又可以通过中间层的调度保证系统性能和事务的一致性。2.客户端的设计与实现系统客户端的开发环境是由SUN公司提供的MIDP2口0,我们使用J2MEWirelessToolkit2口5作为开发工具编写MIDlet程序querysalary.java,用户可以在“请输入查询号”文本框中输入教师查询编号,输入完毕后按“0K”按钮发送请求,手机将把数据发送到服务器端,服务器端进行相应的处理后把查询结果返回给客户端,客户端MIDle

9、t程序会把查询结果显示在用户手机屏幕上。客户端MIDlet程序主要实现客户端与服务器端的连接,其代码如下所示。其中特别要注意的是,当单击“0K”按钮实现网络连接时,一定要另开辟一个线程来予以实现。import;/引入需要的类publicclassquerysalaryextendsMIDletimplementsCommandListener,Runnable/初始化定义publicvoidstartApp()/初始化起始页面form=newForm(教师工资查询);tf=newTextFieldC请输入查询号,600601,6,TextField.NUMERIC);protectedvoid

10、pauseApp()protectedvoiddestroyApp(booleanparm1)protectedvoidquitApp()destroyApp(false);notifyDestroyed();protectedvoidsetResultFrom()/建立查询结果显示界面/获取文本框中所输入的查询编号Stringsalaryid=tf.getString();/设置通信的servlet的地址并传递参数salaryid,实现MIDlet与Servlet的通信StringURL= HYPERLINK 18:8080/servlet/ServletSalary?salaryid=%2

11、2+salaryid 18:8080/servlet/ServletSalary?salaryid=+salaryid;HttpConnectionconn=null;DataInputStreamin=null;tryconn=(HttpConnection)Connector.open(URL);/设置连接为Post方式conn.setRequestMethod(HttpConnection.POST);conn.setRequestProperty(User-Agent,Profile/MIDP-2.0Configuration/CLDC-1.1);conn.setRequestProp

12、erty(Content-Language,en-CA);in=conn.openDataInputStream();Stringok=in.readUTF();if(ok.equals(find)/对查询结果进行显示处理elsesb.append(in.readUTF()+n);catch(Exceptione)/异常处理sb.append(e.toString();finally/最后处理/将工资查询的结果显示到手机屏幕上form1.append(sb.toString();publicvoidcommandAction(Commandc,Displayables)if(c=okComma

13、nd)/单独开辟线程ThreadnewThread=newThread(this);newThread.start();if(c=exitCommand)quitApp();publicvoidrun()trysetResultFrom();catch(Exceptionee)ee.printStackTrace();3服务器端的设计与实现系统的Web服务器平台使用ApacheTomcat5.5,数据库采用Access2003软件建立名为jssalary的教师工资查询数据库,其中的教师工资相关数据存储在表user中,通过JDBC-ODBC桥(也可以使用JDBC技术)实现对数据库的访问。在服务器

14、端编写的Servlet为ServletSalary.java,用于接收客户端请求,执行与数据库的通信,并将查询结果返回给客户端,其代码如下所示。服务器端实现的关键是如何获取客户端输入的查询参数并根据该参数实现对数据库的访问。我们使用doGet方法中的HttpServletRequest参数来获取查询参数,查询结果则通过HttpServletResponse参数返回给客户端。import;/引入需要的类publicclassServletSalaryextendsHttpServletpublicvoidinit()throwsServletExceptionpublicvoiddoPost(H

15、ttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException/设置返回的类型response.setContentType(text/html;charset=gb2312);DataOutputStreamout=newDataOutputStream(newBufferedOutputStream(response.getOutputStream();/获取手机传来的查询参数salaryidStringsalaryid=request.getParameter(salaryid

16、);try/加载jdbc驱动Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);/建立和Access数据库的连接,数据库为jssalaryConnectionconnection=DriverManager.getConnection(jdbc:odbc:jssalary);/创建statement对象Statementstatement=connection.createStatement();/查询ResultSetrs=statement.executeQuery(select*fromuserwheresalaryid=+salaryid);if(r

17、s.next()/获取查询结果else/若客户端输入的salaryid参数在表user中不存在,则提示用户查询失败Stringok=fail;out.writeUTF(ok);Stringerrormessage=salaryid+不存在;out.writeUTF(errormessage);out.flush();out.close();catch(SQLExceptionex)catch(java.lang.Exceptionex)publicvoiddestroy()4.系统运行效果根据系统的设计和实现代码,最终的运行效果如图2所示。分别为在文本框中输入查询编号和手机屏幕上查询结果的显示。四、结束语结合J2ME-J2EE技术,我们开发了一个端到端的无线移动应用系统,系统

温馨提示

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

评论

0/150

提交评论