版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于j2ee的掌上商店的設(shè)計(jì)與實(shí)現(xiàn)摘 要過去的幾年,電子商務(wù)的迅猛發(fā)展為企業(yè)創(chuàng)造了極大的價(jià)值,使傳統(tǒng)的企業(yè)商務(wù)模式發(fā)生了很大的改變。隨著手機(jī)使用的普及和無線技術(shù)的發(fā)展,移動(dòng)電子商務(wù)將會(huì)作為電子商務(wù)領(lǐng)域中的一種新型的電子商務(wù)模式,其發(fā)展前景是十分誘人的??梢灶A(yù)見的是,移動(dòng)電子商務(wù)將成為21世紀(jì)電子商務(wù)領(lǐng)域的主戰(zhàn)場(chǎng)。j2me是為嵌入式消費(fèi)電子設(shè)備提供的java語言開發(fā)平臺(tái),是針對(duì)資源受限設(shè)備。因此基于j2me平臺(tái)的無線終端的應(yīng)用程序開發(fā)以及與網(wǎng)絡(luò)服務(wù)器端的信息交互開發(fā)就十分重要。利用客戶端 + java servlet + sql server數(shù)據(jù)庫三層模式實(shí)現(xiàn)網(wǎng)上商店系統(tǒng)是通用的方法。所有的業(yè)務(wù)
2、邏輯都封裝在servlet中,數(shù)據(jù)庫的使用提高了數(shù)據(jù)的安全性,而采用可擴(kuò)展標(biāo)識(shí)語言xml的數(shù)據(jù)格式實(shí)現(xiàn)了跨平臺(tái)的數(shù)據(jù)交換。詳細(xì)闡述了系統(tǒng)的需求分析、系統(tǒng)總體架構(gòu)及詳細(xì)設(shè)計(jì),系統(tǒng)實(shí)現(xiàn)了以下功能:會(huì)員注冊(cè)、登錄、瀏覽物品詳細(xì)信息和購(gòu)買物品。關(guān)鍵詞:j2me;可擴(kuò)展標(biāo)識(shí)語言;servlet;網(wǎng)絡(luò)商店the palm platform of e-shop based on the j2meserver developmentabstractover the years, the fast fierce development of electronic commerce created tremend
3、ous value for the enterprise, which greatly changed traditional enterprise commerce pattern. with the prevalence of mobile phone and development of wireless, mobile e-commerce will be a new e-commerce mode in the electronic commerce realm, and it is very promising. it can be predicted that the mobil
4、e e-commerce will become the major industry of e-commerce in the 21st century. j2me is the platform that provides the java language to develop the embedded electronic equipment of expense, which aims at the equipment that resource is limited. therefore the interactive information exploitation develo
5、ping with network server and applications of wireless terminal development based on j2me platform is very important. it is a general method to implement the system of e-shop using three layers of pattern: client side + java servlet + database of sql server. all the business logic encapsulated in the
6、 servlet, using of the database improved the security, and using the xml data format achieved cross-platform data exchange. to the system demand analysis, the system requirement analysis, the overall of system construction and the detailed design are elaborated in details in this paper, and the syst
7、em achieves the following functions: member registration, login, browse detailed information and purchase goods.key words: j2me; xml; servlet; e-shop目 錄論文總頁數(shù):24頁1引言11.1選題背景11.2選題意義12相關(guān)技術(shù)及開發(fā)平臺(tái)簡(jiǎn)介22.1j2me簡(jiǎn)介22.2sql server數(shù)據(jù)庫和jdbc22.3java servlet技術(shù)介紹22.4xml和jdom32.4.1xml簡(jiǎn)介32.4.2jdom技術(shù)32.5開發(fā)平臺(tái)及系統(tǒng)配置33系統(tǒng)需求分
8、析和設(shè)計(jì)方案43.1需求分析43.2系統(tǒng)總體框架43.3系統(tǒng)設(shè)計(jì)關(guān)鍵技術(shù)53.3.1網(wǎng)絡(luò)的連接53.3.2數(shù)據(jù)存儲(chǔ)方式和數(shù)據(jù)的交換53.4業(yè)務(wù)數(shù)據(jù)流分析53.4.1聯(lián)網(wǎng)的流程53.4.2訪問數(shù)據(jù)庫的流程63.4.3輸入xml數(shù)據(jù)解析流程63.4.4輸出xml文檔建立流程63.5和客戶端交互接口的約定73.5.1關(guān)于url73.5.2url參數(shù)約定規(guī)則73.5.3接收和發(fā)送的xml文檔格式的約定73.6數(shù)據(jù)庫的分析與設(shè)計(jì)83.6.1注冊(cè)用戶基本信息表user83.6.2商品信息表84具體的設(shè)計(jì)流程和實(shí)現(xiàn)系統(tǒng)構(gòu)架94.1系統(tǒng)主要工作流程94.2系統(tǒng)功能模塊設(shè)計(jì)94.2.1數(shù)據(jù)庫聯(lián)網(wǎng)模塊的設(shè)計(jì)94.
9、2.2注冊(cè)模塊的設(shè)計(jì)104.2.3登陸模塊的設(shè)計(jì)134.2.4查詢模塊的實(shí)現(xiàn)154.2.5購(gòu)買功能模塊的實(shí)現(xiàn)185測(cè)試分析與問題處理215.1數(shù)據(jù)庫連接215.2與客戶端的連接21結(jié) 論22參考文獻(xiàn)221 引言1.1 選題背景網(wǎng)上購(gòu)物正逐步走向平民化,調(diào)查機(jī)構(gòu)ac尼爾森最新研究顯示,63%的中國(guó)網(wǎng)民曾在網(wǎng)上購(gòu)物。有業(yè)內(nèi)人士認(rèn)為,中國(guó)的網(wǎng)上購(gòu)物人數(shù)在快速增長(zhǎng),年輕的中國(guó)男性更熱衷于網(wǎng)上購(gòu)物。民眾對(duì)電子商務(wù)的熱情高漲,表明我國(guó)民眾電子商務(wù)意識(shí)的提高,電子商務(wù)正改變著人們的消費(fèi)方式。而近年來隨著移動(dòng)技術(shù)的發(fā)展,手機(jī)在人們中的普及,傳統(tǒng)的電子商務(wù)越來越滿足不來了人們的需求,出現(xiàn)了一種新型的電子商務(wù)模式
10、移動(dòng)電子商務(wù)。與傳統(tǒng)的internet上的在線交易相比,移動(dòng)電子商務(wù)具有許多優(yōu)點(diǎn),移動(dòng)交易不受時(shí)間和地點(diǎn)的限制;效率高,大大節(jié)省客戶交易的時(shí)間;移動(dòng)終端的身份固定,能夠向用戶提供個(gè)性化移動(dòng)交易服務(wù);可以提供與位置相關(guān)的交易服務(wù)。移動(dòng)電子商務(wù)將用戶和商家緊密聯(lián)系起來,而且這種聯(lián)系將不受pc或連接線的限制,使電子商務(wù)走向了個(gè)人。傳統(tǒng)的電子商務(wù)形式受到越來越大沖擊,以網(wǎng)絡(luò)化、知識(shí)管理、全球化為主要特征的信息化社會(huì)已是不可逆轉(zhuǎn)的趨勢(shì),電子商務(wù)化已成為企業(yè)發(fā)展的必由之路。而信息化社會(huì)的核心是互聯(lián)網(wǎng)、移動(dòng)通信和電子商務(wù),而三者的有機(jī)結(jié)合更是未來社會(huì)的大勢(shì)所趨。移動(dòng)電子商務(wù)的快速發(fā)展。移動(dòng)電子商務(wù)的基礎(chǔ)是互
11、聯(lián)網(wǎng),移動(dòng)電子商務(wù)的主要特點(diǎn)是靈活、簡(jiǎn)單、方便。它能完全根據(jù)消費(fèi)者的個(gè)性化需求和喜好定制,設(shè)備的選擇以及提供服務(wù)與信息的方式完全由用戶自己選擇控制。移動(dòng)電子商務(wù)時(shí)代正向我們走來。1.2 選題意義目前,人們逐漸意識(shí)到融合移動(dòng)通信技術(shù)的電子商務(wù)將具有更大的潛力,移動(dòng)電子商務(wù)的市場(chǎng)前景普遍被業(yè)內(nèi)人士看好。參與電子商務(wù)的主要角色是企業(yè)(business)和消費(fèi)者(customer),因此在企業(yè)之間、企業(yè)與消費(fèi)者之間,網(wǎng)上交易構(gòu)成了b to b(b2b即business to business企業(yè)到企業(yè))、b to c(即business to customer 企業(yè)到用戶)兩種最典型的商務(wù)模式。據(jù)預(yù)測(cè)
12、,到2003年,超過10%的電子商務(wù)交易將通過移動(dòng)通信設(shè)備來完成;預(yù)計(jì)到2008年,全球?qū)⒊霈F(xiàn)10億移動(dòng)電話用戶、10億因特網(wǎng)用戶,其中5億為移動(dòng)因特網(wǎng)用戶;到2005年截止,將有25%的數(shù)據(jù)業(yè)務(wù)通過移動(dòng)通信設(shè)備來傳輸。這些移動(dòng)終端構(gòu)成了移動(dòng)電子商務(wù)巨大的潛在市場(chǎng)。移動(dòng)電子商務(wù)的特征移動(dòng)電子商務(wù)和傳統(tǒng)的電子商務(wù)存在很大的區(qū)別,主要有下述兩點(diǎn):(1) 不受時(shí)間和地點(diǎn)的限制。(2) j2me的優(yōu)點(diǎn)同傳統(tǒng)的wap相比,j2me有很多的優(yōu)點(diǎn)。這些優(yōu)點(diǎn)主要表現(xiàn)在:網(wǎng)絡(luò)編程靈活,能突破b/s結(jié)構(gòu)的一些限制,使得上層程序更加自由。正是j2me的優(yōu)點(diǎn),而基于j2me平臺(tái)的移動(dòng)電子商務(wù)將具有更大的潛力和優(yōu)點(diǎn)。本
13、文將研究如何利用java servlet和xml技術(shù)構(gòu)建一個(gè)基于j2me平臺(tái)的掌上網(wǎng)絡(luò)商店服務(wù)器端的開發(fā)。2 相關(guān)技術(shù)及開發(fā)平臺(tái)簡(jiǎn)介2.1 j2me簡(jiǎn)介j2me(java 2 platform micro edition)是為機(jī)頂盒、移動(dòng)電話和pda之類嵌入式消費(fèi)電子設(shè)備提供的java語言平臺(tái),包括虛擬機(jī)和一系列標(biāo)準(zhǔn)化的java api。它和j2se,j2ee一起構(gòu)成java技術(shù)的三大版本,并且同樣是通過jcp(java community process)制訂的。目前階段,j2me最流行的應(yīng)用是游戲軟件。因?yàn)榕c需要昂貴的專用設(shè)備和開發(fā)工具的競(jìng)爭(zhēng)對(duì)手(如索尼和任天堂)相比,j2me程序可以在p
14、c機(jī)上開發(fā)和仿真運(yùn)行,然后很容易地部署到目標(biāo)機(jī)上,從而使其開發(fā)、測(cè)試和發(fā)布的變得容易和廉價(jià)。實(shí)際上j2me的用途和前景要廣泛得多。2.2 sql server數(shù)據(jù)庫和jdbcsql server 是一個(gè)關(guān)系數(shù)據(jù)庫管理系統(tǒng)。它最初是由microsoft sybase和ashton-tat三家公司共同開發(fā)的,于1988年推出了第一個(gè)os/2版本。在windows nt推出后,microsoft與sybase在sql server的開發(fā)上就分道揚(yáng)鑣了。microsoft 將sql server 移植windows nt系統(tǒng)上,專注于開發(fā)推廣sql server的windows nt版本。sybase
15、則較專注于sql server在unix操作系統(tǒng)上的應(yīng)用。在本書中介紹的是microsoft sql server,以后簡(jiǎn)稱為sql serve或ms sql server。sql server 2000是microsoft公司推出的sql server數(shù)據(jù)庫管理系統(tǒng)的最新版本。該版本繼承了sql server 7.0版本的優(yōu)點(diǎn)同時(shí)又比它增加了許多更先進(jìn)的功能,具有使用方便可伸縮性好與相關(guān)軟件集成程度高等優(yōu)點(diǎn)。可跨越從運(yùn)行microsoft windows 98的膝上型電腦到運(yùn)行microsoft windows 2000的大型多處理器的服務(wù)器等多種平臺(tái)使用。jdbc的全稱是java data
16、base connectivity(嚴(yán)格地講,jdbc是sun microsystems的商標(biāo)而非縮寫)。它是java編程語言中用來規(guī)范客戶端程序如何來訪問數(shù)據(jù)庫的api,提供了諸如查詢和更新數(shù)據(jù)庫中數(shù)據(jù)的方法。jdbc是面向關(guān)系型數(shù)據(jù)庫的。jdbc驅(qū)動(dòng)程序共分四種類型:類型1:jdbc-odbc橋類型2:本地api驅(qū)動(dòng)類型3:網(wǎng)絡(luò)協(xié)議驅(qū)動(dòng)本地協(xié)議驅(qū)動(dòng)。2.3 java servlet技術(shù)介紹servlet是使用java servlet應(yīng)用程序設(shè)計(jì)接口(api)及相關(guān)類和方法的 java程序。除了java servlet api,servlet還可以使用用以擴(kuò)展和添加到api的java類軟件包
17、。servlet在啟用java的web服務(wù)器上或應(yīng)用服務(wù)器上運(yùn)行并擴(kuò)展了該服務(wù)器的能力。java servlet對(duì)于web服務(wù)器就好像java applet對(duì)于web瀏覽器。servlet裝入web服務(wù)器并在web服務(wù)器內(nèi)執(zhí)行,而applet裝入web瀏覽器并在web瀏覽器內(nèi)執(zhí)行。java servlet api定義了一個(gè)servlet和java使能的服務(wù)器之間的一個(gè)標(biāo)準(zhǔn)接口,這使得servlets具有跨服務(wù)器平臺(tái)的特性。servlet通過創(chuàng)建一個(gè)框架來擴(kuò)展服務(wù)器的能力,以提供在web上進(jìn)行請(qǐng)求和響應(yīng)服務(wù)。當(dāng)客戶機(jī)發(fā)送請(qǐng)求至服務(wù)器時(shí),服務(wù)器可以將請(qǐng)求信息發(fā)送給 servlet,并讓servle
18、t建立起服務(wù)器返回給客戶機(jī)的響應(yīng)。當(dāng)啟動(dòng)web服務(wù)器或客戶機(jī)第一次請(qǐng)求服務(wù)時(shí),可以自動(dòng)裝入servlet。裝入后,servlet繼續(xù)運(yùn)行直到其它客戶機(jī)發(fā)出請(qǐng)求。servlet的功能涉及范圍很廣。2.4 xml和jdom2.4.1 xml簡(jiǎn)介xml是可擴(kuò)展標(biāo)志語言(extensible markup language)的簡(jiǎn)稱。標(biāo)記是指計(jì)算機(jī)所能理解的信息符號(hào),通過此種標(biāo)記,計(jì)算機(jī)之間可以處理包含各種信息的文章。如何定義這些標(biāo)記,既可以選擇國(guó)際通用的標(biāo)記語言,比如html,也可以使用象xml這樣由相關(guān)人士自由決定的標(biāo)記語言,這就是語言的可擴(kuò)展性。xml是從sgml中簡(jiǎn)化修改出來的。它主要用到的有x
19、ml、xsl和xpath等。象html一樣,xml是從所有標(biāo)志語言的元語言標(biāo)準(zhǔn)通用標(biāo)志語言sgml(standard generalized markup language)那里派生出來的。sgml是一種元語言,也可以稱為一個(gè)定義諸如html等標(biāo)志語言的系統(tǒng)。xml也是一種元語言,一個(gè)定義web應(yīng)用的sgml的子集。和sgml一樣,你也可以用xml來定義種種不同的標(biāo)志語言滿足不同的需要,特別在數(shù)據(jù)表現(xiàn)方面。2.4.2 jdom技術(shù)jdom是一種面向java的讀、寫和操作xml文檔的api。jdom與現(xiàn)行的sax和dom標(biāo)準(zhǔn)兼容,為java程序員提供了一個(gè)簡(jiǎn)單、輕量的xml文檔操作方法。由于jd
20、om是專門為java程序員開發(fā)的,所以采用許多java語言的優(yōu)秀特性,比如方法重載、集合(collections)和類映射(reflection)。2.5 開發(fā)平臺(tái)及系統(tǒng)配置當(dāng)前流行的java開發(fā)平臺(tái)主要有borland的jbuild,sun的netbeans和開源的eclipse。但是jbuild相比較而言簡(jiǎn)單易用,學(xué)習(xí)曲線比較平緩。所以開發(fā)本系統(tǒng)選用jbuild。下面是開發(fā)平臺(tái)及系統(tǒng)配置:操作系統(tǒng):windows2003。數(shù)據(jù)庫:sql server 2000。開發(fā)工具:jbuild9。附帶的jdom包為:jdom-1.0。需要的jdbc驅(qū)動(dòng)程序?yàn)椋簃icrosoft sql server
21、 2000 driver for jdbc。在jbuild9所建立工程屬性里面要引入jdom-1.0和microsoft sql server 2000 driver for jdbc。3 系統(tǒng)需求分析和設(shè)計(jì)方案3.1 需求分析在移動(dòng)電子商務(wù)中,出于安全的考慮用戶要有自己的賬號(hào),只有注冊(cè)成功獲得賬號(hào)才能登陸進(jìn)行必要的操作。所以服務(wù)端設(shè)計(jì)中要有注冊(cè)登陸的功能。當(dāng)客戶第一次使用系統(tǒng)的時(shí)候要先進(jìn)行注冊(cè)。在服務(wù)端的要的注冊(cè)模塊要完成的工作便是:接受客戶的注冊(cè)資料,然后與自己的數(shù)據(jù)庫的已有客戶資料進(jìn)行比對(duì),檢查賬號(hào)是否重復(fù)。如果重復(fù)在要返回提示信息:戶賬號(hào)已經(jīng)存在。如果沒有,把用戶注冊(cè)的資料插入的用戶信
22、息表中,而后返回注冊(cè)成功信息:用戶注冊(cè)的名字和密碼。在用戶登陸的時(shí)候,服務(wù)端核對(duì)賬號(hào)密碼。如果一致,用戶可以進(jìn)行后續(xù)的操作,如果不成功,則返回登陸錯(cuò)誤信息。用戶登陸成功后的可能要查詢某件的詳細(xì)資料,查詢的時(shí)候輸入查詢物品的名稱,如果有,服務(wù)端返回查詢的詳細(xì)信息,其中信息的格式可以是xml的形式。也可以選擇以字符串的形式發(fā)送。用戶瀏覽到物品信息時(shí)想購(gòu)買的話。則只要輸入購(gòu)買物品的id和購(gòu)買的數(shù)量。這些購(gòu)買物品數(shù)據(jù)從客戶端以xml數(shù)據(jù)格式發(fā)送給服務(wù)端。服務(wù)端首先要解析傳送過來的xml文檔提取的數(shù)據(jù)信息。如果信息合法且購(gòu)買成功就返成功信息和購(gòu)買物品信息。否則返回購(gòu)買失敗的信息。3.2 系統(tǒng)總體框架利用
23、j2me和java servlet建立企業(yè)級(jí)移動(dòng)電子商務(wù)應(yīng)用是非常合適的,可以通過j2me技術(shù)建立客戶終端程序,通過java servlet建立我的服務(wù)端程序。系統(tǒng)的總體框架如圖1。圖1總體框架圖在支持j2me技術(shù)的pda,手機(jī)等移動(dòng)設(shè)備終端,可以利用它們支持的各種簡(jiǎn)檔設(shè)計(jì)客戶端程序,實(shí)現(xiàn)與用戶的交互,同時(shí),通過http、https或xml等標(biāo)準(zhǔn)的網(wǎng)絡(luò)協(xié)議與j2ee應(yīng)用服務(wù)器實(shí)現(xiàn)數(shù)據(jù)傳遞。web層和企業(yè)信息系統(tǒng)層用于構(gòu)建我的服務(wù)器端應(yīng)用,其中web層用于實(shí)現(xiàn)與客戶層的接口和交互,它使用servlet程序處理客戶端發(fā)出的連接和請(qǐng)求,并通過jdbc連接到企業(yè)信息系統(tǒng)層的數(shù)據(jù)庫系統(tǒng)上。數(shù)據(jù)庫系統(tǒng)處理
24、sql語句,會(huì)將處理結(jié)果以一個(gè)結(jié)果集的形式發(fā)送到業(yè)務(wù)邏輯層,業(yè)務(wù)邏輯層將接收到的信息提交給web層的servlet程序,servlet程序再通過http、https或xml將響應(yīng)信息返回到客戶端。3.3 系統(tǒng)設(shè)計(jì)關(guān)鍵技術(shù)3.3.1 網(wǎng)絡(luò)的連接由于無線設(shè)備所能支持的網(wǎng)絡(luò)協(xié)議非常有限,僅限于http,socket,udp等幾種協(xié)議,不同的廠家可能還支持其他網(wǎng)絡(luò)協(xié)議,但是,midp1.0規(guī)范規(guī)定,http是必須實(shí)現(xiàn)的協(xié)議,而其他協(xié)議的實(shí)現(xiàn)都是可選的。因此,為了能在不同類型的手機(jī)上移植,我們采用http作為網(wǎng)絡(luò)連接的首選協(xié)議,這樣還能重用服務(wù)器端的代碼。但是,由于http是一個(gè)基于文本的效率較低的協(xié)議
25、,因此,必須仔細(xì)考慮手機(jī)和服務(wù)器端的通信內(nèi)容,盡可能地提高效率。在登陸和注冊(cè)的時(shí)候傳輸?shù)臄?shù)據(jù)量較少,選用get方法在基于效率上考慮比較合適的。在服務(wù)端對(duì)應(yīng)的采用doget方法。而對(duì)于在瀏覽和購(gòu)買的時(shí)候傳輸?shù)臄?shù)據(jù)量大一些,post方法是不得不選用的,雖然其效率上比較低,但是它可以傳輸比較大的數(shù)據(jù)量,get方法傳輸給服務(wù)端的數(shù)據(jù)量是有限制的。對(duì)應(yīng)的服務(wù)端為dopost方法。3.3.2 數(shù)據(jù)存儲(chǔ)方式和數(shù)據(jù)的交換由于有大量的數(shù)據(jù),采用簡(jiǎn)單的文件系統(tǒng)顯然不合適,采用數(shù)據(jù)庫管理系統(tǒng)對(duì)于設(shè)計(jì)來說是比較簡(jiǎn)單的,在系統(tǒng)設(shè)計(jì)中要存儲(chǔ)用戶的基本信息和商品的基本信息,這就需要用兩張表來存儲(chǔ)其中的數(shù)據(jù)。設(shè)計(jì)表的時(shí)候要設(shè)
26、置主鍵以加強(qiáng)數(shù)據(jù)的完整性。而對(duì)于數(shù)據(jù)的交換格式,本系統(tǒng)則采用xml數(shù)據(jù)格式,在定義xml數(shù)據(jù)格式,只要是well-formed,而不需要定義其dtd,以及顯示樣式表。無論建立還是解析xml,對(duì)于java語言來說jdom是必需的。jdom是在apache許可證下發(fā)布的開放源碼,是java語言中xml和dom交互的api。在設(shè)計(jì)實(shí)現(xiàn)中將用jdom建立一個(gè)標(biāo)準(zhǔn)的well-formed的xml文檔,也將用jdom解析一個(gè)xml文檔。3.4 業(yè)務(wù)數(shù)據(jù)流分析3.4.1 聯(lián)網(wǎng)的流程聯(lián)網(wǎng)的時(shí)候按照如下的流程:1、建立連接。2、設(shè)置輸出的文檔mime類型,設(shè)置為text/plain。設(shè)置數(shù)據(jù)編碼方式,打開輸出流
27、。3、從url字符串獲取參數(shù),判斷參數(shù)是否合法,如果ok則開始接受數(shù)據(jù)并進(jìn)行相應(yīng)的處理。4、經(jīng)過處理的結(jié)果傳輸數(shù)據(jù)給客戶端。5、關(guān)閉連接和流。3.4.2 訪問數(shù)據(jù)庫的流程1、裝入jdbc程序。要使用jdbc訪問數(shù)據(jù)庫,首先必須加載jdbc驅(qū)動(dòng)程序,只需一句代碼class.forname(com.microsoft.jdbc.sqlserver.sqlserverdriver)。2、建立連接。建立連接的標(biāo)準(zhǔn)方法是drivermanager.getconnection(string url,string user,string password)。3、執(zhí)行sql語句。4、檢索結(jié)果。5、關(guān)閉連接。在
28、對(duì)象使用完畢后,應(yīng)當(dāng)關(guān)閉連接。3.4.3 輸入xml數(shù)據(jù)解析流程由客戶端發(fā)送過來的數(shù)據(jù)是xml的格式,首先服務(wù)端要解析這些xml格式的數(shù)據(jù)得到所需要的信息。而解析xml需要用的jdom。jdom自身不包含解析器。它通常使用sax2解析器來解析和驗(yàn)證輸入xml文檔。它包含一些轉(zhuǎn)換器以將jdom表示輸出成sax2事件流、dom模型或xml文本文檔。解析的流程如下:1、使用jdom首先要指定使用什么解析器。2、得到document。3、得到根元素。4、得到元素(節(jié)點(diǎn))的集合。5、輪循list集合。6、取得元素的子元素(為最低層元素)的值。7、dom結(jié)果處理(輸出/保存)。3.4.4 輸出xml文檔建
29、立流程向客戶端發(fā)送xml格式數(shù)據(jù),首先要建立xml格式的文檔數(shù)據(jù)。這也將用到j(luò)dom。在jdom中,xml元素就是element的實(shí)例,xml屬性就是attribute的實(shí)例,xml文檔本身就是document的實(shí)例。因?yàn)閖dom對(duì)象就是像document、element和attribute這些類的直接實(shí)例,因此創(chuàng)建一個(gè)新jdom對(duì)象就如在java語言中使用new操作符一樣容易。jdom的使用是直截了當(dāng)?shù)?。建立xml文檔的流程如下:1、首先建立根元素。2、然后用root創(chuàng)建xml文檔對(duì)象。3、創(chuàng)建元素,設(shè)置內(nèi)容,屬性。4、結(jié)果處理(輸出/保存)。3.5 和客戶端交互接口的約定3.5.1 關(guān)于u
30、rl服務(wù)端和數(shù)據(jù)端的網(wǎng)絡(luò)通訊采用http協(xié)議。購(gòu)買模塊的url地址為:http:/localhost:8080/servlet/purchaseservlet。登陸模塊的url地址為:http:/localhost:8080/loginservlet1。注冊(cè)模塊的url地址為:http:/localhost:8080/registerservlet。瀏覽物品模塊的url地址為:http:/localhost:8080/userdataservlet。3.5.2 url參數(shù)約定規(guī)則在注冊(cè)模塊和登陸模塊中用戶的帳號(hào)約定為id;用戶的密碼約定為pw。在查詢的模塊中首先以書名為查詢參數(shù),參數(shù)約定為na
31、me;在登陸中如果登陸成功則返回給客戶端yes返回失敗返回no。3.5.3 接收和發(fā)送的xml文檔格式的約定在查詢的模塊中往客戶端發(fā)送的xml格式的約定為元素的文本內(nèi)容物品的名字,元素文本內(nèi)容為物品的id,元素內(nèi)容為產(chǎn)地,元素內(nèi)容為價(jià)格,元素內(nèi)容為物品描述信息,元素內(nèi)容為數(shù)量。如果根節(jié)點(diǎn)不為則表示查詢失敗返回的是失敗信息。查詢成功xml式樣如下:nameidauthorpricedescriptionquantity查詢失敗xml式樣如下:there is something wrong here在購(gòu)買模塊中要購(gòu)買物品的需要物品的id。id約定為元素的內(nèi)容,購(gòu)買數(shù)量約定為元素的內(nèi)容。接收的xm
32、l文檔為:idquantity3.6 數(shù)據(jù)庫的分析與設(shè)計(jì)3.6.1 注冊(cè)用戶基本信息表user表user包含4個(gè)字段,分別是account,password,username,tele,其中account設(shè)置為主鍵,如表1。表1 用戶基本信息表列名數(shù)據(jù)屬性長(zhǎng)度是否為nul是否主鍵accountchar8否是passwordchar8否否usernamechar8是否telechar8是否3.6.2 商品信息表商品信息表是物品基本信息的簡(jiǎn)單介紹,它其中包括7個(gè)字段,分別是name,id,press,descrption1,price,author,quantity其中設(shè)置id為主鍵,如表2。表2
33、 商品信息表列名數(shù)據(jù)屬性長(zhǎng)度是否能為null是否主鍵namechar8能否idchar8否是pressvarchar1024能否authorvarchar1024能否decrpiton1text8000能否pricemoney4能否quantityint2能否4 具體的設(shè)計(jì)流程和實(shí)現(xiàn)系統(tǒng)構(gòu)架4.1 系統(tǒng)主要工作流程在客戶端進(jìn)入啟動(dòng)畫面的時(shí)候,對(duì)于有賬號(hào)用戶來說可以首先選擇是否登陸。如果不想登陸也可以退出系統(tǒng)。若用戶沒賬號(hào)首先要申請(qǐng)帳號(hào),如果不想申請(qǐng)帳號(hào)則也直接退出系統(tǒng)。假設(shè)用戶申請(qǐng)成功,則進(jìn)入登陸流程,如果登陸成功。用戶就可以瀏覽物品,如果不想購(gòu)買物品,也可以直接推出系統(tǒng)。如果購(gòu)買物品,若成功
34、可以選擇退出,或則繼續(xù)瀏覽物品。流程圖如圖2。圖2系統(tǒng)流程圖4.2 系統(tǒng)功能模塊設(shè)計(jì)4.2.1 注冊(cè)模塊的設(shè)計(jì)客戶第一次使用系統(tǒng)的時(shí)候必須先進(jìn)行注冊(cè)。在服務(wù)端的要的注冊(cè)模塊要完成的工作便是接受客戶的注冊(cè)資料然后與自己的數(shù)據(jù)庫的已有客戶資料進(jìn)行比對(duì),看看有沒有賬號(hào)和用戶所的賬號(hào)是否重復(fù),如果重復(fù)在要返回提示信息就用戶賬號(hào)已經(jīng)存在。如果沒有在把要把用戶注冊(cè)的資料插入的用戶信息表,而后返回注冊(cè)成功信息以及用戶注冊(cè)的名字和密碼。圖3和圖4顯示了失敗和成功的信息。下面是程序要引用的包:import java.util.*;import javax.servlet.*; import javax.serv
35、let.http.*;import java.io.*; import java.sql.*;import javax.sql.*;import myhttp.*;import org.jdom.element;import org.jdom.document;import org.jdom.output.xmloutputter;import java.sql.sqlexception;使用doget()方法來對(duì)應(yīng)客戶端的請(qǐng)求。然后設(shè)置發(fā)送的文本樣式response.setcontenttype(text/plain; charset = utf-8);用request.getparamet
36、er()提取客戶段發(fā)送的參數(shù)。查詢數(shù)據(jù)庫的設(shè)計(jì)如下:/*-*在數(shù)據(jù)庫進(jìn)行查詢看看是否用戶名已經(jīng)存在,存在返回true,否則返回false。*-*/private boolean dbconnection(string account) connection conn = null; resultset rs = null; statement stmt = null; boolean ft = false; try jdbcdemo da = new jdbcdemo(); conn = da.getconnection(); stmt = conn.createstatement(); st
37、ring command=select account from shenfeng128 where account =+account+; rs = stmt.executequery(command); if(rs.next() ft = true; rs.close(); stmt.close(); conn.close(); system.out.println(database connect success); catch (exception e) e.printstacktrace(); system.out.print(there isomething wrong here)
38、; return ft; 然后是查詢成功發(fā)送的實(shí)現(xiàn)如何/*-*更新數(shù)據(jù)庫,如果更新成功返回更新所影響的行數(shù),否則返回0*-*/ private int dbconnectionupdate(string account,string password) connection conn = null; resultset rs = null; int count = 0; statement stmt = null; try jdbcdemo da = new jdbcdemo(); conn = da.getconnection(); stmt = conn.createstatement()
39、; string command = insert into shenfeng128 values(+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 (exception e) e.printstacktrace(); system.out.print(
40、there something wrong here); finally return count; 圖 3 注冊(cè)失敗截圖圖 4 注冊(cè)失敗截圖4.2.2 登陸模塊的設(shè)計(jì)4.2.3 查詢模塊的實(shí)現(xiàn)當(dāng)用戶登陸成功后的操作可能是查詢圖書的資料,查詢的操作是輸入查詢事物的名字,如果有此事物,在服務(wù)端向客戶端返回查詢的詳細(xì)信息,其中信息的格式可以是xml的形式。也可以選擇以字符串的形式發(fā)送。查詢成功發(fā)送給客戶端的數(shù)據(jù)截圖如圖6。查詢數(shù)據(jù)庫的模塊如下:/*-*get connect to databaset then quering and return the resultset*-*/ private
41、 string dbconnection(string name,string table) if(name = null | table = null) return null; string str = null; connection conn = null; resultset rs = null; statement stmt = null; try jdbcdemo da = new jdbcdemo(); conn = da.getconnection(); stmt = conn.createstatement(); string command = select * from
42、 +table+ where name=+ name +; rs = stmt.executequery(command); str = tosstring(rs); rs.close(); stmt.close(); conn.close(); system.out.println(database connect success); catch (exception e) system.out.print(there is something wrong here); return str; 查詢數(shù)據(jù)庫的結(jié)果集可以轉(zhuǎn)換成字符串的形式,也可以轉(zhuǎn)換成xml的格式。轉(zhuǎn)換字符串的實(shí)現(xiàn)如下:/*-*
43、build resultset to string*-*/ private string tosstring(resultset rs) stringbuffer s1 = new stringbuffer(); stringbuffer s2 = new stringbuffer(); stringbuffer s3 = new stringbuffer(); stringbuffer s = new stringbuffer( ); try while (rs.next() s.append(-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.append(quantity=+rs.getstring(quan
溫馨提示
- 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. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年機(jī)房建設(shè)與運(yùn)維一體化施工合同書3篇
- 2025版事業(yè)單位聘用合同書(二零二五年度)服務(wù)期限與待遇約定3篇
- 2025年度藝術(shù)品代購(gòu)代銷服務(wù)協(xié)議范本4篇
- 2025年項(xiàng)目部安全責(zé)任合同書編制指南3篇
- 2025年度個(gè)人購(gòu)房裝修配套服務(wù)合同
- 2025年高新技術(shù)企業(yè)員工薪酬保障與晉升協(xié)議書3篇
- 2025年食材配送與智慧物流解決方案合作協(xié)議3篇
- 2025年度二手房買賣合同綠色裝修與改造服務(wù)合同4篇
- 2025年度美容院美容師市場(chǎng)調(diào)研與分析服務(wù)合同4篇
- 提前終止房地產(chǎn)買賣合同(2025版)2篇
- 《阻燃材料與技術(shù)》-顏龍 習(xí)題解答
- 2024-2030年中國(guó)食品飲料灌裝設(shè)備行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略分析報(bào)告
- 建筑結(jié)構(gòu)課程設(shè)計(jì)成果
- 纖維增強(qiáng)復(fù)合材料 單向增強(qiáng)材料Ⅰ型-Ⅱ 型混合層間斷裂韌性的測(cè)定 編制說明
- 習(xí)近平法治思想概論教學(xué)課件緒論
- 寵物會(huì)展策劃設(shè)計(jì)方案
- 孤殘兒童護(hù)理員(四級(jí))試題
- 醫(yī)院急診醫(yī)學(xué)小講課課件:急診呼吸衰竭的處理
- 腸梗阻導(dǎo)管在臨床中的使用及護(hù)理課件
- 小學(xué)英語單詞匯總大全打印
- 衛(wèi)生健康系統(tǒng)安全生產(chǎn)隱患全面排查
評(píng)論
0/150
提交評(píng)論