基于jme平臺網(wǎng)絡(luò)商店論文_第1頁
基于jme平臺網(wǎng)絡(luò)商店論文_第2頁
基于jme平臺網(wǎng)絡(luò)商店論文_第3頁
基于jme平臺網(wǎng)絡(luò)商店論文_第4頁
基于jme平臺網(wǎng)絡(luò)商店論文_第5頁
已閱讀5頁,還剩28頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

PAGEPAGE1提供更多更全的計算機畢業(yè)設(shè)計學(xué)位論文基于j2me平臺的掌上網(wǎng)絡(luò)商店論文作者姓名:計算機畢業(yè)論文申請學(xué)位專業(yè):計算機畢業(yè)設(shè)計申請學(xué)位類別:www.passlw。com論文提交日期:基于j2me平臺的掌上網(wǎng)絡(luò)商店摘要過去的幾年,電子商務(wù)的迅猛發(fā)展為企業(yè)創(chuàng)造了極大的價值,使傳統(tǒng)的企業(yè)商務(wù)模式發(fā)生了很大的改變.隨著手機使用的普及和無線技術(shù)的發(fā)展,移動電子商務(wù)將會作為電子商務(wù)領(lǐng)域中的一種新型的電子商務(wù)模式,其發(fā)展前景是十分誘人的.可以預(yù)見的是,移動電子商務(wù)將成為21世紀(jì)電子商務(wù)領(lǐng)域的主戰(zhàn)場。J2ME是為嵌入式消費電子設(shè)備提供的JAVA語言開發(fā)平臺,是針對資源受限設(shè)備.因此基于J2ME平臺的無線終端的應(yīng)用程序開發(fā)以及與網(wǎng)絡(luò)服務(wù)器端的信息交互開發(fā)就十分重要.利用客戶端+Javaservlet+SQLServer數(shù)據(jù)庫三層模式實現(xiàn)網(wǎng)上商店系統(tǒng)是通用的方法。所有的業(yè)務(wù)邏輯都封裝在servlet中,數(shù)據(jù)庫的使用提高了數(shù)據(jù)的安全性,而采用可擴展標(biāo)識語言XML的數(shù)據(jù)格式實現(xiàn)了跨平臺的數(shù)據(jù)交換.詳細闡述了系統(tǒng)的需求分析、系統(tǒng)總體架構(gòu)及詳細設(shè)計,系統(tǒng)實現(xiàn)了以下功能:會員注冊、登錄、瀏覽物品詳細信息和購買物品。關(guān)鍵詞:J2ME;可擴展標(biāo)識語言;SERVLET;網(wǎng)絡(luò)商店ThePalmPlatformofe-ShopBasedontheJ2ME-ServerDevelopmentAbstractOvertheyears,thefastfiercedevelopmentofelectroniccommercecreatedtremendousvaluefortheenterprise,whichgreatlychangedtraditionalenterprisecommercepattern.Withtheprevalenceofmobilephoneanddevelopmentofwireless,Mobilee-commercewillbeanewe-commercemodeintheelectroniccommercerealm,anditismising.Itcanbepredictedthat(yī)themobilee—commercewillbecomethemajorindustryofe—commerceinthe21stcentury。J2MEistheplat(yī)formthat(yī)providestheJAVAlanguagetodeveloptheembeddedelectronicequipmentofexpense,whichaimsattheequipmentthatresourceislimited。Thereforetheinteractiveinformationexploitat(yī)iondevelopingwithnetworkserverandapplicationsofwirelessterminaldevelopmentbasedonJ2MEplatformisveryimportant.Itisageneralmethodtoimplementthesystemofe—shopusingthreelayersofpattern:clientside+Javaservlet+dat(yī)abaseofSQLServer.Allthebusinesslogicencapsulat(yī)edintheservlet,usingofthedatabaseimprovedthesecurity,andusingtheXMLdat(yī)aformatachievedcross—platformdat(yī)aexchange.Tothesystemdemandanalysis,thesystemrequirementanalysis,theoverallofsystemconstructionandthedetaileddesignareelaborat(yī)edindetailsinthispaper,andthesystemachievesthefollowingfunctions:Memberregistration,login,browsedetailedinformationandpurchasegoods.Keywords:J2ME;XML;SERVLET;E-SHOP目錄論文總頁數(shù):24頁TOC\o”1-3”\h\z\uHYPERLINK\l”_Toc170658007"1?引言?PAGEREF_Toc170658007\h1HYPERLINK\l”_Toc170658008"1.1?選題背景?PAGEREF_Toc170658008\h1HYPERLINK\l”_Toc170658009"1.2 選題意義 PAGEREF_Toc170658009\h1HYPERLINK\l"_Toc170658010"2?相關(guān)技術(shù)及開發(fā)平臺簡介 PAGEREF_Toc170658010\h2HYPERLINK\l"_Toc170658011"2.1?J2ME簡介 PAGEREF_Toc170658011\h2HYPERLINK\l”_Toc170658012"2。2?SQLSERVER數(shù)據(jù)庫和JDBC?PAGEREF_Toc170658012\h2HYPERLINK\l"_Toc170658013"2.3?JAVASERVLET技術(shù)介紹?PAGEREF_Toc170658013\h2HYPERLINK\l"_Toc170658014"2。4?XML和JDOM PAGEREF_Toc170658014\h3HYPERLINK\l"_Toc170658015"2.4.1?XML簡介?PAGEREF_Toc170658015\h3HYPERLINK\l"_Toc170658016"2.4.2?JDOM技術(shù)?PAGEREF_Toc170658016\h3HYPERLINK\l”_Toc170658017”2.5?開發(fā)平臺及系統(tǒng)配置?PAGEREF_Toc170658017\h3HYPERLINK\l"_Toc170658018”3 系統(tǒng)需求分析和設(shè)計方案 PAGEREF_Toc170658018\h4HYPERLINK3.1?需求分析?PAGEREF_Toc170658019\h4HYPERLINK\l"_Toc170658020"3.2?系統(tǒng)總體框架?PAGEREF_Toc170658020\h4HYPERLINK\l”_Toc170658021"3。3?系統(tǒng)設(shè)計關(guān)鍵技術(shù)?PAGEREF_Toc170658021\h5HYPERLINK\l”_Toc170658022”3.3.1 網(wǎng)絡(luò)的連接?PAGEREF_Toc170658022\h5HYPERLINK\l"_Toc170658023"3.3.2?數(shù)據(jù)存儲方式和數(shù)據(jù)的交換?PAGEREF_Toc170658023\h5HYPERLINK\l"_Toc170658024”3.4?業(yè)務(wù)數(shù)據(jù)流分析?PAGEREF_Toc170658024\h5HYPERLINK\l"_Toc170658025"3.4。1?聯(lián)網(wǎng)的流程 PAGEREF_Toc170658025\h5HYPERLINK\l"_Toc170658026”3。4.2?訪問數(shù)據(jù)庫的流程?PAGEREF_Toc170658026\h6HYPERLINK\l”_Toc170658027"3.4.3?輸入XML數(shù)據(jù)解析流程?PAGEREF_Toc170658027\h6HYPERLINK\l"_Toc170658028"3.4。4?輸出XML文檔建立流程?PAGEREF_Toc170658028\h6_Toc170658030"3.5。1 關(guān)于URL PAGEREF_Toc170658030\h7HYPERLINK\l”_Toc170658031"3。5.2?URL參數(shù)約定規(guī)則?PAGEREF_Toc170658031\h7HYPERLINK\l"_Toc170658032"3.5。3 接收和發(fā)送的XML文檔格式的約定 PAGEREF_Toc170658032\h7HYPERLINK\l"_Toc170658033"3.6?數(shù)據(jù)庫的分析與設(shè)計?PAGEREF_Toc170658033\h8HYPERLINK\l"_Toc170658034”3.6.1?注冊用戶基本信息表user?PAGEREF_Toc170658034\h8HYPERLINK\l"_Toc170658035”3.6。2?商品信息表?PAGEREF_Toc170658035\h8HYPERLINK\l"_Toc170658036”4?具體的設(shè)計流程和實現(xiàn)系統(tǒng)構(gòu)架?PAGEREF_Toc170658036\h9HYPERLINK\l”_Toc170658037"4.1?系統(tǒng)主要工作流程?PAGEREF_Toc170658037\h9HYPERLINK\l"_Toc170658038”4.2?系統(tǒng)功能模塊設(shè)計 PAGEREF_Toc170658038\h9HYPERLINK\l"_Toc170658039"4.2.1?數(shù)據(jù)庫聯(lián)網(wǎng)模塊的設(shè)計 PAGEREF_Toc170658039\h9HYPERLINK\l"_Toc170658040"4.2。2?注冊模塊的設(shè)計 PAGEREF_Toc170658040\h10HYPERLINK\l"_Toc170658041"4。2.3 登陸模塊的設(shè)計 PAGEREF_Toc170658041\h13HYPERLINK\l"_Toc170658042"4.2.4?查詢模塊的實現(xiàn)?PAGEREF_Toc170658042\h15HYPERLINK\l"_Toc170658043"4.2.5?購買功能模塊的實現(xiàn)?PAGEREF_Toc170658043\h18HYPERLINK\l”_Toc170658044"5?測試分析與問題處理 PAGEREF_Toc170658044\h21HYPERLINK5.1 數(shù)據(jù)庫連接 PAGEREF_Toc170658045\h21HYPERLINK\l”_Toc170658046”5.2?與客戶端的連接?PAGEREF_Toc170658046\h21HYPERLINK\l"_Toc170658047"結(jié)論?PAGEREF_Toc170658047\h22HYPERLINK\l"_Toc170658048"參考文獻?PAGEREF_Toc170658048\h22HYPERLINK\l”_Toc170658049”致謝?PAGEREF_Toc170658049\h23HYPERLINK\l”_Toc170658050"聲明 PAGEREF_Toc170658050\h24第24頁共24頁引言選題背景網(wǎng)上購物正逐步走向平民化,調(diào)查機構(gòu)AC尼爾森最新研究顯示,63%的中國網(wǎng)民曾在網(wǎng)上購物。有業(yè)內(nèi)人士認(rèn)為,中國的網(wǎng)上購物人數(shù)在快速增長,年輕的中國男性更熱衷于網(wǎng)上購物。民眾對電子商務(wù)的熱情高漲,表明我國民眾電子商務(wù)意識的提高,電子商務(wù)正改變著人們的消費方式。而近年來隨著移動技術(shù)的發(fā)展,手機在人們中的普及,傳統(tǒng)的電子商務(wù)越來越滿足不來了人們的需求,出現(xiàn)了一種新型的電子商務(wù)模式-移動電子商務(wù)。與傳統(tǒng)的Internet上的在線交易相比,移動電子商務(wù)具有許多優(yōu)點,移動交易不受時間和地點的限制;效率高,大大節(jié)省客戶交易的時間;移動終端的身份固定,能夠向用戶提供個性化移動交易服務(wù);可以提供與位置相關(guān)的交易服務(wù).移動電子商務(wù)將用戶和商家緊密聯(lián)系起來,而且這種聯(lián)系將不受PC或連接線的限制,使電子商務(wù)走向了個人.傳統(tǒng)的電子商務(wù)形式受到越來越大沖擊,以網(wǎng)絡(luò)化、知識管理、全球化為主要特征的信息化社會已是不可逆轉(zhuǎn)的趨勢,電子商務(wù)化已成為企業(yè)發(fā)展的必由之路.而信息化社會的核心是互聯(lián)網(wǎng)、移動通信和電子商務(wù),而三者的有機結(jié)合更是未來社會的大勢所趨。移動電子商務(wù)的快速發(fā)展。移動電子商務(wù)的基礎(chǔ)是互聯(lián)網(wǎng),移動電子商務(wù)的主要特點是靈活、簡單、方便。它能完全根據(jù)消費者的個性化需求和喜好定制,設(shè)備的選擇以及提供服務(wù)與信息的方式完全由用戶自己選擇控制.移動電子商務(wù)時代正向我們走來。選題意義目前,人們逐漸意識到融合移動通信技術(shù)的電子商務(wù)將具有更大的潛力,移動電子商務(wù)的市場前景普遍被業(yè)內(nèi)人士看好.參與電子商務(wù)的主要角色是企業(yè)(Business)和消費者(Customer),因此在企業(yè)之間、企業(yè)與消費者之間,網(wǎng)上交易構(gòu)成了BtoB(B2B即BusinesstoBusiness企業(yè)到企業(yè))、BtoC(即BusinesstoCustomer企業(yè)到用戶)兩種最典型的商務(wù)模式。據(jù)預(yù)測,到2003年,超過10%的電子商務(wù)交易將通過移動通信設(shè)備來完成;預(yù)計到2008年,全球?qū)⒊霈F(xiàn)10億移動電話用戶、10億因特網(wǎng)用戶,其中5億為移動因特網(wǎng)用戶;到2005年截止,將有25%的數(shù)據(jù)業(yè)務(wù)通過移動通信設(shè)備來傳輸。這些移動終端構(gòu)成了移動電子商務(wù)巨大的潛在市場.移動電子商務(wù)的特征移動電子商務(wù)和傳統(tǒng)的電子商務(wù)存在很大的區(qū)別,主要有下述兩點:不受時間和地點的限制.J2ME的優(yōu)點同傳統(tǒng)的WAP相比,J2ME有很多的優(yōu)點。這些優(yōu)點主要表現(xiàn)在:網(wǎng)絡(luò)編程靈活,能突破B/S結(jié)構(gòu)的一些限制,使得上層程序更加自由.正是J2ME的優(yōu)點,而基于J2ME平臺的移動電子商務(wù)將具有更大的潛力和優(yōu)點。本文將研究如何利用JAVASERVLET和XML技術(shù)構(gòu)建一個基于J2ME平臺的掌上網(wǎng)絡(luò)商店-服務(wù)器端的開發(fā)。相關(guān)技術(shù)及開發(fā)平臺簡介J2ME簡介J2ME(Java2PlatformMicroEdition)是為機頂盒、移動電話和PDA之類嵌入式消費電子設(shè)備提供的Java語言平臺,包括虛擬機和一系列標(biāo)準(zhǔn)化的JavaAPI。它和J2SE,J2EE一起構(gòu)成Java技術(shù)的三大版本,并且同樣是通過JCP(JavaCommunityProcess)制訂的。目前階段,J2ME最流行的應(yīng)用是游戲軟件。因為與需要昂貴的專用設(shè)備和開發(fā)工具的競爭對手(如索尼和任天堂)相比,J2ME程序可以在PC機上開發(fā)和仿真運行,然后很容易地部署到目標(biāo)機上,從而使其開發(fā)、測試和發(fā)布的變得容易和廉價.實際上J2ME的用途和前景要廣泛得多。SQLSERVER數(shù)據(jù)庫和JDBCSQLServer是一個關(guān)系數(shù)據(jù)庫管理系統(tǒng)。它最初是由MicrosoftSybase和Ashton—Tat三家公司共同開發(fā)的,于1988年推出了第一個OS/2版本.在WindowsNT推出后,Microsoft與Sybase在SQLServer的開發(fā)上就分道揚鑣了。Microsoft將SQLServer移植WindowsNT系統(tǒng)上,專注于開發(fā)推廣SQLServer的WindowsNT版本.Sybase則較專注于SQLServer在UNIX操作系統(tǒng)上的應(yīng)用。在本書中介紹的是MicrosoftSQLServer,以后簡稱為SQLServe或MSSQLServer.SQLServer2000是Microsoft公司推出的SQLServer數(shù)據(jù)庫管理系統(tǒng)的最新版本。該版本繼承了SQLServer7.0版本的優(yōu)點同時又比它增加了許多更先進的功能,具有使用方便可伸縮性好與相關(guān)軟件集成程度高等優(yōu)點.可跨越從運行MicrosoftWindows98的膝上型電腦到運行MicrosoftWindows2000的大型多處理器的服務(wù)器等多種平臺使用。JDBC的全稱是JavaDat(yī)abaseConnectivity(嚴(yán)格地講,JDBC是SunMicrosystems的商標(biāo)而非縮寫)。它是Java編程語言中用來規(guī)范客戶端程序如何來訪問數(shù)據(jù)庫的API,提供了諸如查詢和更新數(shù)據(jù)庫中數(shù)據(jù)的方法.JDBC是面向關(guān)系型數(shù)據(jù)庫的。JDBC驅(qū)動程序共分四種類型:類型1:JDBC—ODBC橋類型2:本地API驅(qū)動類型3:網(wǎng)絡(luò)協(xié)議驅(qū)動本地協(xié)議驅(qū)動.JAVASERVLET技術(shù)介紹Servlet是使用JavaServlet應(yīng)用程序設(shè)計接口(API)及相關(guān)類和方法的Java程序。除了JavaServletAPI,Servlet還可以使用用以擴展和添加到API的Java類軟件包.Servlet在啟用Java的Web服務(wù)器上或應(yīng)用服務(wù)器上運行并擴展了該服務(wù)器的能力。Javaservlet對于Web服務(wù)器就好像Javaapplet對于Web瀏覽器。Servlet裝入Web服務(wù)器并在Web服務(wù)器內(nèi)執(zhí)行,而applet裝入Web瀏覽器并在Web瀏覽器內(nèi)執(zhí)行。JavaServletAPI定義了一個servlet和Java使能的服務(wù)器之間的一個標(biāo)準(zhǔn)接口,這使得Servlets具有跨服務(wù)器平臺的特性.Servlet通過創(chuàng)建一個框架來擴展服務(wù)器的能力,以提供在Web上進行請求和響應(yīng)服務(wù).當(dāng)客戶機發(fā)送請求至服務(wù)器時,服務(wù)器可以將請求信息發(fā)送給Servlet,并讓Servlet建立起服務(wù)器返回給客戶機的響應(yīng)。當(dāng)啟動Web服務(wù)器或客戶機第一次請求服務(wù)時,可以自動裝入Servlet。裝入后,Servlet繼續(xù)運行直到其它客戶機發(fā)出請求.Servlet的功能涉及范圍很廣.XML和JDOMXML簡介XML是可擴展標(biāo)志語言(eXtensibleMarkupLanguage)的簡稱。標(biāo)記是指計算機所能理解的信息符號,通過此種標(biāo)記,計算機之間可以處理包含各種信息的文章。如何定義這些標(biāo)記,既可以選擇國際通用的標(biāo)記語言,比如HTML,也可以使用象XML這樣由相關(guān)人士自由決定的標(biāo)記語言,這就是語言的可擴展性。XML是從SGML中簡化修改出來的.它主要用到的有XML、XSL和XPath等.象HTML一樣,XML是從所有標(biāo)志語言的元語言-標(biāo)準(zhǔn)通用標(biāo)志語言SGML(StandardGeneralizedMarkupLanguage)那里派生出來的。SGML是一種元語言,也可以稱為一個定義諸如HTML等標(biāo)志語言的系統(tǒng)。XML也是一種元語言,一個定義Web應(yīng)用的SGML的子集。和SGML一樣,你也可以用XML來定義種種不同的標(biāo)志語言滿足不同的需要,特別在數(shù)據(jù)表現(xiàn)方面.JDOM技術(shù)JDOM是一種面向Java的讀、寫和操作XML文檔的API.JDOM與現(xiàn)行的SAX和DOM標(biāo)準(zhǔn)兼容,為Java程序員提供了一個簡單、輕量的XML文檔操作方法。由于JDOM是專門為Java程序員開發(fā)的,所以采用許多Java語言的優(yōu)秀特性,比如方法重載、集合(Collections)和類映射(Reflection)。開發(fā)平臺及系統(tǒng)配置當(dāng)前流行的JAVA開發(fā)平臺主要有BORLAND的JBUILD,SUN的NETBEANS和開源的ECLIPSE。但是JBUILD相比較而言簡單易用,學(xué)習(xí)曲線比較平緩。所以開發(fā)本系統(tǒng)選用JBUILD。下面是開發(fā)平臺及系統(tǒng)配置:操作系統(tǒng):WINDOWS2003。數(shù)據(jù)庫:SQLSERVER2000。開發(fā)工具:JBUILD9。附帶的JDOM包為:jdom-1。0。需要的JDBC驅(qū)動程序為:MicrosoftSQLServer2000DriverforJDBC。在JBUILD9所建立工程屬性里面要引入jdom-1.0和MicrosoftSQLServer2000DriverforJDBC。系統(tǒng)需求分析和設(shè)計方案需求分析在移動電子商務(wù)中,出于安全的考慮用戶要有自己的賬號,只有注冊成功獲得賬號才能登陸進行必要的操作。所以服務(wù)端設(shè)計中要有注冊登陸的功能。當(dāng)客戶第一次使用系統(tǒng)的時候要先進行注冊。在服務(wù)端的要的注冊模塊要完成的工作便是:接受客戶的注冊資料,然后與自己的數(shù)據(jù)庫的已有客戶資料進行比對,檢查賬號是否重復(fù)。如果重復(fù)在要返回提示信息:戶賬號已經(jīng)存在。如果沒有,把用戶注冊的資料插入的用戶信息表中,而后返回注冊成功信息:用戶注冊的名字和密碼。在用戶登陸的時候,服務(wù)端核對賬號密碼.如果一致,用戶可以進行后續(xù)的操作,如果不成功,則返回登陸錯誤信息。用戶登陸成功后的可能要查詢某件的詳細資料,查詢的時候輸入查詢物品的名稱,如果有,服務(wù)端返回查詢的詳細信息,其中信息的格式可以是XML的形式。也可以選擇以字符串的形式發(fā)送。用戶瀏覽到物品信息時想購買的話。則只要輸入購買物品的ID和購買的數(shù)量.這些購買物品數(shù)據(jù)從客戶端以XML數(shù)據(jù)格式發(fā)送給服務(wù)端。服務(wù)端首先要解析傳送過來的XML文檔提取的數(shù)據(jù)信息。如果信息合法且購買成功就返成功信息和購買物品信息。否則返回購買失敗的信息.系統(tǒng)總體框架

