版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 畢業(yè)設(shè)計(jì)(論文)</b></p><p> 課 題 名 稱基于SSI框架的網(wǎng)上購物系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) </p><p> 學(xué) 生 姓 名 </p><p> 學(xué)
2、號 </p><p> 系、年級專業(yè) </p><p> 指 導(dǎo) 教 師 </p><p> 職 稱 </p><p> 年 月
3、 日 </p><p><b> 摘要</b></p><p> 該網(wǎng)上購物系統(tǒng)屬于電子商務(wù)平臺的一種,它根據(jù)現(xiàn)有比較流行的網(wǎng)上購物系統(tǒng)和互聯(lián)網(wǎng)技術(shù)與B2C(Business to Consumers) 模式開發(fā)設(shè)計(jì)而成。使用該系統(tǒng),除了能夠提高市場競爭力,擴(kuò)大商家規(guī)模外,對于降低經(jīng)營成本,提高工作效率也是非常有利的。</p><p>
4、; 該論文通過現(xiàn)有的網(wǎng)上購物系統(tǒng)情況及開發(fā)背景進(jìn)行說明介紹,從而引出在當(dāng)前形勢下對該系統(tǒng)的設(shè)計(jì)需求,并根據(jù)這些設(shè)計(jì)需求確定了相應(yīng)的設(shè)計(jì)目標(biāo)與總體設(shè)計(jì)方案,接著具體敘述了該系統(tǒng)的詳細(xì)設(shè)計(jì)過程與實(shí)現(xiàn)方法,最后進(jìn)行系統(tǒng)檢測并對需要改進(jìn)的地方進(jìn)行了描述。</p><p> 該系統(tǒng)基于現(xiàn)在比較流行的MVC設(shè)計(jì)模式,主要分為了兩個大模塊:前臺模塊和后臺模塊。前臺模塊由用戶注冊登錄、新聞動態(tài)、留言簿、商品信息展示、商品放入
5、購物車以及商品結(jié)算等幾大模塊構(gòu)成,后臺模塊則由用戶信息管理、商品信息管理、訂單管理等子模塊構(gòu)成。</p><p> 該系統(tǒng)采用Struts2+Spring3.0+IBatis2.3三大框架集成開發(fā)。使用JSP技術(shù)進(jìn)行動態(tài)頁面的設(shè)計(jì),采用HTML+JavaScript+CSS+AJAX等前端技術(shù),后臺數(shù)據(jù)庫選用Oracle 11g數(shù)據(jù)庫。為了提高系統(tǒng)的安全性能,增強(qiáng)代碼的重復(fù)使用性,故選用程序的關(guān)鍵代碼的封裝采用
6、JavaBean組件技術(shù)實(shí)現(xiàn)。</p><p> 關(guān)鍵字:Struts2;Spring2.5;IBatis2.3;JavaBean;JSP;Oracle 11g</p><p><b> ABSTRACT</b></p><p> This system is based on mvc
7、160;design mode, majoring at two modules: foreground and background. The foreground mainly includes module of membership registration,
8、news and trends, guestbook, commodity information display, select goods into the shopping cart and settle accounts; the background
9、;has mainly provided users with </p><p> the following functions: customer information management, commodity </p><p> information
10、60;management, order management and so on.This system is adopted by three integrated development of Struts2+Spring3.0+IBatis2.3, using JSP
11、160;technology in dynamic page design, </p><p> taking front-end technology like HTML+JavaScript+CSS+AJAX, choosing Oracle 11g as the
12、60;data base of background, considering from the security </p><p> and reusing code of the system, key codes has been
13、0;secured by JavaBean technology.</p><p> Keywords:Struts2;Spring2.5;IBatis2.3;JavaBean;JSP;Oracle 11g</p><p><b> 目錄</b></p><p><b> 摘要I</b>
14、;</p><p> ABSTRACT錯誤!未定義書簽。</p><p> 1 網(wǎng)上購物系統(tǒng)緒論1</p><p> 1.1 系統(tǒng)開發(fā)背景1</p><p> 1.2 系統(tǒng)實(shí)現(xiàn)的目標(biāo)2</p><p> 1.3 系統(tǒng)的開發(fā)意義2</p><p> 1.4 系統(tǒng)開發(fā)平臺與工具
15、3</p><p> 1.5 系統(tǒng)的開發(fā)技術(shù)及主要架構(gòu)4</p><p><b> 2 系統(tǒng)分析10</b></p><p> 2.1 網(wǎng)上購物系統(tǒng)概述10</p><p> 2.2 網(wǎng)上購物系統(tǒng)的可行性分析10</p><p> 2.3 網(wǎng)上購物系統(tǒng)需求分析11</p
16、><p> 3 系統(tǒng)概要設(shè)計(jì)13</p><p> 3.1 項(xiàng)目規(guī)劃13</p><p> 3.2 系統(tǒng)結(jié)構(gòu)圖13</p><p> 3.3 系統(tǒng)流程分析14</p><p> 4 系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)16</p><p> 4.1 數(shù)據(jù)庫設(shè)計(jì)的重要性16</p>&
17、lt;p> 4.2 數(shù)據(jù)庫設(shè)計(jì)規(guī)范16</p><p> 4.3 數(shù)據(jù)庫字典17</p><p> 5 系統(tǒng)詳細(xì)設(shè)計(jì)22</p><p> 5.1 開發(fā)規(guī)范22</p><p> 5.2 系統(tǒng)框架說明23</p><p> 6 系統(tǒng)測試及難點(diǎn)分析30</p><p>
18、; 6.1 系統(tǒng)測試30</p><p> 6.2 系統(tǒng)運(yùn)行結(jié)果32</p><p> 6.3 系統(tǒng)中所存在的問題及解決方案41</p><p><b> 參考文獻(xiàn)45</b></p><p><b> 致謝46</b></p><p> 1 網(wǎng)上購物系
19、統(tǒng)緒論</p><p> 1.1 系統(tǒng)開發(fā)背景</p><p> 1.1.1網(wǎng)上購物的發(fā)展</p><p> 最近的幾年,Internet的迅猛發(fā)展使得互聯(lián)網(wǎng)日漸成為了信息收集與提供的佼佼者,并逐步成為了一種傳統(tǒng)的流通渠道。在互聯(lián)網(wǎng)的帶動下,電子商務(wù)開始進(jìn)入人們的視野,網(wǎng)上商店開始流行起來。</p><p> 網(wǎng)上購物系統(tǒng)作為一種企業(yè)
20、對企業(yè)(B2B),企業(yè)對消費(fèi)者(B2C),消費(fèi)者對消費(fèi)者(C2C)的電子商務(wù)前端商務(wù)平臺,對其商務(wù)活動有著非常重要的作用。本文主要對建設(shè)B2C網(wǎng)上購物系統(tǒng)進(jìn)行討論。</p><p> 網(wǎng)上購物系統(tǒng)是一種商業(yè)信息系統(tǒng),這個系統(tǒng)中包含了動態(tài)與靜態(tài)兩大信息資源,其中動態(tài)信息資源是指像培訓(xùn)信息、會議安排及商品報(bào)價(jià)之類的時刻變化的信息,而靜態(tài)信息資源則是指像公司簡介、公司制度及公司管理等不經(jīng)常更新變化的信息。該系統(tǒng)在交互
21、功能方面表現(xiàn)突出,商家與用戶之間通過該系統(tǒng)能夠更為簡便地傳遞信息,完成EDI交易及電子貿(mào)易,讓企業(yè)之間文件與資金無紙化交換成為了現(xiàn)實(shí)。</p><p> 1.1.2網(wǎng)上購物系統(tǒng)的現(xiàn)狀</p><p> 就現(xiàn)在而言,在中國最普遍使用的是PHP與ASP技術(shù),JSP作為一種較為新穎的技術(shù),雖然在國外,特別是國外的電子商務(wù)類網(wǎng)站中的應(yīng)用已較為廣泛,但在國內(nèi),它的應(yīng)用領(lǐng)域依舊較小。</p&
22、gt;<p> PHP技術(shù)由于自身存在的一些缺陷,比如規(guī)模支持與多層結(jié)構(gòu)支持,使得它更適用于一些小型的商業(yè)網(wǎng)站,如新浪、中國人等,在大型的電子商務(wù)網(wǎng)站中使用,它的缺陷就會暴露無疑。加之PHP沒有統(tǒng)一的數(shù)據(jù)庫接口支持,導(dǎo)致它在電子商務(wù)中并不適用。但PHP技術(shù)缺少這類支持,并且PHP沒有統(tǒng)一的數(shù)據(jù)庫接口支持,導(dǎo)致它在電子商務(wù)中并不適用。</p><p> ASP技術(shù)不但能夠取得ActiveX規(guī)模支持
23、,而且能夠取得結(jié)構(gòu)支持,JSP技術(shù)與ASP一樣,也能夠獲取規(guī)模支持與結(jié)構(gòu)支持。</p><p> 當(dāng)今世界,JSP/Servlet受到許多大型電子商務(wù)解決方案提供商的喜愛。例如較為有名的IBM的E-business與西方的另一個廣為人知的電子商務(wù)軟件提供商Intershop,它們的核心分別選用的是JSP/Servlet的WebSphere與JSP/Servlet。其中,Intershop之前的產(chǎn)品Intersh
24、op1 2, 3, 4在電子商務(wù)軟件占據(jù)了市場的主要份額,雖然這些產(chǎn)品采用的是CGI來進(jìn)行支持的,但在那之后,Intershop又推出了一個應(yīng)用JSP/Servlet的電子商務(wù)應(yīng)用服務(wù)——Enfinity,并聲稱再也不開發(fā)傳統(tǒng)軟件。由此觀之,以上三種技術(shù),將來最大為發(fā)展應(yīng)當(dāng)非JSP莫屬。</p><p> 綜上所述,JSP、PHP、ASP三者各有千秋,每個技術(shù)都有一定數(shù)量數(shù)量的支持者和反對者,因此我們在開發(fā)實(shí)際
25、應(yīng)用時應(yīng)當(dāng)從實(shí)際情況考慮,選擇一個最適合當(dāng)前項(xiàng)目的技術(shù)。本文中系統(tǒng)選用的是較為新穎的JSP技術(shù),原因如下:一是JSP技術(shù)的安全性與跨平臺性較好,二是希望能夠從設(shè)計(jì)這個系統(tǒng)的過程當(dāng)中,對這門編程語言得到更深入的了解。</p><p> 1.2系統(tǒng)實(shí)現(xiàn)的目標(biāo)</p><p> 眼下流行的網(wǎng)上購物系統(tǒng)大多都是外觀與內(nèi)在同時兼?zhèn)涞南到y(tǒng),既有美麗的頁面布局,更有嚴(yán)謹(jǐn)?shù)囊?guī)劃設(shè)計(jì),對每一個細(xì)微的環(huán)節(jié)
26、都不放過。只有這樣,在電子交易環(huán)節(jié)中才避免發(fā)生錯誤。傳統(tǒng)管理信息系統(tǒng)的信息獲取依靠的是專業(yè)人員在管理系統(tǒng)的數(shù)據(jù)庫中進(jìn)行信息的錄入來完成的,當(dāng)信息量較小的時候,這種方法可以應(yīng)用在許多場合。但是,一旦數(shù)據(jù)量較大,且專業(yè)性較強(qiáng)時,使用這種錄入方法所需費(fèi)用以及從錄入的出錯率都會相應(yīng)上升。</p><p> 在本設(shè)計(jì)中,采用jsp實(shí)現(xiàn)動態(tài)頁面,ibatis與數(shù)據(jù)庫進(jìn)行數(shù)據(jù)的交互,struts2充當(dāng)控制層,連接頁面和數(shù)據(jù)庫
27、,并處理相關(guān)的業(yè)務(wù),spring主要用于提供依賴注入、數(shù)據(jù)源和事務(wù)管理。</p><p> 通過以上技術(shù)的有機(jī)結(jié)合,可以給用戶帶來一個交互性良好,安全穩(wěn)定的網(wǎng)上購物系統(tǒng),同時也利于后期維護(hù)和升級。</p><p> 1.3系統(tǒng)的開發(fā)意義</p><p> 互聯(lián)網(wǎng)為傳統(tǒng)的商業(yè)運(yùn)作在技術(shù)上提供了一種可行性方案,使得傳統(tǒng)的商業(yè)運(yùn)作模式隨著互聯(lián)網(wǎng)的發(fā)展有所改變?,F(xiàn)在,
28、這種方案已經(jīng)廣泛應(yīng)用到了我們的實(shí)際生活中,也就是我們常常鎖說的:電子商務(wù)。這個方案是利用互聯(lián)網(wǎng)的技術(shù)與協(xié)議,為所有的買家、賣家,生產(chǎn)商、合伙人建立起各式各樣的企業(yè)內(nèi)部網(wǎng)與企業(yè)外部網(wǎng),通過采用廉價(jià)通信方法將大家緊密地聯(lián)系在了一起,讓空間和時間不再是阻隔相互聯(lián)系交易的障礙,從而極大地降低交易的成本,擴(kuò)大交易的范圍。</p><p> 我們經(jīng)常上的淘寶網(wǎng)與當(dāng)當(dāng)網(wǎng)就是現(xiàn)在比較流行的兩個網(wǎng)上購物系統(tǒng),二者均是非常出色的電
29、子商務(wù)網(wǎng)站,同時也是其他網(wǎng)站學(xué)習(xí)的優(yōu)秀典范。所以,在設(shè)計(jì)系統(tǒng)中,我們不妨參考他們的思想,這將有助于我們對電子商務(wù)網(wǎng)站的開發(fā)設(shè)計(jì)、整個網(wǎng)站應(yīng)有的系統(tǒng)功能和注意事項(xiàng)得到更深入的認(rèn)識與了解。</p><p> 電子商務(wù)網(wǎng)站的設(shè)計(jì)和完成需要涉及到很多技術(shù)層面上的問題,所以在設(shè)計(jì)中,我們應(yīng)該避免紙上談兵,通過在實(shí)踐操作中來掌握相關(guān)技術(shù),如:后臺數(shù)據(jù)庫與動態(tài)網(wǎng)頁制作的設(shè)計(jì)及管理的使用。</p><p&g
30、t; 1.4 系統(tǒng)開發(fā)平臺與工具</p><p> 1.4.1 操作系統(tǒng)平臺Windows 7</p><p> 該系統(tǒng)開發(fā)平臺采用由微軟公司(Microsoft)開發(fā)的操作系統(tǒng)Windows7 旗艦版64位,處理器Intel(R) Core(TM) i3-2350M CPU @ 2.30GHz 2.30GHz,安裝內(nèi)存10.0GB。</p>&l
31、t;p> 1.4.2項(xiàng)目開發(fā)工具M(jìn)yEclipse</p><p> 本系統(tǒng)采用的項(xiàng)目開發(fā)工具是MyEclipse企業(yè)級工作平臺(簡稱MyEclipes),它是對EclipseIDE的擴(kuò)展,不但具有完整的編碼、調(diào)試、測試與發(fā)布功能,而且能夠完全支持HTML,Javascript,JSP,Spring,SQL及Hibernate等,是一個功能豐富的JavaEE集成開發(fā)環(huán)境。該平臺不僅有利于數(shù)據(jù)庫與Java
32、EE的開發(fā)、發(fā)布,在應(yīng)用程序服務(wù)器的整合方面也非常合適,使用它能夠大幅度地提高我們的工作效率。</p><p> 由于MyEclipse功能的強(qiáng)大與支持的廣泛,使得它特別適用于各類開源產(chǎn)品的支持,可以說,MyEclipse幾乎囊括了現(xiàn)今全部的主流開源產(chǎn)品的開發(fā),因此,對于Java,J2EE的開發(fā)而言,MyEclipse是一個非常出色的Eclipse插件集合。</p><p> 1.4.
33、3項(xiàng)目管理工具M(jìn)aven</p><p> Maven被定義為一個項(xiàng)目管理工具,它的組成比較復(fù)雜,包括一個項(xiàng)目對象模型(Project Object Model),一組標(biāo)準(zhǔn)集合,一個項(xiàng)目生命周期(Project Lifecycle),一個依賴管理系統(tǒng)(Dependency Management System),以及用來運(yùn)行定義在生命周期階段中插件目標(biāo)的邏輯。Maven在使用過程中,如果用一個明確定義的項(xiàng)目對象模
34、型來描述項(xiàng)目,有一組共享的插件,作為Maven應(yīng)用的橫切的邏輯。 </p><p> 如果運(yùn)行mvn install這條指令時,將會調(diào)用Maven的生命周期,Maven會有序的執(zhí)行下去直至指定的生命周期。在遍歷的過程中,Maven會運(yùn)行默認(rèn)的插件目標(biāo),這些目標(biāo)將會實(shí)現(xiàn)類似一個JAR文件的編譯和創(chuàng)建的工作。除此之外,項(xiàng)目報(bào)告不僅能通過maven進(jìn)行方便的管理,還可以生成站點(diǎn),管理JAR文件等。 </p>
35、;<p> 1.4.4版本控制工具Git</p><p> Git是由Linus Torvalds開發(fā)的一款供用戶無償使用的開源分布式版本控制系統(tǒng),它能夠高速有效地處理各種各樣,或大或小的項(xiàng)目版本管理。</p><p> 在項(xiàng)目中使用Git,不僅有助于項(xiàng)目的團(tuán)隊(duì)開發(fā)和提高開發(fā)效率,而且能夠精確地控制項(xiàng)目的版本,開發(fā)人員每次Git服務(wù)器獲取最新的項(xiàng)目代碼,完成相應(yīng)模塊地開
36、發(fā)后,再提交的Git服務(wù)器上,并附上本次提交內(nèi)容的相關(guān)信息,如果出問題,可以回滾之前的版本。當(dāng)然,如果當(dāng)前版本在使用,我們可以新建分支,繼續(xù)開發(fā),等開發(fā)完成之后,再合并到主分支,這樣既不影響當(dāng)前版本的使用,也可以繼續(xù)開發(fā)任務(wù)。</p><p> 1.4.5服務(wù)器Tomcat</p><p> 服務(wù)器Tomcat屬于輕量級應(yīng)用服務(wù)器,常使用于中小型系統(tǒng)與并發(fā)訪問用戶較少的場合中。它是一個
37、供用戶無償使用的開源web應(yīng)用服務(wù)器,也是人們開發(fā)、調(diào)試JSP程序時的第一選擇。對于初學(xué)者而言,我們不妨這么理解,如果將Apache服務(wù)器配備在一臺機(jī)器上,那么對于HTML頁面的訪問請求可通過它來進(jìn)行響應(yīng)。實(shí)際上,Tomcat部分是Apache服務(wù)器的擴(kuò)展,但由于它的獨(dú)立運(yùn)行,因此tomcat在運(yùn)行時是作為一個與Apache獨(dú)立的進(jìn)程單獨(dú)來運(yùn)行的。</p><p> 1.4.6前端調(diào)試工具FireBug<
38、/p><p> Firebug是基于firefox下的一個擴(kuò)展,可以調(diào)試如html,css等所有網(wǎng)站的語言。此外,F(xiàn)irebug還能夠進(jìn)行html,css,dom的查看和調(diào)試,網(wǎng)站的整體分析等等,功能非常強(qiáng)大。其中,最令人稱贊的當(dāng)屬它的javascript調(diào)試功能,它可以運(yùn)用于各種瀏覽器中(如IE,firefox,Safari等),并且使用十分簡便??偟膩碚f,F(xiàn)irebug就是一套完整、強(qiáng)大的開源web開發(fā)軟件。&
39、lt;/p><p> 1.4.7 數(shù)據(jù)庫Oracle 11g</p><p> Oracle 11g是一種功能比較全面并且穩(wěn)定的關(guān)系型數(shù)據(jù)庫,其大大小小的功能就多達(dá)四百余種。其性能較于舊版本更為優(yōu)越,不僅具有優(yōu)良的伸展性與可用性,且更為安全。即使在低成本的服務(wù)器與存儲設(shè)備構(gòu)成的網(wǎng)格上也能方便地運(yùn)行。而且還擁有自己一套sql標(biāo)準(zhǔn)。</p><p> 1.5 系統(tǒng)的開
40、發(fā)技術(shù)及主要架構(gòu)</p><p> 1.5.1開發(fā)技術(shù)的選擇</p><p><b> (1)JSP</b></p><p> 一個合理的開發(fā)技術(shù)是一個網(wǎng)站是否能夠開發(fā)完成的重要基礎(chǔ),選擇合理的開發(fā)技術(shù)能夠使網(wǎng)站的開發(fā)事半功倍。因此,我們首先需要一個合適的動態(tài)網(wǎng)頁開發(fā)技術(shù)來進(jìn)行網(wǎng)站的設(shè)計(jì)。當(dāng)前,ASP、PHP、JSP這三種動態(tài)網(wǎng)頁技術(shù)較為
41、流行。三者各自特性如表3.1所示。</p><p> 表3.1 asp/jsp/php比較表</p><p> 雖然這三者技術(shù)都是通過傳統(tǒng)的HTML代碼里的HTML標(biāo)簽來擴(kuò)展組成頁面的,但從表3.1而言,可以明顯得知,各方面表現(xiàn)最好的是JSP技術(shù)。特別是在跨平臺性與安全性上,JSP技術(shù)相對于另外兩種技術(shù)要好得多,所以,經(jīng)過比較,我們決定使用給予Java的JSP技術(shù)來進(jìn)行動態(tài)網(wǎng)頁的開發(fā)。
42、</p><p><b> struts2</b></p><p> struts2 是在以前的Webwork和XWork框架基礎(chǔ)上改進(jìn)而成的一個Java Web開源框架,同時也是一個以POJO的Action為基礎(chǔ)的MVC Web框架,它繼承了Webwork和XWork框架的優(yōu)良性能,功能十分強(qiáng)大。現(xiàn)在的struts2在Java Web開發(fā)界中具有不可撼動的地位,
43、之所以該框架如此深得人心,在開發(fā)人員看來,這與其優(yōu)良的設(shè)計(jì)是分不開的。</p><p> struts2的優(yōu)點(diǎn):</p><p> 基于MVC架構(gòu)的設(shè)計(jì),使得struts2具有清晰明了的框架結(jié)構(gòu)及開發(fā)流程,采用struts2進(jìn)行開發(fā),能夠很好地開發(fā)過程。</p><p> 利用OGNL傳遞參數(shù):OGNL提供了一個簡單的方法用于在struts2中進(jìn)行各類作用域里
44、的數(shù)據(jù)訪問,通過這種方法來獲取Request,Attribute,Application,Session,Parameters里的數(shù)據(jù)會十分方便。大大簡化了開發(fā)過程中取得這些數(shù)據(jù)時所需的代碼量。</p><p> struts2的攔截器:struts2具有的很多功能都是依靠攔截器來完成的,比如上傳文件、處理異常和驗(yàn)證等。它的攔截器是一個Action級別的AOP,能夠進(jìn)行配置與重復(fù)使用,如果把類似登錄驗(yàn)證,權(quán)限驗(yàn)
45、證這樣的一些通用功能加入到攔截起中,就可以實(shí)現(xiàn)一些Java Web項(xiàng)目里表位通用的功能。</p><p> 測試的方便:由于struts2的Action均為簡單的POJO,所以用它來進(jìn)行用例的編寫測試非常方便,極大地簡化了Java Web項(xiàng)目的測試。</p><p> 模塊化:模塊化是struts2體系架構(gòu)的基本思想。</p><p> 其它優(yōu)點(diǎn):在應(yīng)用程序中
46、添加全局結(jié)果,以及為配置文件的異常進(jìn)行處理,這樣一來,當(dāng)處理過程當(dāng)中,發(fā)生了指定異常時,即可跳至特定頁面。這一功能十分實(shí)用。</p><p><b> ibatis</b></p><p> ibatis相比Hibernate和Apache OJB之類的"一站式”O(jiān)RM解決方案來說,它是一種“半自動化”的ORM實(shí)現(xiàn)。何為“半自動”?也許在理解上會有些生澀
47、。其實(shí),我們這里所說的“半自動化”是相對于目前主流的“全自動化”O(jiān)RM而言的?!叭詣印監(jiān)RM不僅能夠提供POJO與數(shù)據(jù)庫表之間的映射,還可以自動生成和執(zhí)行SQL,例如Hibernate與Apache OJB,它們擁有POJO到數(shù)據(jù)庫表的全套映射機(jī)智,并且對數(shù)據(jù)庫結(jié)構(gòu)的封裝也比較完整。通常程序員只用對POJO到數(shù)據(jù)庫表的映射關(guān)系做好定義,就能夠利用OJB或Hibernate提供的方法實(shí)現(xiàn)對持久層的操作。甚至于都不要求程序員能熟練地掌握S
48、QL都可以完成這些操作,因?yàn)镺JB、Hibernate可以依據(jù)設(shè)定的存儲邏輯,自動生成并通過調(diào)用DBC接口執(zhí)行對應(yīng)的SQL。而對于ibatis來說,它比較注重于POJO與SOL間的映射關(guān)系,換而言之,就是說在運(yùn)行期間,Ibatis不會自動生成、執(zhí)行SQL。它需要程序員對具體的SQL進(jìn)行編程,接著將SQL所需的參數(shù)與返回的結(jié)果字段利用映射配置文件映射到制定的POJO。</p><p> “全自動”的ORM機(jī)制(如
49、Hibernate)與“半自動”的ORM機(jī)制(如ibatis)當(dāng)對象是純粹的Java時,于業(yè)務(wù)邏輯實(shí)現(xiàn)人員來說,它們二者是基本一致的。只有在進(jìn)行具體的數(shù)據(jù)操作時,“全自動”的ORM會自動生成、執(zhí)行SQL語句,而“半自動”的ORM則需要對具體的SQL語句進(jìn)行編寫。相對于“全自動”的ORM機(jī)制來說,ibatis這種“半自動”的ORM機(jī)制,是“全自動”O(jiān)RM機(jī)制的一種有利補(bǔ)充,它通過在開發(fā)SQL工作量與數(shù)據(jù)庫移植性上的讓步,擴(kuò)大了系統(tǒng)設(shè)計(jì)的自
50、由空間。它的出現(xiàn)具有非常重要的意義。</p><p><b> spring</b></p><p> spring是由我們平時常使用的JavaBean構(gòu)成的一個輕量級容器,它不同于EJB容器,其核心思想是IoC與AOP,所以spring不僅易于編寫,并且能夠不用依賴容器就進(jìn)行單元測試。</p><p> 此外,Spring支持所有的Ja
51、va Bean組件與聲明式事務(wù)的管理,因此,如果使用spring,它將負(fù)責(zé)對Java Bean組件進(jìn)行初始化及管理,那么我們只需將Java Bean組件進(jìn)行編寫、“裝配”即可。這個方式最大的優(yōu)勢在于松散的組件耦合,讓我們無需自己動手便可實(shí)現(xiàn)singleton模式。</p><p> 1.5.2系統(tǒng)的主要架構(gòu)及開發(fā)模式</p><p> 系統(tǒng)使用的架構(gòu)是系統(tǒng)建設(shè)的關(guān)鍵所在,傳統(tǒng)的c/s架
52、構(gòu)現(xiàn)已不能滿足類似網(wǎng)上購物這樣基于web并具有大量用戶訪問和操作系統(tǒng)的需要,因此以瀏覽器架構(gòu)為基礎(chǔ)的b/s架構(gòu)成為了當(dāng)前網(wǎng)絡(luò)系統(tǒng)應(yīng)用的主要架構(gòu),它利用服務(wù)器端對大批的數(shù)據(jù)工作進(jìn)行處理,客戶端只需使用普通的IE瀏覽器便能夠訪問系統(tǒng)。這樣一來,訪問系統(tǒng)不僅變得方便快捷,并且更有利于對系統(tǒng)進(jìn)行更新維護(hù)。除此之外,由于j2ee規(guī)范的誕生,采用java語言使得該系統(tǒng)的開發(fā)更具規(guī)范,層次更為明了,在對復(fù)雜事物的處理以及安全性方面也表現(xiàn)得更為出色。而
53、以mvc為基礎(chǔ)的開發(fā)流程不但使得開發(fā)過程更為清晰,同時在完成一些復(fù)雜的邏輯實(shí)現(xiàn)上也更為簡便,從而減少了開發(fā)的成本與周期。</p><p> 在B/S體系架構(gòu)系統(tǒng)中,我們只需配備少量的客戶端軟件在客戶機(jī)上即可。因?yàn)樵摷軜?gòu)減輕了客戶機(jī)的原有工作,利用服務(wù)器來擔(dān)負(fù)起客戶機(jī)所減輕部分的工作,如:訪問數(shù)據(jù)庫與執(zhí)行應(yīng)用程序等。至于剩下數(shù)據(jù)的請求與加工,結(jié)果的返回,動態(tài)網(wǎng)頁的生成等工作則是依靠webserver來完成的。換句
54、話來說,如果將二層的C/S架構(gòu)中的事務(wù)處理邏輯模塊從客戶機(jī)的任務(wù)里分離出來得到的就是B/S體系架構(gòu)。</p><p> 圖3.1 B/S三層架構(gòu)示意圖</p><p> B/S三層體系架構(gòu)如圖3.1所示。它通過web服務(wù)器建立起獨(dú)立的一層來負(fù)責(zé)其任務(wù),將負(fù)荷分配給了web服務(wù)器,以減輕客戶機(jī)的壓力。</p><p> B/S體系架構(gòu)不但能滿足不斷提高的性能要求
55、,并且還將客戶機(jī)從沉重的負(fù)擔(dān)中解脫了出來,也使技術(shù)維護(hù)人員在繁重的維護(hù)升級工作中得到了解放,技術(shù)維護(hù)人員不再需要為了維護(hù)程序而在在每個客戶機(jī)之間奔波忙碌,他們可以把主要精力用在功能服務(wù)器的程序更新工作上,因?yàn)楣δ芊?wù)器幫助客戶機(jī)分擔(dān)了事務(wù)處理邏輯部分的功能,使客戶機(jī)變得“苗條”起來。并且這種三層架構(gòu)層與層之間是互相獨(dú)立的,改變?nèi)魏我粚佣疾粫ζ渌鼘拥墓δ茉斐捎绊憽?lt;/p><p> ASP,CGI是傳統(tǒng)的基于w
56、eb的應(yīng)用系統(tǒng),像這類系統(tǒng),開發(fā)者通常會將數(shù)據(jù)邏輯、展示邏輯與業(yè)務(wù)邏輯等混雜起來,將后臺數(shù)據(jù)庫的訪問、操作,以及業(yè)務(wù)的流程與頁面的表示都放在同一個界面中表示。這樣一來編寫的程序,不僅不利于編輯人員設(shè)計(jì)交互頁面,當(dāng)程序員需要對業(yè)務(wù)代碼調(diào)試時也會十分麻煩。并且這樣的系統(tǒng)完全無擴(kuò)展性可言,一旦我們要擴(kuò)展現(xiàn)有的業(yè)務(wù),通常情況下只能重新進(jìn)行編寫,因?yàn)橄到y(tǒng)無法借助現(xiàn)有的資源與應(yīng)用,所以使用這樣的系統(tǒng)導(dǎo)致了投資的大量增加,系統(tǒng)上線時間的延長,在市場競
57、爭中失去了優(yōu)勢。</p><p> 而本文所設(shè)計(jì)的網(wǎng)上購物系統(tǒng),使用了通行的MVC模式來構(gòu)造應(yīng)用,有效地解決了上述的所有問題。在我們的應(yīng)用集成網(wǎng)絡(luò)中,MVC的開發(fā)模型將通過企業(yè)級高端J2EE應(yīng)用服務(wù)器實(shí)現(xiàn)。它的邏輯圖如圖3.2所示:</p><p> 圖3.2應(yīng)用服務(wù)器之上采用MVC開發(fā)的邏輯示意圖</p><p> 使用這個方案,我們能夠快速地完成整個業(yè)務(wù)。
58、其優(yōu)點(diǎn)與特性如下:</p><p> ?。?)模型(Model)層:采用javabean實(shí)現(xiàn),具體的業(yè)務(wù)封裝service層中,具有高性能、可重用、安全可靠等優(yōu)勢。</p><p> ?。?)視圖(View)層:該層由JSP構(gòu)成,它的特點(diǎn)在于可以真實(shí)地展現(xiàn)與客戶交互的界面,可以嵌套動態(tài)數(shù)據(jù)并展示動態(tài)頁面,同時還具有描繪功能,能夠依據(jù)不同客戶的要求來展示不同風(fēng)格的界面,方便地個性化定制客戶端
59、。</p><p> ?。?)控制器(Controller)層:用于最大限度地分離視圖層與模型層,同時也這兩層的連接紐帶,具有非常重要的地位。它一般是由是struts2實(shí)現(xiàn)的,它的優(yōu)點(diǎn)在于業(yè)務(wù)的調(diào)用和流程的處理。</p><p> 建立這種模型,可以使該應(yīng)用系統(tǒng)性能更為優(yōu)越,且可擴(kuò)展性更好。通過控制器來描述調(diào)用關(guān)系,同時分離業(yè)務(wù)組件與展示頁面,不但能夠提高工作效率,而且能夠增強(qiáng)系統(tǒng)的擴(kuò)充
60、能力,使系統(tǒng)能夠以最快的速度擴(kuò)展業(yè)務(wù),滿足各種用戶在不同階段各式各樣的業(yè)務(wù)需求。</p><p><b> 2 系統(tǒng)分析</b></p><p> 2.1 網(wǎng)上購物系統(tǒng)概述</p><p> 在平臺的開發(fā)設(shè)計(jì)中,系統(tǒng)分析是一個不可或缺的環(huán)節(jié)。為了使系統(tǒng)的設(shè)計(jì)能夠更好、更完善,我們首先要進(jìn)行研究和學(xué)習(xí),然后基于對系統(tǒng)的調(diào)查研究之上,再細(xì)致地
61、分析新系統(tǒng)的功能,從而開發(fā)設(shè)計(jì)出一個完整的新系統(tǒng)。</p><p> 本購物系統(tǒng)分為前臺管理系統(tǒng)與后臺管理系統(tǒng),前臺管理系統(tǒng)具有會員注冊及登錄、產(chǎn)品分類、產(chǎn)品展示、產(chǎn)品信息檢索、購物車、個人中心、新聞動態(tài)等功能,是一個友好的操作界面,提供給用戶進(jìn)行商品的查詢與瀏覽;后臺管理系統(tǒng)則是供管理員使用的,它具有用戶管理、商品信息、訂單管理、銷量信息、建議管理、新聞管理等功能,使管理員擺脫了傳統(tǒng)繁雜的手工操作,大大提升了
62、工作效率。</p><p> 2.2 網(wǎng)上購物系統(tǒng)的可行性分析</p><p> 豐富多彩的網(wǎng)絡(luò)世界,日益劇增的網(wǎng)絡(luò)人口,飛速發(fā)展的計(jì)算機(jī)技術(shù),這些都讓電子商務(wù)在網(wǎng)上掀起了一股熱潮。我們相信,在不久的將來,客戶將能夠在網(wǎng)絡(luò)世界中得到所有他們在現(xiàn)實(shí)世界中得到的全部商品與服務(wù)。</p><p> 為了確定該系統(tǒng)開發(fā)的項(xiàng)目是否值得研究且能夠?qū)崿F(xiàn),我們需要進(jìn)行可行性研
63、究,同時通過可行性研究還可以極大得簡化系統(tǒng)分析和系統(tǒng)設(shè)計(jì)的過程,所以這項(xiàng)研究是非常重要且必要的。由系統(tǒng)的設(shè)計(jì)目標(biāo)與對市場的調(diào)研可得到經(jīng)濟(jì)可行性、技術(shù)可行性、運(yùn)行可行性和法律可行性四項(xiàng)可行性分析:</p><p> (1)經(jīng)濟(jì)可行性:由于該系統(tǒng)設(shè)計(jì)只是作為本人的畢業(yè)設(shè)計(jì),在設(shè)計(jì)能力、設(shè)計(jì)資金及設(shè)計(jì)時間上有所局限,所以其功能并未完善,暫時無什么經(jīng)濟(jì)效益可言。</p><p> (2)技術(shù)可
64、行性:該系統(tǒng)設(shè)計(jì)采用的是spring+struts2+ibatis技術(shù),該技術(shù)現(xiàn)已較為成熟,而且本人對該技術(shù)有一定掌握,而且網(wǎng)上這塊技術(shù)的資料也是比較多。</p><p> (3)運(yùn)行可行性:該系統(tǒng)在JVM(即JAVA虛擬機(jī)和Tomcat環(huán)境)下,正確連接至數(shù)據(jù)庫后能夠正常運(yùn)行。</p><p> (4)法律可行性:該系統(tǒng)為自主開發(fā)的畢業(yè)設(shè)計(jì),與商業(yè)無關(guān),不具有侵權(quán)行為,所以具備法律可
65、行性。</p><p> 本文所開發(fā)設(shè)計(jì)的網(wǎng)上購物平臺系統(tǒng)應(yīng)用了Web技術(shù)與互聯(lián)網(wǎng)廣泛應(yīng)用技術(shù),實(shí)現(xiàn)了資源共享,達(dá)到了過去只有在現(xiàn)實(shí)商場中購物才能達(dá)到的效果,交互性較好,克服了購物的局限性,減短了購物的時間,提高了人們購物的效率。該系統(tǒng)成為了一個網(wǎng)絡(luò)化、規(guī)范化、信息化、系統(tǒng)化的交易平臺,將繁瑣的購物活動變得簡單易行。</p><p> 經(jīng)過以上可行性分析,綜合考慮,確定了開發(fā)該平臺的可
66、行性。為了讓該平臺更具實(shí)用性與適應(yīng)性,在對現(xiàn)有的平臺內(nèi)容進(jìn)行充分了解與幾個月的調(diào)查研究后,經(jīng)過指導(dǎo)老師的耐心教導(dǎo),決定開發(fā)本系統(tǒng)平臺。</p><p> 2.3 網(wǎng)上購物系統(tǒng)需求分析</p><p><b> 2.3.1 目標(biāo)</b></p><p> 每個網(wǎng)站都具有它自己的設(shè)計(jì)規(guī)則,該平臺也不例外。它的主要設(shè)計(jì)規(guī)則是簡單性、針對性與實(shí)用
67、性。簡單性對于一個網(wǎng)站而言,是十分重要的。何謂簡單性?就是在能夠?qū)崿F(xiàn)該平臺設(shè)計(jì)功能的基礎(chǔ)上,盡可能使平臺的操作簡單明了。針對性則是由于該平臺屬于網(wǎng)上購物系統(tǒng)與后臺管理的定向開發(fā)設(shè)計(jì),因此要求該平臺具有突出專業(yè)性及很強(qiáng)的針對性。而實(shí)用性說的是該平臺可以實(shí)現(xiàn)電子商品的展示及管理員對基本信息的管理,所以具有良好的實(shí)用性。因此,我們針對不同用戶有不同的功能:</p><p> (1)普通用戶:可以通過前臺進(jìn)行頁面的瀏覽
68、,產(chǎn)品的搜索以及產(chǎn)品信息的查看。</p><p> ?。?)注冊用戶:除了擁有普通用戶所具備的權(quán)利外,還擁有登陸注冊、購買商品、使用購物車和提交訂單的權(quán)利。同時,注冊用戶還可以向商家提出意見或建議。 (3)管理員:通過后臺管理系統(tǒng)可以對用戶信息、商品信息、訂單信息、銷量信息、建議信息及新聞信息等進(jìn)行管理。 該網(wǎng)上購物系統(tǒng)除了需要實(shí)現(xiàn)上述目標(biāo)功能外,還需要重點(diǎn)實(shí)現(xiàn)的功能有:分頁、易淘、購物車、批量刪除
69、、圖片上傳、過濾處理及最近瀏覽等。</p><p> 2.3.2 具體需求</p><p> ?。?)前臺主要有: </p><p> 用戶注冊登錄:用于實(shí)現(xiàn)用戶的注冊及登錄。</p><p> 產(chǎn)品展示:用于展示產(chǎn)品的詳細(xì)信息,使用戶能夠更加全面具體地了解產(chǎn)品。 </p><p> 產(chǎn)品檢索:用戶可以根據(jù)自身
70、需要,輸入關(guān)鍵詞對所需產(chǎn)品進(jìn)行查詢,節(jié)省用戶時間,提高購買效率。 </p><p> 最近瀏覽:顯示當(dāng)前用戶最近的瀏覽記錄,方便用戶對之前瀏覽過的產(chǎn)品再次進(jìn)行查看。 </p><p> 新聞動態(tài):用于展示最新的動態(tài)信息,比如新品首發(fā)、優(yōu)惠活動等信息,吸引用戶查看購買。 </p><p> 留言板:用戶可在此進(jìn)行留言。</p><p>
71、 購物車:與商場的購物車類似,用于實(shí)現(xiàn)用戶對商品的暫時存放,方便用戶進(jìn)行選購結(jié)算。 </p><p><b> (2)后臺主要有:</b></p><p> 用戶管理:通過該模塊可以對用戶信息進(jìn)行增刪改查操作。 </p><p> 商品管理:通過該模塊可以對產(chǎn)品進(jìn)行增刪改查操作。</p><p> 訂單管理:通過
72、該模塊可以對訂單進(jìn)行增刪改查操作。 </p><p> 留言板:通過該模塊可以對留言板進(jìn)行增刪改查操作。 </p><p> 新聞管理:通過該模塊可以對新聞進(jìn)行增刪改查操作。</p><p><b> 3 系統(tǒng)概要設(shè)計(jì)</b></p><p><b> 3.1 項(xiàng)目規(guī)劃</b></p&
73、gt;<p> 根據(jù)我們的調(diào)查研究可知,該平臺設(shè)計(jì)需要完成下列幾項(xiàng)功能,具體如下所示:</p><p> ?。?)普通用戶:搜索、瀏覽產(chǎn)品。</p><p> ?。?)注冊用戶:搜索、購買、瀏覽產(chǎn)品,此外還可以給商家聊天、留言、提出意見或建議。</p><p> ?。?)管理員:管理用戶和商品信息,具有增刪改查等權(quán)限,同時還可以上傳和下載商品圖片。&
74、lt;/p><p> 需要重點(diǎn)實(shí)現(xiàn)的功能有批量刪除產(chǎn)品或用戶信息,圖片的上傳和下載,過濾處理,購物車,分頁,易淘等。 </p><p><b> 3.2 系統(tǒng)結(jié)構(gòu)圖</b></p><p> 網(wǎng)上購物系統(tǒng)是一個典型web系統(tǒng),主要分為前臺和后臺兩個部分,它們相應(yīng)的子模塊如下:</p><p><b> 圖3
75、.1 前臺模塊</b></p><p> 前臺模塊主要具有:登陸注冊、產(chǎn)品展示、查詢、購物車、新聞等子模塊。</p><p><b> 圖3.2 前臺模塊</b></p><p> 后天模塊主要具有:用戶管理、商品信息、訂單管理、新聞管理等子模塊。</p><p> 3.3 系統(tǒng)流程分析</p&
76、gt;<p> 3.3.1前臺購物流程</p><p><b> 具體流程圖如下圖:</b></p><p> 圖3.3 前臺購物流程圖</p><p> 用戶首先對商品進(jìn)行瀏覽,選擇自己所心儀的商品,然后訂購商品。需要訂購商品的用戶會出現(xiàn)三種情況,一是未注冊用戶,二是已登錄注冊用戶,三是未登錄注冊用戶,這時系統(tǒng)就會對此做
77、出判斷,對于未注冊用戶,那么系統(tǒng)會先要求用戶進(jìn)行注冊,對于為登錄注冊用戶,那么系統(tǒng)會先要求用戶進(jìn)行登錄,最后才會像已登錄注冊用戶那樣去到購物車,再到收銀臺,最后提交訂單結(jié)賬。</p><p> 3.3.1 后臺購物流程</p><p><b> 具體流程圖如下圖:</b></p><p> 圖3.4 前臺購物流程圖</p>
78、<p> 管理員通過管理員站好在前臺登陸,系統(tǒng)根據(jù)賬號的權(quán)限級別,自動跳轉(zhuǎn)到后臺管理系統(tǒng),然后管理員可以根據(jù)自己需要進(jìn)行用戶管理、產(chǎn)品信息、訂單管理、銷量信息、新聞管理和建議管理等操作。</p><p><b> 4 系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)</b></p><p> 4.1 數(shù)據(jù)庫設(shè)計(jì)的重要性</p><p> 數(shù)據(jù)庫是數(shù)據(jù)庫應(yīng)用程序
79、的重要組成部分。一個設(shè)計(jì)結(jié)構(gòu)合理的數(shù)據(jù)庫對于應(yīng)用程序的開發(fā)效率和程序的性能都是非常重要的。</p><p> 良好的數(shù)據(jù)庫設(shè)計(jì)對于一個高性能的應(yīng)用程序非常重要,就像一個空氣動力裝置對于一輛賽車的重要性一樣。如果一輛汽車沒有平滑的曲線,將會產(chǎn)生阻力從而變慢。關(guān)系沒有經(jīng)過優(yōu)化,數(shù)據(jù)庫無法盡可能高效地運(yùn)行。應(yīng)該把數(shù)據(jù)庫的關(guān)系和性能看作是規(guī)范化的一部分。 </p><p> 除了性能
80、以外的問題,就是維護(hù)的問題了,數(shù)據(jù)庫應(yīng)該易于維護(hù)。這包括只存儲數(shù)量有限的(如果有的話)重復(fù)性數(shù)據(jù)。如果有很多的重復(fù)性數(shù)據(jù),并且這些數(shù)據(jù)的一個實(shí)例發(fā)生一次改變(例如,一個名字的改變),這個改變必須對所有的其他的數(shù)據(jù)都進(jìn)行。為了避免重復(fù),并且增強(qiáng)維護(hù)數(shù)據(jù)的能力,我們可以創(chuàng)建可能的值的一個表并使用一個鍵來引用該值。在這種方式中,如果值改變了名字,這個改變只在主表中發(fā)生一次,所有的其他表的引用都保持不變。</p><p>
81、; 4.2 數(shù)據(jù)庫設(shè)計(jì)規(guī)范</p><p> 4.2.1 數(shù)據(jù)庫設(shè)計(jì)三大范式</p><p> 數(shù)據(jù)庫的設(shè)計(jì)范式是數(shù)據(jù)庫設(shè)計(jì)所需要滿足的規(guī)范,數(shù)據(jù)庫的規(guī)范化是優(yōu)化表的結(jié)構(gòu)和優(yōu)化把數(shù)據(jù)組織到表中的方式,這樣使數(shù)據(jù)更明確,更簡潔。實(shí)踐中,通常把一個數(shù)據(jù)庫分成兩個或多個表并定義表之間的關(guān)系以做到數(shù)據(jù)隔離,添加、刪除和修改某個字段只需要在一個表中進(jìn)行,接著可以通過定義的關(guān)系傳遞到數(shù)據(jù)庫中剩余
82、的表中(和分層思想的意義所在很相似)。這樣我們可以消除很多錯誤或垃圾數(shù)據(jù)出現(xiàn)的機(jī)會并減輕更新信息所必要的工作量。</p><p> 目前,主要有六種范式:第一范式、第二范式、第三范式、BC范式、第四范式和第五范式。滿足最低要求的叫第一范式,簡稱1NF。在第一范式基礎(chǔ)上進(jìn)一步滿足一些要求的為第二范式,簡稱2NF。其余依此類推。</p><p> 事物往往具有多面性,設(shè)計(jì)范式也會帶來一定的
83、麻煩:操作困難,因?yàn)樾枰?lián)系多個表才能得到所需要數(shù)據(jù),而且范式越高性能就會越差。所以使用多高的范式需要權(quán)衡利弊,一般在項(xiàng)目中,使用到第三范式也就足夠了,性能好而且方便管理數(shù)據(jù)。</p><p> 第一范式1NF,定義:數(shù)據(jù)庫表中的字段都是單一屬性的,不可再分。簡單的說,每一個屬性都是原子項(xiàng),不可分割。1NF是關(guān)系模式應(yīng)具備的最起碼的條件,如果數(shù)據(jù)庫設(shè)計(jì)不能滿足第一范式,就不稱為關(guān)系型數(shù)據(jù)庫。也就是說,只要是關(guān)系
84、型數(shù)據(jù)庫,就一定滿足第一范式。</p><p> 第二范式2NF,定義:數(shù)據(jù)庫表中不存在非關(guān)鍵字段對任一候選關(guān)鍵字段的部分函數(shù)依賴,即符合第二范式。2NF可以減少插入異常,刪除異常和修改異常。簡單的說,一方面,第二范式肯定要滿足第一范式,否則就沒有必要談第二范式。另一方面,當(dāng)某張表中的非主鍵信息不是由整個主鍵函數(shù)來決定時,即存在依賴于該表中不是主鍵的部分或者依賴于主鍵一部分的部分時,通常會違反2NF。</
85、p><p> (3)第三范式3NF,定義:在第二范式的基礎(chǔ)上,數(shù)據(jù)表中如果不存在非關(guān)鍵字段對任一候選關(guān)鍵字段的傳遞函數(shù)依賴則符合3NF。</p><p> 4.2.2 數(shù)據(jù)庫命名規(guī)則</p><p> 表4.1 數(shù)據(jù)庫命名規(guī)則</p><p><b> 4.3 數(shù)據(jù)庫字典</b></p><p&g
86、t; 建設(shè)這個系統(tǒng)之前,我們必須大致將系統(tǒng)中使用的數(shù)據(jù)分類,并且對這些數(shù)據(jù)進(jìn)行具體的結(jié)構(gòu)設(shè)計(jì),這是數(shù)據(jù)庫系統(tǒng)中的重中之重,它的好壞是保證關(guān)鍵數(shù)據(jù)在意外情況下是否能抵御破壞的重要因素,所以對此,我們要求做到清晰明了,不會使其產(chǎn)生結(jié)構(gòu)上的邏輯混亂,能夠適應(yīng)系統(tǒng)各項(xiàng)功能的調(diào)用。</p><p> 數(shù)據(jù)庫的設(shè)計(jì)必須遵循一定的規(guī)則,一個好滴數(shù)據(jù)庫能夠滿足一些嚴(yán)格的閑置和要求。盡可能得將各實(shí)體對應(yīng)的表進(jìn)行分離,一個表對應(yīng)
87、一個實(shí)體,明確什么屬性是哪些實(shí)體該具有的,什么字段是與其相對應(yīng)的,以及各個實(shí)體間的聯(lián)系是什么。實(shí)體、屬性和聯(lián)系是在概念設(shè)計(jì)時所需考慮的三要素,只有這三個要素設(shè)計(jì)好了,才能擁有一個好的數(shù)據(jù)庫。數(shù)據(jù)庫中一共建立了8個表,表名如下:</p><p> 表4.2 產(chǎn)品類型信息表 ( tbl_producttype)</p><p> 表4.3 產(chǎn)品信息表 ( tbl_product)</
88、p><p> 表4.4 用戶信息表 ( tbl_users)</p><p> 表4.5 訂單明細(xì)信息表 ( tbl_orders_detail)</p><p> 表4.6 訂單信息表 ( tbl_orders)</p><p> 表4.7 新聞信息表 ( tbl_news)</p><p> 表4.8 建議板
89、信息表 ( tbl_advice )</p><p> 表4.9 公告信息表 ( tbl_announce)</p><p><b> 5 系統(tǒng)詳細(xì)設(shè)計(jì)</b></p><p><b> 5.1 開發(fā)規(guī)范</b></p><p> (1)所有頁面均采用UTF-8編碼,工程也采用UTF-8編碼
90、。</p><p> ?。?)在類或者方法上寫上作者名</p><p> ?。?)Java中類的命名:</p><p> 類名:如果該類與某張表對應(yīng),則把表名的前綴去掉即該類名,并采用駝峰命名法則。例如:存在表tbl_type,則與之對應(yīng)的類名為Type。</p><p> 類屬性:如果該類與某張表對應(yīng),則該類的屬性名與表格中的字段名一樣
91、,而且順序也要一致,但一定要注意類型的,如date,類屬性選擇是utils包中的。</p><p> ?。?)每個類和方法最后分別添加一個標(biāo)記,格式://end類名或//end方法名</p><p> ?。?)如果一個控制語句無法在一個窗口同時出現(xiàn),則采用以下方法注釋:</p><p> 例如:if(條件){ //beignOutIf</p><
92、;p> if(條件){ //beignInnerIf</p><p><b> 處理語句</b></p><p> } //endInnerIf</p><p> } //endOutIf</p><p> 再如:if(條件){ //beignIf</p><p> while(
93、條件){ //beginWhile</p><p><b> 處理語句</b></p><p> } //endWhile</p><p><b> } //endIf</b></p><p> ?。?)類中的每個屬性,采用當(dāng)行注釋,說明該屬性的含義,必須在同一行</p><
94、;p> 例如:pricvate String pname;//姓名</p><p> ?。?)類與類之間,方法與方法之間,必須空一行</p><p> ?。?)類中的書寫順序:</p><p><b> 屬性</b></p><p> 構(gòu)造方法(注意:參數(shù)從上到下,一次遞增,而且必須有無參構(gòu)造方法)</
95、p><p><b> 其他方法</b></p><p><b> get/set方法</b></p><p> (9)每個類和方法前必須有文檔注釋,用于說明該類或方法的作用</p><p> ?。?0)調(diào)試代碼后面加上////////////////////////////////////////
96、// ,方便查找和刪除調(diào)試代碼。</p><p> ?。?1)異常處理的輸出代碼,先用注釋寫明該處出現(xiàn)的異常,項(xiàng)目完成后再處理這些代碼。</p><p> 5.2 系統(tǒng)框架說明</p><p> 5.2.1 工程目錄結(jié)構(gòu)說明</p><p> 目錄結(jié)構(gòu)說明具體見表:</p><p> 表5.8 工程目錄結(jié)構(gòu)表
97、</p><p> 5.2.2 功能頁面結(jié)構(gòu)</p><p> (1)前臺功能頁面,存放在src/main/webapp/jsp/client目錄下,具體如下表:</p><p> 表5.9 前臺頁面表</p><p> (2)后臺管理頁面,存放在src/main/webapp/jsp/manage目錄下,具體如下表:</p&g
98、t;<p> 表5.10 后臺頁面表</p><p> 5.3 系統(tǒng)功能模塊的具體實(shí)現(xiàn)</p><p> 5.3.1主要功能流程:</p><p> 圖5.1 主要功能模塊流程圖</p><p> 5.3.2 前臺模塊</p><p><b> ?。?)注冊模塊</b>&l
99、t;/p><p> 用戶首先進(jìn)入注冊入口,然后到達(dá)注冊信息的頁面,該頁面中存在用戶名、密碼、身份證、聯(lián)系方式和E-mail等選項(xiàng),此時系統(tǒng)就要對用戶填寫的各項(xiàng)信息判斷,當(dāng)所有必選項(xiàng)不為空時進(jìn)入對用戶名是否有效的判斷,如果無效則提示相應(yīng)錯誤信息,并無法提交表單,如果所有信息均合法有效,系統(tǒng)會提示用戶注冊成功,并將用戶所注冊填寫的信息加入會員表內(nèi),并自動登錄跳轉(zhuǎn)到主頁面。</p><p> 圖
100、5.2 注冊模塊流程圖</p><p><b> 登錄模塊</b></p><p> 用戶注冊成功之后,即可通過登錄入口進(jìn)入登錄頁面,先輸入賬號和密碼,系統(tǒng)將匹配數(shù)據(jù)中用戶表的信息,如果匹配不上,則回到登錄頁面,提示相關(guān)錯誤,否則,系統(tǒng)將會根據(jù)該賬號的權(quán)限跳轉(zhuǎn)到前臺或者后臺。</p><p> 圖5.2 登錄模塊流程圖</p>
101、<p><b> 產(chǎn)品分類模塊</b></p><p> 產(chǎn)品分類主要顯示在前臺頁面的左邊,作為網(wǎng)上購物系統(tǒng)的導(dǎo)航。它主要大分類與子分類構(gòu)成,首先通過產(chǎn)品的基本屬性或用途將產(chǎn)品進(jìn)行大類的劃分,然后在產(chǎn)品的大分類下,根據(jù)產(chǎn)品的不同特征再劃分子分類。用戶可根據(jù)自己所需找到產(chǎn)品的所屬分類,當(dāng)點(diǎn)擊相應(yīng)的產(chǎn)品分類時,便可查詢到相應(yīng)的產(chǎn)品信息,方便客戶找到自己心儀的產(chǎn)品。 </p
102、><p><b> 產(chǎn)品展示模塊</b></p><p> 主要以列表的方式展示產(chǎn)品的圖片,名稱和價(jià)格等基本信息,通過這種方式,不僅使展示的內(nèi)容更為豐富,也讓用戶對展示產(chǎn)品有了一個形象生動的初步認(rèn)知,方便用戶對產(chǎn)品的選購。同時,當(dāng)用戶具體點(diǎn)擊某個產(chǎn)品時,便會顯示該產(chǎn)品的詳細(xì)信息,以供用戶作進(jìn)一步查看、比較、選購。</p><p><b&g
103、t; (5)搜索模塊</b></p><p> 商品的搜索功能有助于用戶快速方便地查詢自己所需的商品,節(jié)約用戶的選購時間,提高了選購效率。用戶開始搜索時,只需要在搜索框輸入相關(guān)條件就可以得到相應(yīng)的搜索結(jié)果,系統(tǒng)采取模糊查詢,因此會查詢出包含該查詢條件其他相關(guān)產(chǎn)品。根據(jù)搜索的結(jié)果,用戶可以選擇查看商品,繼續(xù)搜索,或者將商品加入購物車,提交訂單支付。</p><p> 圖5.
104、3 搜索模塊流程圖</p><p><b> ?。?)購物車模塊</b></p><p> 用戶在選中合適的產(chǎn)品之后,點(diǎn)擊產(chǎn)品下方的“加入購物車”,系統(tǒng)會先判斷當(dāng)前用戶是否已經(jīng)擁有購物車,否則就會為當(dāng)前用戶創(chuàng)建一個購物車,并保存在當(dāng)前用戶的session中,而不是保存到數(shù)據(jù)庫中,之后用戶可以繼續(xù)購物,如果產(chǎn)品相同,則購物車中相應(yīng)的產(chǎn)品的數(shù)量則增加相應(yīng)購物的數(shù)量。在購
105、物車中,用戶還可以刪除不需要的產(chǎn)品,或者調(diào)整購物產(chǎn)品的數(shù)量當(dāng)用戶下訂單之后,則會生成訂單,并保存到數(shù)據(jù)庫中。</p><p> 圖5.4 購物車模塊流程圖</p><p><b> ?。?)最近瀏覽模塊</b></p><p> 該功能主要是保存用戶最近的瀏覽記錄,方便更好了解上次或最近的瀏覽的產(chǎn)品,主要使用cookies保存在客戶端,用戶
106、用再次登錄本網(wǎng)站時,就去讀取該cookies</p><p> 的內(nèi)容以獲取最近的瀏覽記錄。</p><p><b> (8)新聞模塊</b></p><p> 用于展示最新的網(wǎng)站動態(tài)信息,比如新品首發(fā)、優(yōu)惠活動等信息,吸引用戶查看購買。管理員可以通過后臺創(chuàng)建新聞,創(chuàng)建完成以后,該新聞就會在前臺頁面的右上角以向上循環(huán)滾動的方式顯示,用戶在
107、點(diǎn)擊自己感興趣的新聞標(biāo)題之后,就可以查看該新聞的詳細(xì)內(nèi)容。</p><p><b> ?。?)留言模塊</b></p><p> 用戶可以商家留言,以供商家不斷改進(jìn)服務(wù)或者不足。</p><p> 5.3.3 后臺模塊</p><p><b> 用戶管理模塊</b></p>&l
108、t;p> 管理員通過該模塊查詢用戶,創(chuàng)建用戶(普通用戶、客服、管理員),修改和刪除用戶,因此該模塊具有新增、查詢、修改和刪除功能。</p><p> 圖5.5 用戶管理模塊流程圖</p><p><b> ?。?)商品信息模塊</b></p><p> 管理員可以在商品管理模塊中進(jìn)行商品信息的查詢、修改、添加以及刪除,在這個模塊中
109、,管理員不僅能夠看到商品的詳細(xì)信息,相對于普通用戶而言,還能夠看到關(guān)于產(chǎn)品一些其他信息。</p><p> 圖5.6 商品信息模塊流程圖</p><p><b> ?。?)訂單管理模塊</b></p><p> 管理員可以通過該模塊,了解訂單的詳情,或者修改、刪除訂單,因此該模塊具有查詢、修改和刪除功能。同時該模塊下細(xì)分了全部訂單、付款訂單
110、、發(fā)貨訂單和收貨訂單。</p><p> 圖5.7 訂單管理流程圖</p><p><b> ?。?)銷量信息模塊</b></p><p> 管理員可以通過該模塊,了解各種產(chǎn)品的銷量詳情,因此該模塊只有查詢功能。</p><p><b> 留言管理模塊</b></p><p
111、> 管理員可以通過該模塊,查看所有用戶的在任何時候的留言,或者刪除一些不和諧的留言,因此該模塊具有查詢和刪除功能。</p><p><b> 新聞管理模塊</b></p><p> 管理員可以通過該模塊,新增新聞,或者查看以及刪除新聞,一次該模塊具有新增、修改、查詢和刪除功能。</p><p> 圖5.8 新聞管理模塊流程圖<
112、;/p><p> 6 系統(tǒng)測試及難點(diǎn)分析</p><p><b> 6.1系統(tǒng)測試</b></p><p> 6.1.1 系統(tǒng)關(guān)鍵部分測試分析</p><p> 系統(tǒng)開發(fā)完成以后,對已完成的模塊功能進(jìn)行了單元測試,是非常必要的,因?yàn)檫@樣可以保證系統(tǒng)可用性和強(qiáng)大性。</p><p> 而Dao
113、層是一個項(xiàng)目中最底層也是最關(guān)鍵和重要的一層,它的不穩(wěn)定將會導(dǎo)致整個程序不穩(wěn)定或者崩潰,所以我們通過單元測試來檢測各個Dao層的方法的穩(wěn)定性和強(qiáng)大性。</p><p> 除了Dao,我們還應(yīng)該關(guān)注頁面對各種數(shù)據(jù)驗(yàn)證完整性和強(qiáng)大性,這樣才可以確保正確的數(shù)據(jù)被程序所接受,并保存到數(shù)據(jù)庫中,以確保數(shù)據(jù)的完整性。</p><p> 最重要的是,我們一定要對各個業(yè)務(wù)邏輯進(jìn)行全方位測試,以確保業(yè)務(wù)正
114、確性和完整性。只有這樣一個程序才是正確的程序,因?yàn)闃I(yè)務(wù)中某一個環(huán)節(jié)出錯了,都會導(dǎo)致整個業(yè)務(wù)出問題,帶來不必要的問題。</p><p><b> 6.1.2測試計(jì)劃</b></p><p> (1)通過瀏覽器測試。</p><p> (2)在設(shè)計(jì)一個測試方案時,不僅要確定的輸入正確數(shù)據(jù),而且還要從系統(tǒng)功能的角度出發(fā)預(yù)期的測試結(jié)果。只有將運(yùn)行
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)上購物系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)
- 網(wǎng)上購物系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---網(wǎng)上購物系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 軟件畢業(yè)設(shè)計(jì)--網(wǎng)上購物系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 畢業(yè)設(shè)計(jì)--網(wǎng)上購物系統(tǒng)的研究與實(shí)現(xiàn)
- 畢業(yè)設(shè)計(jì)--基于jsp的網(wǎng)上購物系統(tǒng)
- 基于jsp的網(wǎng)上購物系統(tǒng)畢業(yè)設(shè)計(jì)
- 基于jsp的網(wǎng)上購物系統(tǒng)-畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)(論文)基于web的網(wǎng)上購物商城的設(shè)計(jì)與實(shí)現(xiàn)
- 畢業(yè)設(shè)計(jì)---網(wǎng)上購物系統(tǒng)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---網(wǎng)上購物系統(tǒng)設(shè)計(jì)
- 網(wǎng)上購物系統(tǒng)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)----網(wǎng)上購物系統(tǒng)
- 網(wǎng)上購物系統(tǒng)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)(論文)基于web的網(wǎng)上購物商城的設(shè)計(jì)與實(shí)現(xiàn)
- 網(wǎng)上購物系統(tǒng)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)----基于bs結(jié)構(gòu)的網(wǎng)上購物系統(tǒng)
- 畢業(yè)設(shè)計(jì)----jsp網(wǎng)上購物系統(tǒng)后臺分析與實(shí)現(xiàn)
- 網(wǎng)上購物系統(tǒng)畢業(yè)設(shè)計(jì)
- 網(wǎng)上購物系統(tǒng)-畢業(yè)設(shè)計(jì)
評論
0/150
提交評論