




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、的設(shè)計(jì)與實(shí)現(xiàn)趙明劉威趙新北京城市學(xué)院理工學(xué)部北京100083)摘要:J2ME和J2EE技術(shù)的結(jié)合為移動(dòng)教師工資查詢系統(tǒng)提供了很好的解決方案。介紹了J2ME-J2EE技術(shù)的體系結(jié)構(gòu),闡述了系統(tǒng)的整體架構(gòu),并討論了系統(tǒng)J2ME客戶端和J2EE服務(wù)器端的設(shè)計(jì)和實(shí)現(xiàn)方法。關(guān)鍵詞:J2ME;J2EE;移動(dòng)工資查詢一、引言伴隨著移動(dòng)通信技術(shù)的發(fā)展和手機(jī)等移動(dòng)設(shè)備的普及,基于手機(jī)平臺(tái)的軟件開發(fā)已經(jīng)成為應(yīng)用程序開發(fā)的研究熱點(diǎn)之一。J2ME是SUN公司為了將Java2應(yīng)用于消費(fèi)類電子產(chǎn)品和嵌入式系統(tǒng)而推出的一項(xiàng)技術(shù),以其獨(dú)特的優(yōu)勢(shì),在基于手機(jī)平臺(tái)的應(yīng)用程序開發(fā)中發(fā)揮著重要作用;J2EE在J2SE的基礎(chǔ)上進(jìn)行了擴(kuò)
2、展,用于提供完全的企業(yè)級(jí)應(yīng)用解決方案。結(jié)合J2ME-J2EE技術(shù),我們建立一個(gè)完整的移動(dòng)電子商務(wù)平臺(tái)移動(dòng)教師工資查詢系統(tǒng)。本文首先簡(jiǎn)要介紹了J2ME-J2EE技術(shù)的體系結(jié)構(gòu),在此基礎(chǔ)上,分析并設(shè)計(jì)了系統(tǒng)的整體架構(gòu),最后著重討論了系統(tǒng)客戶端和服務(wù)器端的設(shè)計(jì)和實(shí)現(xiàn)方法本系統(tǒng)已在多普達(dá)900手機(jī)上測(cè)試成功,證明文中所探討的技術(shù)和方法在實(shí)際中是切實(shí)可行的。二、技術(shù)背景J2ME體系結(jié)構(gòu)J2ME(Java2Platform,MicroEdition)是SUN公司專門為消費(fèi)類電子設(shè)備和嵌入式系統(tǒng)而設(shè)計(jì)的Java2平臺(tái),目前,J2ME被大多數(shù)中高端手機(jī)和嵌入式設(shè)備所支持,它已成為在移動(dòng)設(shè)備和嵌入式系統(tǒng)上實(shí)現(xiàn)網(wǎng)
3、絡(luò)數(shù)據(jù)應(yīng)用的熱點(diǎn)技術(shù)。J2ME提出了配置(Configuration)的概念,將嵌入式設(shè)備劃分為有限連接設(shè)備配置CLDC(ConnectedLimitedDeviceConfiguration)和連接設(shè)備配置CDC(ConnectedDeviceConfiguration)兩大類1。CLDC定位于運(yùn)算能力較弱、電力供應(yīng)有限、聯(lián)機(jī)速度有限、內(nèi)存小的低端消費(fèi)類設(shè)備,如手機(jī)、PDA等;CDC則定位于資源相對(duì)無限的高端嵌入式設(shè)備,如電視機(jī)頂盒、電冰箱、車載娛樂導(dǎo)航系統(tǒng)等。Configuration定義了在相同類別的嵌入式設(shè)備中執(zhí)行Java程序至少要符合的運(yùn)算能力、供電能力、內(nèi)存大小等規(guī)范,同時(shí)也定義了
4、一組在這些設(shè)備上執(zhí)行的Java程序所能使用的類庫(kù)。J2ME在Configuration基礎(chǔ)上提出了描述(Profile)的概念,用以滿足相同類別中不同品牌的嵌入式設(shè)備對(duì)內(nèi)存、用戶界面、網(wǎng)絡(luò)連接和可移植性等方面的差異。Profile是架構(gòu)在Configuration之上的規(guī)范,它針對(duì)不同品牌設(shè)備的特殊要求提供了高級(jí)的API,開發(fā)和裝載于為消費(fèi)類電子設(shè)備的應(yīng)用程序就建立在Profile上2MIDP(MobileInformationDevicesProfile)是目前發(fā)展較為成熟的Profile,已廣泛應(yīng)用于Java手機(jī)、Palm和PDA設(shè)備中,成為移動(dòng)數(shù)據(jù)應(yīng)用的良好平臺(tái)。本系統(tǒng)的移動(dòng)數(shù)據(jù)應(yīng)用模塊
5、就是基于CLDC/MIDP體系開發(fā)設(shè)計(jì)的。J2EE架構(gòu)J2EE(Java2platform,EnterpriseEdition)是目前流行的多層企業(yè)應(yīng)用技術(shù),是使用Java開發(fā)企業(yè)級(jí)應(yīng)用的一種事實(shí)上的工業(yè)標(biāo)準(zhǔn)。J2EE將業(yè)務(wù)邏輯從系統(tǒng)服務(wù)功能和用戶界面中分離出去,放置在客戶層和應(yīng)用基礎(chǔ)設(shè)施之間的中間層,解決了傳統(tǒng)的兩層模式(client/server)中難以升級(jí)或改進(jìn)、可擴(kuò)展性差、業(yè)務(wù)邏輯和界面邏輯難以重用等弊端。J2EE相關(guān)的技術(shù)主要有EJB、JSP、JavaServlet、JDBC、JavaMail、JMS和CORBA等3。典型的J2EE應(yīng)用體系結(jié)構(gòu)可分為四層:客戶層:運(yùn)行在客戶機(jī)器上,采
6、用XML/HTML等技術(shù),主要組件有Web瀏覽器、JavaApplets和獨(dú)立的應(yīng)用程序;Web層:運(yùn)行在J2EE服務(wù)器上,采用JSP/Servlet/XML/HTML和JavaBean等技術(shù);業(yè)務(wù)邏輯層:運(yùn)行在J2EE服務(wù)器上,采用EJB技術(shù)實(shí)現(xiàn)業(yè)務(wù)邏輯;數(shù)據(jù)存儲(chǔ)層:主要是運(yùn)行在EIS服務(wù)器上的企業(yè)信息系統(tǒng)或大型數(shù)據(jù)庫(kù)。三、移動(dòng)工資查詢系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)1系統(tǒng)整體架構(gòu)移動(dòng)教師工資查詢系統(tǒng)采用J2ME技術(shù)開發(fā)系統(tǒng)客戶端應(yīng)用程序,采用J2EE技術(shù)開發(fā)服務(wù)器端應(yīng)用程序,使用HTTP協(xié)議實(shí)現(xiàn)客戶端與服務(wù)器端之間的網(wǎng)絡(luò)通信4。系統(tǒng)采用基于J2ME-J2EE的四層體系結(jié)構(gòu),即客戶層/應(yīng)用表示層/業(yè)務(wù)邏輯層/
7、數(shù)據(jù)存儲(chǔ)層,系統(tǒng)的整體架構(gòu)如圖1所示。圖1移動(dòng)教師工資查詢系統(tǒng)整體架構(gòu)圖在客戶端,用戶的手機(jī)需要與Internet進(jìn)行連接,可以采用GPRS、Wi-fi或者3G網(wǎng)絡(luò)等方式,用戶只需下載(如使用OTA技術(shù))客戶端MIDlet程序,安裝到手機(jī)上就可以與服務(wù)器進(jìn)行連接并發(fā)出訪問請(qǐng)求;Web服務(wù)器使用Servlet容器來處理客戶端的連接和請(qǐng)求,然后再將這些請(qǐng)求發(fā)送到企業(yè)級(jí)服務(wù)器上,企業(yè)級(jí)服務(wù)器使用EJB進(jìn)行會(huì)話,處理請(qǐng)求,并通過JDBC連接到數(shù)據(jù)庫(kù)系統(tǒng)上;數(shù)據(jù)庫(kù)系統(tǒng)根據(jù)SQL查詢語句,將生成的查詢結(jié)果數(shù)據(jù)集發(fā)送回企業(yè)級(jí)服務(wù)器;企業(yè)級(jí)服務(wù)器把接收到的信息提交給Web服務(wù)器,Web服務(wù)器再通過HTTP將信
8、息返回給客戶端;最后,客戶端MIDlet將查詢結(jié)果顯示在用戶的手機(jī)屏幕上。所有的訪問并不直接訪問后臺(tái)的應(yīng)用資源和數(shù)據(jù)資源而是通過中間層進(jìn)行訪問,這樣既可以保證后臺(tái)數(shù)據(jù)的安全性,又可以通過中間層的調(diào)度保證系統(tǒng)性能和事務(wù)的一致性。2.客戶端的設(shè)計(jì)與實(shí)現(xiàn)系統(tǒng)客戶端的開發(fā)環(huán)境是由SUN公司提供的MIDP2口0,我們使用J2MEWirelessToolkit2口5作為開發(fā)工具編寫MIDlet程序querysalary.java,用戶可以在“請(qǐng)輸入查詢號(hào)”文本框中輸入教師查詢編號(hào),輸入完畢后按“0K”按鈕發(fā)送請(qǐng)求,手機(jī)將把數(shù)據(jù)發(fā)送到服務(wù)器端,服務(wù)器端進(jìn)行相應(yīng)的處理后把查詢結(jié)果返回給客戶端,客戶端MIDle
9、t程序會(huì)把查詢結(jié)果顯示在用戶手機(jī)屏幕上。客戶端MIDlet程序主要實(shí)現(xiàn)客戶端與服務(wù)器端的連接,其代碼如下所示。其中特別要注意的是,當(dāng)單擊“0K”按鈕實(shí)現(xiàn)網(wǎng)絡(luò)連接時(shí),一定要另開辟一個(gè)線程來予以實(shí)現(xiàn)。import;/引入需要的類publicclassquerysalaryextendsMIDletimplementsCommandListener,Runnable/初始化定義publicvoidstartApp()/初始化起始頁面form=newForm(教師工資查詢);tf=newTextFieldC請(qǐng)輸入查詢號(hào),600601,6,TextField.NUMERIC);protectedvoid
10、pauseApp()protectedvoiddestroyApp(booleanparm1)protectedvoidquitApp()destroyApp(false);notifyDestroyed();protectedvoidsetResultFrom()/建立查詢結(jié)果顯示界面/獲取文本框中所輸入的查詢編號(hào)Stringsalaryid=tf.getString();/設(shè)置通信的servlet的地址并傳遞參數(shù)salaryid,實(shí)現(xiàn)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);/設(shè)置連接為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)/對(duì)查詢結(jié)果進(jìn)行顯示處理elsesb.append(in.readUTF()+n);catch(Exceptione)/異常處理sb.append(e.toString();finally/最后處理/將工資查詢的結(jié)果顯示到手機(jī)屏幕上form1.append(sb.toString();publicvoidcommandAction(Commandc,Displayables)if(c=okComma
13、nd)/單獨(dú)開辟線程ThreadnewThread=newThread(this);newThread.start();if(c=exitCommand)quitApp();publicvoidrun()trysetResultFrom();catch(Exceptionee)ee.printStackTrace();3服務(wù)器端的設(shè)計(jì)與實(shí)現(xiàn)系統(tǒng)的Web服務(wù)器平臺(tái)使用ApacheTomcat5.5,數(shù)據(jù)庫(kù)采用Access2003軟件建立名為jssalary的教師工資查詢數(shù)據(jù)庫(kù),其中的教師工資相關(guān)數(shù)據(jù)存儲(chǔ)在表user中,通過JDBC-ODBC橋(也可以使用JDBC技術(shù))實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的訪問。在服務(wù)器
14、端編寫的Servlet為ServletSalary.java,用于接收客戶端請(qǐng)求,執(zhí)行與數(shù)據(jù)庫(kù)的通信,并將查詢結(jié)果返回給客戶端,其代碼如下所示。服務(wù)器端實(shí)現(xiàn)的關(guān)鍵是如何獲取客戶端輸入的查詢參數(shù)并根據(jù)該參數(shù)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的訪問。我們使用doGet方法中的HttpServletRequest參數(shù)來獲取查詢參數(shù),查詢結(jié)果則通過HttpServletResponse參數(shù)返回給客戶端。import;/引入需要的類publicclassServletSalaryextendsHttpServletpublicvoidinit()throwsServletExceptionpublicvoiddoPost(H
15、ttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException/設(shè)置返回的類型response.setContentType(text/html;charset=gb2312);DataOutputStreamout=newDataOutputStream(newBufferedOutputStream(response.getOutputStream();/獲取手機(jī)傳來的查詢參數(shù)salaryidStringsalaryid=request.getParameter(salaryid
16、);try/加載jdbc驅(qū)動(dòng)Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);/建立和Access數(shù)據(jù)庫(kù)的連接,數(shù)據(jù)庫(kù)為jssalaryConnectionconnection=DriverManager.getConnection(jdbc:odbc:jssalary);/創(chuàng)建statement對(duì)象Statementstatement=connection.createStatement();/查詢ResultSetrs=statement.executeQuery(select*fromuserwheresalaryid=+salaryid);if(r
17、s.next()/獲取查詢結(jié)果else/若客戶端輸入的salaryid參數(shù)在表user中不存在,則提示用戶查詢失敗Stringok=fail;out.writeUTF(ok);Stringerrormessage=salaryid+不存在;out.writeUTF(errormessage);out.flush();out.close();catch(SQLExceptionex)catch(java.lang.Exceptionex)publicvoiddestroy()4.系統(tǒng)運(yùn)行效果根據(jù)系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)代碼,最終的運(yùn)行效果如圖2所示。分別為在文本框中輸入查詢編號(hào)和手機(jī)屏幕上查詢結(jié)果的顯示。四、結(jié)束語結(jié)合J2ME-J2EE技術(shù),我們開發(fā)了一個(gè)端到端的無線移動(dòng)應(yīng)用系統(tǒng),系統(tǒng)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 助動(dòng)車維修技術(shù)交流考核試卷
- 機(jī)器視覺與圖像處理技術(shù)考核試卷
- 智能儀器儀表項(xiàng)目規(guī)劃考核試卷
- 醫(yī)用針灸貼的種類和使用建議考核試卷
- 供應(yīng)鏈數(shù)字化轉(zhuǎn)型案例與啟示考核試卷
- 木紋設(shè)計(jì)與加工考核試卷
- 苗圃白蟻防治合同范本
- 留置權(quán)合同范本
- 業(yè)擴(kuò)報(bào)裝培訓(xùn)課件
- 8.3 摩擦力(共28張) 2024-2025學(xué)年人教版物理八年級(jí)下冊(cè)
- 人教版(2024新版)七年級(jí)上冊(cè)英語各單元重點(diǎn)語法知識(shí)點(diǎn)講義
- 生豬屠宰獸醫(yī)衛(wèi)生人員考試題庫(kù)答案(414道)
- 《完善中國(guó)特色社會(huì)主義法治體系》課件
- 2025版 高考試題分析-數(shù)學(xué)-部分4
- 湘教版三年級(jí)美術(shù)下冊(cè)教案全冊(cè)
- 重癥監(jiān)護(hù)-ICU的設(shè)置、管理與常用監(jiān)測(cè)技術(shù)
- 2024版高一上冊(cè)語文模擬試卷
- 法律顧問服務(wù)投標(biāo)方案(完整技術(shù)標(biāo))
- 知道網(wǎng)課智慧樹《哲學(xué)導(dǎo)論(湖南師范大學(xué))》章節(jié)測(cè)試答案
- 防止員工集體離職合同
- 加油站合作協(xié)議書
評(píng)論
0/150
提交評(píng)論