利用J2ME和JAVASERVLET建立企業(yè)級移動電子商務(wù)應(yīng)用是非常合適的,可以通過J2ME技術(shù)建立客戶終端程序,通過JAVASERVLET建立我的服務(wù)端程序。系統(tǒng)的總體框架如圖1.圖SEQ圖表\*ARABIC1總體框架圖在支持J2ME技術(shù)的PDA,手機等移動設(shè)備終端,可以利用它們支持的各種簡檔設(shè)計客戶端程序,實現(xiàn)與用戶的交互,同時,通過HTTP、HTTPS或XML等標(biāo)準(zhǔn)的網(wǎng)絡(luò)協(xié)議與J2EE應(yīng)用服務(wù)器實現(xiàn)數(shù)據(jù)傳遞。Web層和企業(yè)信息系統(tǒng)層用于構(gòu)建我的服務(wù)器端應(yīng)用,其中Web層用于實現(xiàn)與客戶層的接口和交互,它使用Servlet程序處理客戶端發(fā)出的連接和請求,并通過JDBC連接到企業(yè)信息系統(tǒng)層的數(shù)據(jù)庫系統(tǒng)上.數(shù)據(jù)庫系統(tǒng)處理SQL語句,會將處理結(jié)果以一個結(jié)果集的形式發(fā)送到業(yè)務(wù)邏輯層,業(yè)務(wù)邏輯層將接收到的信息提交給Web層的Servlet程序,Servlet程序再通過HTTP、HTTPS或XML將響應(yīng)信息返回到客戶端.系統(tǒng)設(shè)計關(guān)鍵技術(shù)網(wǎng)絡(luò)的連接由于無線設(shè)備所能支持的網(wǎng)絡(luò)協(xié)議非常有限,僅限于HTTP,Socket,UDP等幾種協(xié)議,不同的廠家可能還支持其他網(wǎng)絡(luò)協(xié)議,但是,MIDP1。0規(guī)范規(guī)定,HTTP是必須實現(xiàn)的協(xié)議,而其他協(xié)議的實現(xiàn)都是可選的.因此,為了能在不同類型的手機上移植,我們采用HTTP作為網(wǎng)絡(luò)連接的首選協(xié)議,這樣還能重用服務(wù)器端的代碼。但是,由于HTTP是一個基于文本的效率較低的協(xié)議,因此,必須仔細考慮手機和服務(wù)器端的通信內(nèi)容,盡可能地提高效率。在登陸和注冊的時候傳輸?shù)臄?shù)據(jù)量較少,選用GET方法在基于效率上考慮比較合適的。在服務(wù)端對應(yīng)的采用DOGET方法。而對于在瀏覽和購買的時候傳輸?shù)臄?shù)據(jù)量大一些,POST方法是不得不選用的,雖然其效率上比較低,但是它可以傳輸比較大的數(shù)據(jù)量,GET方法傳輸給服務(wù)端的數(shù)據(jù)量是有限制的。對應(yīng)的服務(wù)端為DOPOST方法。數(shù)據(jù)存儲方式和數(shù)據(jù)的交換由于有大量的數(shù)據(jù),采用簡單的文件系統(tǒng)顯然不合適,采用數(shù)據(jù)庫管理系統(tǒng)對于設(shè)計來說是比較簡單的,在系統(tǒng)設(shè)計中要存儲用戶的基本信息和商品的基本信息,這就需要用兩張表來存儲其中的數(shù)據(jù)。設(shè)計表的時候要設(shè)置主鍵以加強數(shù)據(jù)的完整性.而對于數(shù)據(jù)的交換格式,本系統(tǒng)則采用XML數(shù)據(jù)格式,在定義XML數(shù)據(jù)格式,只要是well-formed,而不需要定義其DTD,以及顯示樣式表。無論建立還是解析XML,對于JAVA語言來說JDOM是必需的。JDOM是在Apache許可證下發(fā)布的開放源碼,是JAVA語言中XML和DOM交互的API.在設(shè)計實現(xiàn)中將用JDOM建立一個標(biāo)準(zhǔn)的well-formed的XML文檔,也將用JDOM解析一個XML文檔。業(yè)務(wù)數(shù)據(jù)流分析聯(lián)網(wǎng)的流程聯(lián)網(wǎng)的時候按照如下的流程:1、建立連接.2、設(shè)置輸出的文檔MIME類型,設(shè)置為text/plain.設(shè)置數(shù)據(jù)編碼方式,打開輸出流。3、從URL字符串獲取參數(shù),判斷參數(shù)是否合法,如果OK則開始接受數(shù)據(jù)并進行相應(yīng)的處理。4、經(jīng)過處理的結(jié)果傳輸數(shù)據(jù)給客戶端。5、關(guān)閉連接和流。訪問數(shù)據(jù)庫的流程1、裝入JDBC程序.要使用JDBC訪問數(shù)據(jù)庫,首先必須加載JDBC驅(qū)動程序,只需一句代碼Class。forName("com.microsoft.jdbc.sqlserver。SQLServerDriver")。2、建立連接。建立連接的標(biāo)準(zhǔn)方法是DriverManager.getConnection(Stringurl,Stringuser,Stringpassword).3、執(zhí)行SQL語句。4、檢索結(jié)果。5、關(guān)閉連接。在對象使用完畢后,應(yīng)當(dāng)關(guān)閉連接。輸入XML數(shù)據(jù)解析流程由客戶端發(fā)送過來的數(shù)據(jù)是XML的格式,首先服務(wù)端要解析這些XML格式的數(shù)據(jù)得到所需要的信息.而解析XML需要用的JDOM。JDOM自身不包含解析器。它通常使用SAX2解析器來解析和驗證輸入XML文檔。它包含一些轉(zhuǎn)換器以將JDOM表示輸出成SAX2事件流、DOM模型或XML文本文檔。解析的流程如下:1、使用JDOM首先要指定使用什么解析器。2、得到Document.3、得到根元素。4、得到元素(節(jié)點)的集合。5、輪循List集合。6、取得元素的子元素(為最低層元素)的值。7、DOM結(jié)果處理(輸出/保存).輸出XML文檔建立流程向客戶端發(fā)送XML格式數(shù)據(jù),首先要建立XML格式的文檔數(shù)據(jù).這也將用到JDOM。在JDOM中,XML元素就是Element的實例,XML屬性就是Attribute的實例,XML文檔本身就是Document的實例.因為JDOM對象就是像Document、Element和Attribute這些類的直接實例,因此創(chuàng)建一個新JDOM對象就如在Java語言中使用new操作符一樣容易.JDOM的使用是直截了當(dāng)?shù)摹=ML文檔的流程如下:1、首先建立根元素.2、然后用root創(chuàng)建XML文檔對象。3、創(chuàng)建元素,設(shè)置內(nèi)容,屬性。4、結(jié)果處理(輸出/保存)。和客戶端交互接口的約定關(guān)于URL服務(wù)端和數(shù)據(jù)端的網(wǎng)絡(luò)通訊采用HTTP協(xié)議。購買模塊的URL地址為:http://localhost:8080/servlet/PurchaseServlet。登陸模塊的URL地址為:http://localhost:8080/loginservlet1。注冊模塊的URL地址為:http://localhost:8080/registerservlet。瀏覽物品模塊的URL地址為:http://localhost:8080/userdataservlet。URL參數(shù)約定規(guī)則在注冊模塊和登陸模塊中用戶的帳號約定為id;用戶的密碼約定為pw.在查詢的模塊中首先以書名為查詢參數(shù),參數(shù)約定為name;在登陸中如果登陸成功則返回給客戶端yes返回失敗返回no。接收和發(fā)送的XML文檔格式的約定在查詢的模塊中往客戶端發(fā)送的XML格式的約定為<name>元素的文本內(nèi)容物品的名字,<id>元素文本內(nèi)容為物品的ID,<press>元素內(nèi)容為產(chǎn)地,<price〉元素內(nèi)容為價格,<description1〉元素內(nèi)容為物品描述信息,〈quantity〉元素內(nèi)容為數(shù)量。如果根節(jié)點不為〈wrong>則表示查詢失敗<errorinfofmation>返回的是失敗信息。查詢成功XML式樣如下:<?xmlversion='1.0'encoding='UTF—8’?>〈courses><name>name</name><id>id</id>〈press>author〈/press><price>price</price><description1>description</description><quantity〉quantity</quantity></courses>查詢失敗XML式樣如下:<?xmlversion='1。0'encoding='UTF—8’?><wrong〉〈errorinformat(yī)ion>thereissomethingwronghere</errorinformation></wrong>在購買模塊中要購買物品的需要物品的ID。ID約定為元素<id>的內(nèi)容,購買數(shù)量約定為<quantity>元素的內(nèi)容。接收的XML文檔為:<?xmlversion='1.0’encoding=’UTF—8'?><courses〉<id>id〈/id〉〈quantity>quantity〈/quantity〉</courses〉數(shù)據(jù)庫的分析與設(shè)計注冊用戶基本信息表user表user包含4個字段,分別是account,password,username,tele,其中account設(shè)置為主鍵,如表1。表1用戶基本信息表列名數(shù)據(jù)屬性長度是否為NUL是否主鍵accountchar8否是passwordchar8否否usernamechar8是否telechar8是否商品信息表商品信息表是物品基本信息的簡單介紹,它其中包括7個字段,分別是name,id,press,descrption1,price,author,quantity其中設(shè)置id為主鍵,如表2。表2商品信息表列名數(shù)據(jù)屬性長度是否能為NULL是否主鍵namechar8能否idchar8否是pressvarchar1024能否authorvarchar1024能否decrpiton1text8000能否pricemoney4能否quantityint2能否具體的設(shè)計流程和實現(xiàn)系統(tǒng)構(gòu)架系統(tǒng)主要工作流程在客戶端進入啟動畫面的時候,對于有賬號用戶來說可以首先選擇是否登陸。如果不想登陸也可以退出系統(tǒng).若用戶沒賬號首先要申請帳號,如果不想申請帳號則也直接退出系統(tǒng).假設(shè)用戶申請成功,則進入登陸流程,如果登陸成功。用戶就可以瀏覽物品,如果不想購買物品,也可以直接推出系統(tǒng).如果購買物品,若成功可以選擇退出,或則繼續(xù)瀏覽物品。流程圖如圖2。圖SEQ圖表\*ARABIC2系統(tǒng)流程圖系統(tǒng)功能模塊設(shè)計數(shù)據(jù)庫聯(lián)網(wǎng)模塊的設(shè)計1、裝入JDBC程序:要使用JDBC訪問數(shù)據(jù)庫,首先必須加載JDBC驅(qū)動程序,只需一句代碼Class.forName(”com.microsoft。jdbc.sqlserver.SQLServerDriver")。2、建立連接:建立連接的標(biāo)準(zhǔn)方法是DriverManager.getConnection(Stringurl,Stringuser,String,password)。DriverManager類用于處理驅(qū)動程序的調(diào)如并且對新的數(shù)據(jù)庫連接提供支持,它位于JDBC的管理層,通過該類,能夠連接到URL表示的數(shù)據(jù)庫的驅(qū)動程序為了存取數(shù)據(jù),還需要提供用戶名和口令程序的核心代碼:publicConnectiongetConnection(){try{Class.forName(”com.microsoft。jdbc.sqlserver.SQLServerDriver”);con=DriverManager.getConnection(getConnectionUrl(),userName,password);if(con!=null)System。out。println("ConnectionSuccessful!");}catch(Exceptione){e.printStackTrace();System.out。println("ErrorTraceingetConnection():"));}returncon;}注冊模塊的設(shè)計客戶第一次使用系統(tǒng)的時候必須先進行注冊。在服務(wù)端的要的注冊模塊要完成的工作便是接受客戶的注冊資料然后與自己的數(shù)據(jù)庫的已有客戶資料進行比對,看看有沒有賬號和用戶所的賬號是否重復(fù),如果重復(fù)在要返回提示信息就用戶賬號已經(jīng)存在.如果沒有在把要把用戶注冊的資料插入的用戶信息表,而后返回注冊成功信息以及用戶注冊的名字和密碼。圖3和圖4顯示了失敗和成功的信息。下面是程序要引用的包:importjava.util.*;importjavax。servlet.*;importjavax.servlet。http.*;importjava。io。*;importjava.sql.*;importjavax。sql.*;importmyhttp.*;importorg.jdom.Element;importorg。jdom.Document;importorg.jdom.output.XMLOutputter;importjava.sql.SQLException;使用doGet()方法來對應(yīng)客戶端的請求.然后設(shè)置發(fā)送的文本樣式response.setContentType("text/plain;charset=UTF—8");用request.getParameter()提取客戶段發(fā)送的參數(shù)。查詢數(shù)據(jù)庫的設(shè)計如下:/*---—-—---———-----—---—-—-----——----——-—-———--—---——————-——-—-——-—-----—-*在數(shù)據(jù)庫進行查詢看看是否用戶名已經(jīng)存在,存在返回true,否則返回false。*--—-------——-—-——--—--—---—--——-------——-----—----—--—------—--————---—-—*/privatebooleanDBConnection(Stringaccount){Connectionconn=null;ResultSetrs=null;Stat(yī)ementstmt=null;booleanft=false;try{JDBCDemoda=newJDBCDemo();conn=da。getConnection();stmt=conn.createStatement();Stringcommand="selectaccountfromshenfeng128whereaccount="+”'"+account+"'";rs=stmt。executeQuery(command);if(rs.next()){ft=true;}rs.close();stmt。close();conn.close();System.out.println("databaseconnectsuccess");}catch(Exceptione){e.printStackTrace();System.out。print(”thereisomethingwronghere");}returnft;}然后是查詢成功發(fā)送的實現(xiàn)如何/*-—-—--——-——-----—-—-——--——-——---—-—----—--—-----—--—--------—-—-—--——---————--*更新數(shù)據(jù)庫,如果更新成功返回更新所影響的行數(shù),否則返回0*---—--—--—---—--———--——-———-----———-—-—--———--—----—------—-----*/privat(yī)eintDBConnectionUpdate(Stringaccount,Stringpassword){Connectionconn=null;ResultSetrs=null;intcount=0;Statementstmt=null;try{JDBCDemoda=newJDBCDemo();conn=da.getConnection();stmt=conn。createStatement();Stringcommand="insertintoshenfeng128values("+”’"+account+”',”+"'"+password+"')";count=stmt.executeUpdate(command);if(rs!=null)rs。close();if(stmt!=null)stmt.close();if(conn!=null)conn。close();System.out.println(”databaseupdatesuccess");}catch(Exceptione){e.printStackTrace();System.out.print("theresomethingwronghere");}finally{}returncount;}圖SEQ圖表\*ARABIC3注冊失敗截圖圖SEQ圖表\*ARABIC4注冊失敗截圖登陸模塊的設(shè)計用戶登陸要輸入自己的賬號密碼,在服務(wù)端獲取賬號和密碼后要和自己的關(guān)于客戶賬號信息進行比對,如果一致在用戶登陸成功可以進行后續(xù)的操作,如果不行,在返回登陸錯誤信息.圖5顯示登陸失敗的信息。要引入的一些包:importjava。util.*;importjavax。servlet.*;importjavax.servlet.http.*;importjava.io.*;importjava。sql.*;importjavax。sql.*;importmyhttp.*;importorg.jdom.Element;importorg.jdom.Document;importorg。jdom.output.XMLOutputter;importjava。sql.SQLException;登陸的最主要操作就是和用戶表的資料進行比對:比對的操作如下:/*—--—--—-———--——-—-————--———----—-—----—-—-——-—--———--—-———-—------—-——--—--*Getconnecttodat(yī)abasetthenqueringandreturntheresultset驗證用戶名和密碼*成功返回false失敗返回true。*-------—----——--——-—--—----—------—---————-—---—-------—-—-————--———-*/privatebooleanjudge(Stringaccount,Stringpassword){Connectionconn=null;ResultSetrs=null;Statementstmt=null;booleanft=true;try{JDBCDemoda=newJDBCDemo();conn=da.getConnection();stmt=conn.createStat(yī)ement();Stringcommand=”select*fromshenfeng128whereaccount=”+”'”+account+"'"+"”+"and"+"password=”+"'”+password+”'";rs=stmt.executeQuery(command);if(rs.next()){ft=false;System.out.println(ft);}rs.close();stmt.close();conn.close();System。out.println(”databaseconnectsuccess");System.out.println(”rs="+rs);}catch(Exceptione){e.printStackTrace();System。out.print(”thereissomethingwronghere");}returnft;}圖SEQ圖表\*ARABIC5登陸失敗截圖查詢模塊的實現(xiàn)當(dāng)用戶登陸成功后的操作可能是查詢圖書的資料,查詢的操作是輸入查詢事物的名字,如果有此事物,在服務(wù)端向客戶端返回查詢的詳細信息,其中信息的格式可以是XML的形式。也可以選擇以字符串的形式發(fā)送。查詢成功發(fā)送給客戶端的數(shù)據(jù)截圖如圖6.查詢數(shù)據(jù)庫的模塊如下:/*----——--—-————-——-————--—————--—--—-———---——-—--——--—-—-—-—-—-———-—-—---—--*Getconnecttodatabasetthenqueringandreturntheresultset*-------—-—-—----—---——--—--—-----—--—--—--—----—-------—--—-—------—*/privateStringDBConnection(Stringname,Stringtable){if(name==null||table==null)returnnull;Stringstr=null;Connectionconn=null;ResultSetrs=null;Stat(yī)ementstmt=null;try{JDBCDemoda=newJDBCDemo();conn=da.getConnection();stmt=conn.createStatement();Stringcommand=”select*from"+table+"wherename="+"'”+name+”'";rs=stmt。executeQuery(command);str=toSstring(rs);rs。close();stmt.close();conn.close();System。out。println("databaseconnectsuccess");}catch(Exceptione){System.out.print(”thereissomethingwronghere");}returnstr;}查詢數(shù)據(jù)庫的結(jié)果集可以轉(zhuǎn)換成字符串的形式,也可以轉(zhuǎn)換成XML的格式。轉(zhuǎn)換字符串的實現(xiàn)如下:/*——-—---——----—--—-—--——-——-—--—--—--—--------—---——---—-----—--—-—-——*BuildresultsettoString*-----—-——--——--—------—-—--—-—----—---—-—-——-—-----—-----——--——-———--*/privateStringtoSstring(ResultSetrs){StringBuffers1=newStringBuffer("");StringBuffers2=newStringBuffer("”);StringBuffers3=newStringBuffer("”);StringBuffers=newStringBuffer(”");try{while(rs。next()){s.a(chǎn)ppend(”--————-—-—-———----—-—-——--——-—---—--——-—-—\n");s。append("Id=”+rs.getString(”id")+"\n");s.append("Name=”+rs.getString("name”)+"\n”);System.out.println(rs。getString("name”));s。append("Price=”+rs。getString(”price")+"\n");s。append("Press="+rs。getString(”press"));s.a(chǎn)ppend("quantity="+rs.getString("quantity"));?s.append("--—-—--—--—-------—-—-——----——--——---”);}}cat(yī)ch(SQLExceptionex){ex。printStackTrace();}returns。toString();}JDOM建立XML文檔實現(xiàn)如下:privat(yī)eDocumenttoXml(ResultSetrs){ElementBookInfo=newElement("BookInfo");DocumentmyDocument=newDocument(BookInfo);Elementbookname=null;try{while(rs.next()){bookname=newElement("bookname");Elementprice=newElement("price");Elementdescription=newElement("description1");Elementpress=newElement("press");bookname.setText(rs。getString("name”));price.setText(rs.getString("price"));description.setText(rs.getString("descrption1”));press。setText(rs。getString("press"));BookInfo.addContent(bookname);BookInfo.addContent(price);BookInfo。addContent(description);BookInfo.addContent(press);}}catch(Exceptione){e.printStackTrace();System.out.println("buildxmlerror");}System.out.println(”buildxmlsuccess”);returnmyDocument;}圖SEQ圖表\*ARABIC6瀏覽的信息截圖購買功能模塊的實現(xiàn)當(dāng)用戶成功登陸后,查詢有關(guān)的物品,然后得到有用的信息。如果用戶想購買商品則只要輸入購買物品的ID和購買的數(shù)量就行啦,這些數(shù)據(jù)從客戶端以XML數(shù)據(jù)格式發(fā)送給服務(wù)端。在服務(wù)端首先要解析傳送過來的XML文檔提取有用的數(shù)據(jù)信息.購買成功服務(wù)端向客戶端發(fā)送的數(shù)據(jù)截圖如圖7.用JDOM解析XML的詳細實現(xiàn)如下:/*—---—---—-——-——--——-—---------——-—--—-----——---————-———--—-*parsexml*——-——--————----—-——----——-—---——-——---———-—------—--—-—-—----—---—-—-----*/privatevoidparseXml(StringtextXml){SAXBuilderbuilder=newSAXBuilder();Documentdoc=null;Readerin=newStringReader(textXml);try{doc=builder.build(in);Elementroot=doc.getRootElement();Listls=root。getChildren();for(Iteratoriter=ls.iterat(yī)or();iter.hasNext();){Elementel=(Element)iter。next();if(el。getName()。equals("id”)){id=el.getText();}if(el。getName().equals(”bookname")){bookname=el.getText();}if(el.getName()。equals("price")){price=el.getText();}if(el。getName()。equals("description1")){description1=el。getText();}if(el.getName()。equals("press")){press=el.getText();}}}catch(JDOMExceptionex){ex.printStackTrace();System。out。println("jDOMerror");}System.out.println("thisisatest”);}解析后然后查詢自己的物品數(shù)據(jù)庫,看看購買的物品是不是在自己的數(shù)據(jù)庫中,以及是否購買的數(shù)量是否超過自己的庫存。如果都不超過在返回購買成功信息.否則返回失敗信息。購買成功后,要對數(shù)據(jù)庫進行更新操作。/*——--—--————-—--—---—---—-——-—--—--—--—------—-———--—-—-—--—-—---—-——-—-———*Getconnecttodatabasetthenupdatathedatabase*-—-—--—-—-——-——-—----—-—----——-—--——-—-------—----——-—-—---------—------—-*/privateintDBConnectionUpdat(yī)a(intcount,Stringid){intupdate_count=0;Connectionconn=null;ResultSetrs=null;Statementstmt=null;try{JDBCDem

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論