網(wǎng)上書店系統(tǒng)畢業(yè)設(shè)計(jì)_第1頁
已閱讀1頁,還剩36頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  1 引言</b></p><p>  傳統(tǒng)書店往往要占用大量的空間,雇傭數(shù)量較多的工作人員同時(shí)也難以避免讀者在購買圖書時(shí)造成圖書翻閱損耗等一系列費(fèi)用,而與此同時(shí)隨著互聯(lián)網(wǎng)在中國的發(fā)展,我國網(wǎng)民已經(jīng)超過了2億,而其中絕大部分有是屬于知識(shí)分子的青年人,無疑他們正是廣大圖書出版物的潛在消費(fèi)者。當(dāng)今網(wǎng)絡(luò)所顯現(xiàn)的超常信息量、無時(shí)空局限、傳遞快捷、操作靈活等優(yōu)點(diǎn)吸引著越來

2、越多的圖書銷售商把傳統(tǒng)的書店移植到互聯(lián)網(wǎng)上,從而形成了當(dāng)今網(wǎng)上書店蓬勃發(fā)展的趨勢。利云網(wǎng)上書店正是為了滿足這種需求而研發(fā)的中小型電子商務(wù)系統(tǒng)</p><p>  利云網(wǎng)上書店系統(tǒng)是基于B/S模式的小型電子商務(wù)系統(tǒng),能夠滿足中小型書店的網(wǎng)上售書需要。搭建利云網(wǎng)上書店極為簡單只需要一臺(tái)PC機(jī),一根網(wǎng)線,即可進(jìn)行網(wǎng)上交易。利云網(wǎng)上書店基本上滿足了中小型書店的網(wǎng)上銷售需求,其主要功能包括圖書展示、網(wǎng)上調(diào)查、購物車、收銀臺(tái)

3、、會(huì)員管理、訂單查詢、圖書管理、用戶管理、訂單管理、公告管理、投票管理、退出功能。圖書展示主要實(shí)現(xiàn)圖書的重點(diǎn)推薦、新書上架圖書分類查詢、銷售排行榜等功能;網(wǎng)上調(diào)查功能則提供了書店經(jīng)理了解讀者書籍的需求情況,進(jìn)而引導(dǎo)訂書的種類;購物車功能給每個(gè)用戶建立了一個(gè)相對(duì)應(yīng)的唯一存放選中書籍存放的空間;收銀臺(tái)提供了客戶付賬的功能,當(dāng)顧客決定購買購物車?yán)锏臅畷r(shí),向收銀臺(tái)提交訂單;會(huì)員管理為每一位注冊(cè)用戶提供了注冊(cè)、登陸、修改自己注冊(cè)信息的權(quán)利,例如

4、當(dāng)注冊(cè)用戶的聯(lián)系方式和地址變動(dòng)時(shí)用戶可以通過此功能方便的修改自己的資料;訂單查詢功能為用戶提供了查詢自己訂單的功能;后臺(tái)的圖書管理是為管理員提供修改、添加刪除圖書信息的功能;用戶管理實(shí)現(xiàn)的功能有查看用戶信息、消費(fèi)總額、用戶的解凍;訂單管理主要負(fù)責(zé)查看用戶的匯款執(zhí)行情況;公告管理方便管理員向首頁公告欄里添加</p><p>  后臺(tái)開發(fā)充分考慮了使用軟件的用戶可能對(duì)計(jì)算機(jī)軟件并不是很了解,所以在設(shè)計(jì)的過程中添加了許

5、多必要的提示和說明??傊凭W(wǎng)上書店將以Java技術(shù)為基礎(chǔ),實(shí)現(xiàn)圖書信息的發(fā)布、購物、用戶管理、圖書后臺(tái)管理等一系列的功能,力爭成為中小型書店網(wǎng)絡(luò)銷售的理想軟件。</p><p><b>  2 技術(shù)簡介</b></p><p>  利云網(wǎng)上書店所涉及的技術(shù)主要有以Java語言為核心的JSP(Java Server Pages)技術(shù)進(jìn)行實(shí)現(xiàn)業(yè)務(wù)實(shí)現(xiàn),后臺(tái)的服務(wù)支撐部

6、分為應(yīng)用服務(wù)器Tomca5.0.28以及數(shù)據(jù)庫服務(wù)器SQL Server 2000。以下將對(duì)主要技術(shù)作簡明的介紹。 </p><p>  2.1 JAVA語言簡介</p><p>  Java是一種簡單易用、完全面向?qū)ο?、具有平臺(tái)無關(guān)性且安全可靠的主要面向Internet的開發(fā)工具。自從1995年正式問世以來,Java的快速發(fā)展已經(jīng)讓整個(gè)Web世界發(fā)生了翻天覆地的變化。在早期,Java比

7、較多的用在瀏覽器上,插入到網(wǎng)頁中(即是Java Applet程序),成為最靈活、最強(qiáng)大的網(wǎng)頁多媒體的載體,但由于Java虛擬機(jī)相對(duì)于個(gè)人電腦而言,有占用資源大,安全性相對(duì)較差等缺點(diǎn),Applet逐漸的被后起之秀Flash所替代,但隨著Java Servlet的推出,Java在電子商務(wù)方面開始嶄露頭角,最新的JSP(Java Server Page)技術(shù)的推出,更是讓Java成為基于Web的應(yīng)用程序的首選開發(fā)工具,目前的Java技術(shù)已成為

8、所有大型電子商務(wù)項(xiàng)目的必然選擇[1]。</p><p>  2.2 JSP技術(shù)</p><p>  JSP是“Java Server Pages”的縮寫,可以解釋為“基于Java的服務(wù)端動(dòng)態(tài)頁面技術(shù)” [4]基于Java是JSP一切優(yōu)秀品質(zhì)的根本物質(zhì)基礎(chǔ)。因?yàn)镴ava是編譯解釋執(zhí)行的,所以JSP也就擺脫了VBScript、Perl等腳本語言純粹的解釋執(zhí)行帶來的低效率問題。盡管在JSP中J

9、ava仍被稱為腳本語言。因?yàn)镴ava是平臺(tái)無關(guān)的,所以JSP是跨平臺(tái)的?;贘ava是JSP區(qū)別包含ASP(Active Server Pages)在內(nèi)的其它服務(wù)端動(dòng)態(tài)頁面技術(shù)的重要特征。JSP是服務(wù)端技術(shù),所以JSP文檔要先經(jīng)服務(wù)端翻譯、解釋、執(zhí)行,才能得到客戶端瀏覽器能識(shí)別的HTML文檔。這是當(dāng)前Web技術(shù)的潮流,是解決客戶端瀏覽器兼容性問題的客觀需要。服務(wù)端技術(shù)是JSP區(qū)別于JavaScript、VBScript等客戶端動(dòng)態(tài)頁面技

10、術(shù)的重要牲。JSP是一種頁面技術(shù),而現(xiàn)在JSP只實(shí)現(xiàn)了HTTP(Hypertext Transfer Protocol)協(xié)議,只能應(yīng)用于Web頁面。這是JSP區(qū)別于Servlet的重要牲。JSP是一種動(dòng)態(tài)技術(shù),這是JSP基于Java的自然延伸。在頁面中引入程序設(shè)計(jì)語言的</p><p>  JSP技術(shù)讓動(dòng)態(tài)網(wǎng)面更易編寫,功能更強(qiáng),可移植性更好。概括起來,JSP的設(shè)計(jì)目標(biāo)主要有以下幾點(diǎn):</p>&l

11、t;p>  a)一次編寫,到處運(yùn)行</p><p>  JSP技術(shù)是完全的與平臺(tái)無關(guān)的設(shè)計(jì),包含它的動(dòng)態(tài)網(wǎng)頁與底層的服務(wù)組件設(shè)計(jì)??梢栽谌魏纹脚_(tái)下編寫JSP網(wǎng)面并且在任何支持JSP的系統(tǒng)上執(zhí)行。</p><p>  也可建立自已的組件,并在JSP中使用。目前主要是JavaBean和Java Servlet,而它們都是跨平臺(tái)的。</p><p><b>

12、;  b)加強(qiáng)組件能力</b></p><p>  JSP技術(shù)以Java的組件模型JavaBean為基礎(chǔ),加強(qiáng)了組件的使用能力。</p><p>  這不但省去了一些開發(fā)時(shí)間,而且還可以將網(wǎng)頁頁面設(shè)計(jì)和商業(yè)分開,有助于快速開發(fā)和維護(hù)。</p><p>  c)作為Java企業(yè)平臺(tái)的門戶</p><p>  JSP高度整合了Java

13、企業(yè)平臺(tái)部分(Java專注于企業(yè)應(yīng)用方面的平臺(tái)技術(shù))??梢岳肑ava的企業(yè)級(jí)API(Application Programming Interface)開發(fā)企業(yè)的各種需求系統(tǒng),而使用JSP作為這些技術(shù)的前端。當(dāng)需要升級(jí)應(yīng)用程序時(shí),只需升級(jí)組件與動(dòng)態(tài)頁面部分,而這些都存在于服務(wù)器上,所以修改服務(wù)器上的資源,客戶端的顯示即會(huì)跟著改變。</p><p>  d)更容易建立動(dòng)態(tài)頁面</p><p&g

14、t;  JSP就是用標(biāo)準(zhǔn)HTML語法混合自身語法標(biāo)記,就是如此簡單,不需要有使用Java、C++等程序設(shè)計(jì)語言的能力與經(jīng)驗(yàn)??梢赃@么說,它的出現(xiàn)也正是要實(shí)現(xiàn)簡單容易的開發(fā)頁面的需要,否則它與Java Servlet相比沒有任何存在的理由。</p><p>  JSP2.0是對(duì)JSP1.2版本的升級(jí),其中增加了一些有趣的新特性。JSP2.0的設(shè)計(jì)目標(biāo)是使動(dòng)態(tài)網(wǎng)頁的設(shè)計(jì)、開發(fā)和維護(hù)更加容易,網(wǎng)頁編寫者不必懂得Java

15、編程語言,也可以編寫JSP網(wǎng)頁。JSP2.0增加了一種稱為SimpleTag的擴(kuò)展機(jī)制來簡化標(biāo)簽API(Tag API)。JSP2.0引入的最主要的新特性包括[2]:</p><p>  a) 引入簡單表達(dá)式語言(EL,Expression Language),它用于JSP頁面中的數(shù)據(jù)訪問。這種表達(dá)式語言簡化了JSP中數(shù)據(jù)訪問的代碼,不需要使用Java Script或者Java表達(dá)式。</p>&

16、lt;p>  b) 引入創(chuàng)建自定義標(biāo)簽的新語法,該語法使用.tag和.tagx文件,這類文件可由開發(fā)人員或者網(wǎng)頁作者編寫。</p><p>  c) 對(duì)XML語法做了實(shí)質(zhì)性的改進(jìn),增加了新的標(biāo)準(zhǔn)文件擴(kuò)展名(.tagx用于標(biāo)簽文件,.jspx用于JSP文件)。</p><p>  2.3 Tomcat</p><p>  Tomcat是一個(gè)免費(fèi)的開源的Se

17、rlvet容器,它是Apache基金會(huì)的Jakarta項(xiàng)目中的一個(gè)核心項(xiàng)目,由Apache、Sun和其它一些公司及個(gè)人共同開發(fā)而成。由于有了Sun的參與和支持,最新的Servlet和Jsp規(guī)范總能在Tomcat中得到體現(xiàn)。</p><p>  Tomcat服務(wù)器是在SUN公司的JSWDK(JavaServer Web DevelopmentKit,SUN 公司推出的小型Servlet/JSP調(diào)試工具)的基礎(chǔ)上發(fā)展

18、起來的一個(gè)優(yōu)秀的Java Web應(yīng)用容器。Tomcat已經(jīng)被JavaWorld雜志的編輯選為2001年度最具創(chuàng)新力的Java產(chǎn)品,同時(shí)它又是SUN公司官方推薦的Servlet/JSP容器[14]。作為一個(gè)開放源碼的軟件,Tomcat得到了開放源碼志愿者的廣泛支持,它可以和目前大部分主流HTTP服務(wù)器一起工作(如IIS和Apache服務(wù)器),而且運(yùn)行穩(wěn)定、可靠、效率高。同時(shí),它還提供了作為Web服務(wù)器的一些特有功能,如Tomcat管理和控

19、制平臺(tái)、安全域管理和Tomcat閥等。</p><p>  作為Servlet容器,Tomcat負(fù)責(zé)處理客戶請(qǐng)求,把請(qǐng)求傳送給Servlet并把結(jié)果返回給客戶。Servlet容器與Servlet之間的接口是由Java Servlet API定義的,在 Java Servlet API中定義了Servlet的各種方法,這些方法在Servlet生命周期的不同階段被Servlet容器調(diào)用;Servlet API還定義了

20、Servlet容器傳遞給Servlet的對(duì)象類,如請(qǐng)求對(duì)象ServletRequest和響應(yīng)對(duì)象ServletResponse。</p><p>  當(dāng)客戶請(qǐng)求訪問某個(gè)Servlet時(shí),Servlet容器將創(chuàng)建一個(gè)ServletRequest對(duì)象和ServletResponse對(duì)象。在ServletRequest對(duì)象中封裝了客戶請(qǐng)求信息,然后Servlet容器把ServletRequest對(duì)象和ServletRe

21、sponse對(duì)象付給客戶所請(qǐng)求的Servlet。Servlet把響應(yīng)結(jié)果寫到ServletResponse中,然后Servlet窗口把響應(yīng)結(jié)果傳給客戶。</p><p>  Tomcat已經(jīng)為Servlet和JSP提供了強(qiáng)大的支持,Servlet和JSP最新技術(shù)規(guī)范都可以在Tomcat中及時(shí)地得到實(shí)現(xiàn)。Tomcat應(yīng)用已經(jīng)成為目前開發(fā)企業(yè)Java Web應(yīng)用的最佳選擇之一。</p><p>

22、;  2.4 SQL Server 2000</p><p>  SQL Server 2000是微軟推出的一個(gè)大型的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。作為Windows數(shù)據(jù)庫中出類拔萃的成員,SQL Server 2000能夠滿足各種類型的企業(yè)客戶和獨(dú)立軟件供應(yīng)商構(gòu)建商業(yè)應(yīng)用程序的需要。SQL Server的可伸縮性既可以適應(yīng)很小的兆字節(jié)個(gè)人數(shù)據(jù)庫,也可以適應(yīng)由數(shù)以萬記用戶使用的巨大的太字節(jié)數(shù)據(jù)庫[15]。</p&

23、gt;<p>  SQL Server 2000是一種客戶機(jī)/服務(wù)器模式的數(shù)據(jù)庫管理系統(tǒng),這種體系結(jié)構(gòu)把所有的工作負(fù)荷分解成在服務(wù)器機(jī)器上的任務(wù)和在客戶機(jī)機(jī)器上的任務(wù),有效地利用了資源,減輕了服務(wù)器的壓力。</p><p>  Microsoft SQL Server 2000能夠提供特大系統(tǒng)所需要的數(shù)據(jù)庫服務(wù)。在大型客戶/服務(wù)器系統(tǒng)中,成千的用戶可能同時(shí)連接一個(gè)SQL Server 2000實(shí)例,

24、SQL Server 2000有強(qiáng)大的保護(hù)功能來處理這種情況。SQL Server 2000也可以有效地為多個(gè)用戶分配可用的資源,如內(nèi)在、網(wǎng)絡(luò)帶寬和磁盤I/O等[16]。</p><p>  非常大的Internet站點(diǎn)能夠?qū)⑺鼈兊臄?shù)據(jù)在多個(gè)服務(wù)器間劃分,將處理負(fù)擔(dān)分布到許多計(jì)算機(jī)上,且允許站點(diǎn)為大量用戶服務(wù)。</p><p>  多實(shí)例SQL Server 2000可以在單臺(tái)計(jì)算機(jī)上運(yùn)行

25、。例如,為許多其他組織提供數(shù)據(jù)庫服務(wù)的組織可以為每個(gè)用戶組織運(yùn)行一個(gè)單獨(dú)的SQL Server 2000實(shí)例,所有實(shí)例都在一臺(tái)計(jì)算機(jī)上。這樣使得每個(gè)用戶組織的數(shù)據(jù)相互獨(dú)立,而服務(wù)組織只管理一個(gè)服務(wù)器計(jì)算機(jī)來減少開支。</p><p>  SQL Server 2000應(yīng)用程序也可以像SQL Server 2000一樣運(yùn)行在同一臺(tái)計(jì)算機(jī)上。應(yīng)用程序使用Windows Interprocess Communicati

26、ons(IPC)組件,如共享內(nèi)存來連接SQL Server 2000,而不是網(wǎng)絡(luò)。這樣SQL Server 2000就可以在小系統(tǒng)上使用,此時(shí)應(yīng)用程序必須在本地保存它的數(shù)據(jù)。</p><p>  SQL Server 2000還支持對(duì)多節(jié)點(diǎn)群集的規(guī)模擴(kuò)充(Scale Out),即把一個(gè)巨型數(shù)據(jù)庫分區(qū)到一個(gè)服務(wù)器群集中,但是對(duì)于用戶來說,整個(gè)數(shù)據(jù)庫的存儲(chǔ)和訪問就像是對(duì)待一個(gè)單獨(dú)的數(shù)據(jù)庫那樣。通過使用這種擴(kuò)充規(guī)模的伸

27、縮樣式,SQL Server2000達(dá)到了任何數(shù)據(jù)庫系統(tǒng)在任何平臺(tái)上所能達(dá)到的性能。故障切換和恢復(fù)這兩種技術(shù)內(nèi)置到了SQL Server系統(tǒng)中,使得SQL Server具有了高度的可用性[16]。</p><p>  2.5 Eclipse</p><p>  Eclipse最初是IBM公司的一個(gè)軟件產(chǎn)品,2001年11月其1.0版正式發(fā)布。面世之初,Eclipse還很不起眼,并飽受業(yè)界

28、批評(píng)。所謂萬事開頭難,軟件的初版一般都比較稚嫩。到2003年3月,Eclipse發(fā)布了它的2.1版,立刻引起了轟動(dòng),下載的人蜂擁而至,導(dǎo)致它的下載服務(wù)器都因超載而擁塞了。</p><p>  現(xiàn)在,IBM已將投入巨資開發(fā)的Eclipse作為一個(gè)開源項(xiàng)目捐獻(xiàn)給了開源組織Elipse.org,Eclipse出色而有獨(dú)創(chuàng)性的平臺(tái),吸引了眾多大公司加入到Eclipse這個(gè)平臺(tái)的發(fā)展上來,這樣的公司有HP、Oracle、S

29、ybase、Borland、RedHat、Rational Software、SuSE、Together Soft等。</p><p>  最初Eclipse的開發(fā)人員,大部分都來自于當(dāng)年與JBuilder齊名的Visual Age項(xiàng)目組,現(xiàn)在雖然IBM已將Eclipse捐獻(xiàn)給了開源組織,但仍由IBM的子公司OTI(主要從事Eclipse開發(fā)的人)繼續(xù)領(lǐng)導(dǎo)著Eclipse的開發(fā)[11]。</p>&

30、lt;p>  Eclipse是一種通用工具平臺(tái)——普遍適用的開放式擴(kuò)展IDE(Integrated Develop Environment)。它擁有功能豐富的開發(fā)環(huán)境,并允許開發(fā)者高效地創(chuàng)建一些能夠無縫集成到Eclipse平臺(tái)中的工具。</p><p>  Eclipse的設(shè)計(jì)思想是:一切皆為插件。Eclipse的核心是非常小的,其它所有的功能都以插件的形式附加到這個(gè)Eclipse核心之上。這樣的功能插件包

31、括它的圖形API(稱為SWT/JFace)、Java開發(fā)環(huán)境插件、插件開發(fā)環(huán)境等。Eclipse還對(duì)這些插件的協(xié)同工作提供了良好的支持,不僅安裝簡單,而且還可以無縫結(jié)合。</p><p>  Eclipse對(duì)這些插件是動(dòng)態(tài)載入動(dòng)態(tài)調(diào)用的。所謂動(dòng)態(tài)就是指,Eclipse啟動(dòng)后要真正用到這個(gè)插件時(shí),它才會(huì)被調(diào)入內(nèi)存。當(dāng)插件不再被使用時(shí),它就會(huì)被在適當(dāng)?shù)臅r(shí)候清除出內(nèi)存。因此即使裝了一大堆插件在Eclipse里,也不必?fù)?dān)

32、心某些不常用的插件白白占著內(nèi)存。</p><p>  此外,Eclipse有極為強(qiáng)大的集成開發(fā)環(huán)境,它集成了CVS,JUnit和Ant,并且強(qiáng)大的代碼重構(gòu)功能獨(dú)步江湖無人能及。因?yàn)镋clipse的安裝包集成了Java開發(fā)環(huán)境的插件JDT,所以Eclipse默認(rèn)是一個(gè)和JBuilder類似的Java開發(fā)工具。但Eclipse不僅僅只是Java的開發(fā)工具,我們只需要裝上C/C++的插件,就可以把它當(dāng)作一個(gè)C/C++開

33、發(fā)工具來使用。只要有相應(yīng)的插件,Eclipse也可以用做其他語言的開發(fā)工具。Eclipse的這種插件擴(kuò)展機(jī)制是其最突出的特點(diǎn)和優(yōu)勢,它使Eclipse提升到了一個(gè)平臺(tái)的高度。我們可以利用Eclipse的插件開發(fā)環(huán)境來開發(fā)自己的Eclipse插件,隨己所需地?cái)U(kuò)展Eclipse的功能。</p><p><b>  3 需求分析</b></p><p><b>

34、  3.1 項(xiàng)目背景</b></p><p>  網(wǎng)上書店是一種應(yīng)用于圖書銷售領(lǐng)域的動(dòng)態(tài)網(wǎng)站。近年來隨電子商務(wù)在圖書銷售領(lǐng)域廣泛應(yīng)用,網(wǎng)上書店如雨后春筍在全國迅速展開。與傳統(tǒng)的書店相比,網(wǎng)上書店既可以避免書目訂貨的局限和盲目,又可以克服看樣訂貨投入大,費(fèi)用高,管理難的不足,而且網(wǎng)上選擇范圍廣能直觀看樣,可瀏覽內(nèi)容,可隨時(shí)添訂,結(jié)算及時(shí),快捷方便,周轉(zhuǎn)高速。這些優(yōu)勢是其它交易方式難以達(dá)到的。圖書網(wǎng)上交

35、易是圖書銷售領(lǐng)域未來發(fā)展之必然,也是出版發(fā)行業(yè)擺脫困境,建立新的流通渠道,繁榮出版,繁榮市場的必由之路。目前當(dāng)當(dāng)、科利華、江蘇考試書店等網(wǎng)上書店都在網(wǎng)上市場競爭中爭的自己的一席之地。然而中小型的書店開展網(wǎng)上交易的數(shù)量,卻顯的鳳毛麟角。一方面:中小型的書店向大型書店發(fā)展受到了資金、管理水平的限制;另一方面當(dāng)今的互聯(lián)網(wǎng)技術(shù)的發(fā)展賦予中小型圖書銷售商開展靈活快捷售書的機(jī)遇。</p><p>  利云網(wǎng)上書店正是基于這種

36、市場潛力,面向全國中小型圖書銷售商而開發(fā)的,力爭為全國的中小型書店提供一款功能完善、界面友好、性能可靠的網(wǎng)上銷售軟件。</p><p>  3.2 可行性分析</p><p>  利云網(wǎng)上書店同其他電子商務(wù)系統(tǒng)采用B/S結(jié)構(gòu)的開發(fā)模式,以此保證了用戶使用系統(tǒng)的靈活性,顧客只要使用一臺(tái)可以訪問Internet的電腦就可以登錄到系統(tǒng)中進(jìn)行操作,無需客戶端軟件支持,這樣方便了圖書潛在的消費(fèi)者快

37、速瀏覽利云網(wǎng)上書店提供的圖書。 </p><p>  利云網(wǎng)上書店采用JSP技術(shù)為基礎(chǔ)進(jìn)行設(shè)計(jì)開發(fā)。首先,由于Java技術(shù)的平臺(tái)無關(guān)性,決定了本系統(tǒng)的強(qiáng)大的可移植性,這樣可以不對(duì)客戶作過多的限制,無論是Windows平臺(tái)還是UNIX、Linux都可以無障礙地進(jìn)行部署發(fā)布。在技術(shù)上,JSP作為SUN公司在市場上的主打品牌,經(jīng)過多年的考驗(yàn)已經(jīng)非常成熟,使用它作為技術(shù)基礎(chǔ)對(duì)本系統(tǒng)來說沒有任何問題,而且JSP可以將前臺(tái)用

38、戶接口與后臺(tái)業(yè)務(wù)處理進(jìn)行很好的分離,以此保證了界面開發(fā)和后臺(tái)實(shí)現(xiàn)互不干預(yù),可維護(hù)性強(qiáng)。同時(shí),JSP技術(shù)相對(duì)比較簡單,開發(fā)速度快,可以提高開發(fā)效率,又因?yàn)槠浠贘ava,本身又可以擴(kuò)展使用任何的Java框架,所以它在功能上也是完全能夠勝任本次開發(fā)任務(wù)的。</p><p>  在應(yīng)用服務(wù)器的選擇上,Tomcat是Apache公司的一款出色的Java Web Server,它是在SUN公司的JSWDK(Java Ser

39、ver Web Development Kit, SUN公司推出的小型Servlet/JSP調(diào)試工具)的基礎(chǔ)上發(fā)展起來的一個(gè)優(yōu)秀的Java Web應(yīng)用容器,雖然小巧但是功能強(qiáng)大,而且反應(yīng)速度快、運(yùn)行穩(wěn)定可靠、使用簡單,如果需要還可以和當(dāng)前大多數(shù)主流應(yīng)用服務(wù)器集成到一起,可擴(kuò)展性好,是部署中小型應(yīng)用的理想容器,此外,它還是一款免費(fèi)的軟件,所以在很大程度上降低了成本。使用它來部署本系統(tǒng),是一個(gè)理想的選擇。</p><p&

40、gt;<b>  3.3 功能分析</b></p><p>  利云網(wǎng)上書店提供前臺(tái)圖書前臺(tái)和后臺(tái)圖書管理兩大功能。顧客通過登陸利云網(wǎng)上書店的主頁面,瀏覽和各種類型查詢書店存書,然后客戶通過網(wǎng)上自己的注冊(cè)用戶名、登陸、修改資料,在網(wǎng)上確認(rèn)自己的購買所需圖書,并把這些圖書添加到購物車上。最后填寫訂單購書結(jié)賬和訂單的查詢。利云網(wǎng)上后臺(tái)管理主要是管理員通過登陸對(duì)圖書和前臺(tái)用戶信息的管理,包括查看

41、、添加、修改、刪除圖書信息,查看用戶信息和凍結(jié)不良的用戶等功能。</p><p>  3.3.1 圖書展示模塊</p><p>  圖書展示模塊主要實(shí)現(xiàn)用戶瀏覽到利云網(wǎng)上書店主頁面的時(shí)候,用戶對(duì)自己感興趣書籍的查詢和對(duì)書店所存書籍的了解。當(dāng)注冊(cè)用戶登陸后不僅可以實(shí)現(xiàn)對(duì)圖書的瀏覽、查詢而且在相應(yīng)的圖書下面顯示購物車,方便用戶把圖書放到自己的購物車上。主要功能如下:</p>&

42、lt;p>  a) 重點(diǎn)推薦提供了無需客戶注冊(cè)就可以觀看管理員為客戶推薦的重點(diǎn)書籍,包括圖書的封面作者價(jià)格等相關(guān)信息,而對(duì)登錄用戶則顯示購買按鈕方便用戶將圖書添加到自己的購物車車上。</p><p>  b) 新書上架提醒顧客網(wǎng)上書店新到的圖書,同樣客戶可以查看到書籍的相關(guān)信息,對(duì)登錄用戶顯示購買按鈕。</p><p>  c) 圖書分類瀏覽功能給客戶提供了分類別查看圖書的一種簡介途

43、徑。這項(xiàng)功能可以滿足那些需要某類圖書,但是讀者又不知道自己確切需要的書目。</p><p>  d) 銷售排行榜為顧客提供了解利云網(wǎng)上書店銷售圖書的情況,對(duì)客戶具有一定的指導(dǎo)價(jià)值。</p><p>  3.3.2 網(wǎng)上調(diào)查模塊</p><p>  網(wǎng)上調(diào)查主要通過用戶對(duì)自己所需類型圖書的投票,為書店經(jīng)理提供進(jìn)貨參考。投票的結(jié)果對(duì)所用用戶是公開的,結(jié)果分別用表格和柱

44、狀圖例表示。這個(gè)模塊的功能簡單,也不是整個(gè)系統(tǒng)的重點(diǎn),但是盡量使顯示部分的界面美觀大方。</p><p>  3.3.3 購物車模塊</p><p>  購物車模塊主要負(fù)責(zé)存放用戶所購買的圖書,具體包括添加至購物車,主要實(shí)現(xiàn)當(dāng)?shù)卿浻脩舨榭吹阶约核鑸D書的時(shí)候,將其添加到自己的購物車上;查看購物車,實(shí)現(xiàn)用戶對(duì)自己購物車中物品的查詢;從購物車移除圖書負(fù)責(zé)從購物車中移除自己不想購買的書籍;清空

45、購物車功能使購物車一次清空。需要注意的是設(shè)計(jì)時(shí)除了在購物車中實(shí)現(xiàn)購物車中圖書數(shù)量的修改和清空功能還要建立繼續(xù)購書和結(jié)賬的超鏈接,方便用戶使用。</p><p>  3.3.4 收銀臺(tái)模塊</p><p>  收銀臺(tái)模塊的設(shè)計(jì)雖然簡單,但是卻是利云網(wǎng)上書店設(shè)計(jì)中較為重要的模塊。模塊的主要功能包括填寫訂單信息和顯示購書結(jié)果。</p><p>  3.3.5 會(huì)員管理

46、模塊</p><p>  會(huì)員管理模塊提供了會(huì)員注冊(cè)、會(huì)員登陸、會(huì)員資料的修改功能。</p><p>  3.3.6 訂單查詢模塊</p><p>  訂單查詢模塊主要的作用是方便用戶查詢自己所有訂單的功能,但是用戶不能對(duì)這些訂單進(jìn)行具體的操作,保證了訂單的唯一和確定性。</p><p>  3.3.7 圖書管理模塊</p>

47、<p>  圖書管理模塊是利云網(wǎng)上書店后臺(tái)的核心模塊,主要的功能包括:查看圖書信息、添加圖書信息、修改圖書信息、刪除圖書信息。查看圖書信息時(shí)所有的圖書將以表格的形式,界面簡介大方。添加圖書信息,主要負(fù)責(zé)管理員登錄利云網(wǎng)上書店后臺(tái)后向書店添加圖書,在添加圖書的時(shí)候,將會(huì)給列出圖書的主要信息,管理員添好以后,當(dāng)用戶在前臺(tái)登陸后將會(huì)查看到這些圖書,此外在這個(gè)界面上還設(shè)有推薦選項(xiàng)卡和新書選項(xiàng)卡,當(dāng)管理員選中推薦是,將會(huì)在網(wǎng)站首頁的推

48、薦欄里展出,選擇新書時(shí),圖書將會(huì)在首頁的新書欄里出現(xiàn)。修改圖書信息,由于圖書號(hào)的內(nèi)容是出版是確定的唯一號(hào)碼,所以此項(xiàng)不可改動(dòng)。</p><p>  3.3.8 用戶管理模塊</p><p>  用戶管理模塊是管理員對(duì)所用用戶管理的一個(gè)平臺(tái)。主要功能有查看用戶信息和凍結(jié)解凍用戶,這個(gè)模塊的設(shè)計(jì)相對(duì)來說比較容易。</p><p>  3.3.9 訂單的管理</

49、p><p>  訂單的管理主要能夠提供管理員查看訂單信息和根據(jù)用戶的匯款支付情況執(zhí)行訂單。</p><p>  3.3.9 公告管理模塊</p><p>  公告管理提供查看公告信息、添加公告信息、刪除公告信息的能力。管理員添加的公告將會(huì)在前臺(tái)的公告欄里展出,信息將以滾動(dòng)的方式進(jìn)行。</p><p>  3.3.10 投票管理模塊</p

50、><p>  投票管理模塊提供了:瀏覽投票項(xiàng)目、添加投票項(xiàng)目、刪除投票項(xiàng)目的功能。這些功能是是書店經(jīng)理更容易了解用戶的需求,有助于合理進(jìn)貨結(jié)構(gòu)。</p><p>  3.4 系統(tǒng)實(shí)施環(huán)境</p><p>  該系統(tǒng)至少需要一臺(tái)主機(jī)作為服務(wù)器,并且該主機(jī)要以獨(dú)立的IP接入互聯(lián)網(wǎng)。如果需要的話,可以為此IP申請(qǐng)域名綁定。具體系統(tǒng)需求如下:</p><p

51、>  Windows XP 或Windows 2000</p><p>  SQL Server 2000 SP4或更高版本的數(shù)據(jù)庫服務(wù)器</p><p>  JRE 1.4.2_03 或更高版本的Java運(yùn)行時(shí)環(huán)境</p><p>  Tomcat 5.0.28 或更高版本的應(yīng)用服務(wù)器</p><p><b>  4 概要

52、設(shè)計(jì)</b></p><p>  4.1 系統(tǒng)功能圖</p><p>  根據(jù)前期的分析和客戶的需求,利云網(wǎng)上書店的前臺(tái)主要包括重點(diǎn)推薦展臺(tái)、新書上架、圖書分類瀏覽、銷售排行榜、網(wǎng)上調(diào)查、查看調(diào)查結(jié)果、添加至購物車、查看購物車、從購物車中移除圖書、清空購物車、填寫訂單信息、購書結(jié)賬、會(huì)員注冊(cè)、會(huì)員登錄、會(huì)員資料修改、訂單查詢模塊構(gòu)成。利云網(wǎng)上書店前臺(tái)功能結(jié)構(gòu)如圖4.1所示。&

53、lt;/p><p>  圖4.1 前臺(tái)功能結(jié)構(gòu)圖</p><p>  網(wǎng)上書店的后臺(tái)模塊主要包括查看圖書信息、添加圖書信息、修改圖書信息、刪除圖書信息、查看用戶信息、凍結(jié)解凍用戶、查看訂單信息、執(zhí)行訂單、查看公告信息、添加公告信息、刪除公告信息、瀏覽投票項(xiàng)目、添加投票項(xiàng)目、刪除投票項(xiàng)目、退出后臺(tái)管理。網(wǎng)上書店的后臺(tái)功能結(jié)構(gòu)如圖4.2所示。</p><p>  圖4.2

54、后臺(tái)功能結(jié)構(gòu)圖</p><p>  4.2 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)</p><p>  本系統(tǒng)將搭建在B/S結(jié)構(gòu)的基礎(chǔ)之上,系統(tǒng)將首先由用戶向Web Server發(fā)出請(qǐng)求,而Web Server則將請(qǐng)求交給Servlet進(jìn)行處理,Servlet根據(jù)請(qǐng)求的類型調(diào)用相應(yīng)的JavaBean業(yè)務(wù)組件來進(jìn)行操作,業(yè)務(wù)處理將在JavaBean組件中進(jìn)行,主要包括對(duì)數(shù)據(jù)庫的存取。JavaBean處理結(jié)束之后將結(jié)

55、果返回給Servlet,這時(shí),Servlet就可以根據(jù)結(jié)果將相應(yīng)的JSP頁面返回給用戶。在這樣的結(jié)構(gòu)中,JSP頁面負(fù)責(zé)了前臺(tái)顯示,也就是視圖(View)層,Servlet扮演了控制器(Controllor)的角色,JavaBean則是業(yè)務(wù)處理組件模型(Modal)。這樣的設(shè)計(jì)使得整個(gè)系統(tǒng)的結(jié)構(gòu)顯得清晰,每個(gè)層負(fù)責(zé)自己相應(yīng)的功能處理,而對(duì)超出自己能力范圍之外的功能不作涉及。</p><p>  4.3 數(shù)據(jù)庫物理

56、表結(jié)構(gòu)</p><p>  根據(jù)需求分析中對(duì)利云網(wǎng)站功能的各方面做出的定義,設(shè)計(jì)了相應(yīng)的數(shù)據(jù)庫物理表結(jié)構(gòu),即數(shù)據(jù)庫的物理模型。進(jìn)行開發(fā)時(shí),在SQL Server 2000數(shù)據(jù)庫服務(wù)器中應(yīng)該嚴(yán)格按照此結(jié)構(gòu)進(jìn)行表之定義,而且一定要注意在設(shè)計(jì)的過程中,對(duì)各字段大小所做的限制。</p><p>  在名稱為db_bookmange的數(shù)據(jù)庫中,根據(jù)利云網(wǎng)上書店的需求建立相應(yīng)的數(shù)據(jù)表。</p&g

57、t;<p>  圖書信息表tb_bookinfo用來保存圖書詳細(xì)信息。在表tb_bookinfo中共有十二個(gè)字段,其中字段newbook標(biāo)識(shí)是否是新書,為1表示是新書,默認(rèn)值是0,表示不推薦。字段commend標(biāo)識(shí)是否在首頁推薦該書,為1表示推薦,默認(rèn)為0表示不推薦。表tb_bookinfo的設(shè)計(jì)結(jié)構(gòu)如表4.1所示。</p><p>  表4.1 圖書信息表(tb_bookinfo)</p&g

58、t;<p>  表4.2為是用戶信息表(tb_Member),用來存放所有用戶信息。具體字段的定義及其含義如下表所示 (在freeze表示用戶是否被凍結(jié),為1表示已經(jīng)被凍結(jié),為0表示未被凍結(jié))。</p><p>  表4.2 用戶信息表(tb_Member)</p><p>  表4.3訂單信息表(tb_Order)用來保存訂單的概要信息。在tb_Order中共有10個(gè)字段,

59、其中OrderID為主鍵。各個(gè)字段的名稱和含義如表所示。</p><p>  表4.3 訂單信息表(tb_Order)</p><p>  表4.4訂單信息明細(xì)表(tb_order_detail)用來保存訂單的明細(xì)信息。其中各個(gè)字段都不能為空。訂單明細(xì)信息編號(hào)ID為主鍵。其他各字段名稱和其表示的含義如下圖所示。 </p><p>  表4.4 訂單信息明細(xì)表 (tb

60、_order_detail)</p><p>  表4.5為折扣信息表(tb_rebate),主要用來保存折扣信息。為了安全,管理員必須修改數(shù)據(jù)庫中tb_rebate表的內(nèi)容,方能改變各個(gè)級(jí)別的用戶相對(duì)應(yīng)的打折比例。各個(gè)字段名稱及其表示如表4.5所示。</p><p>  表4.5 折扣信息表 (tb_rebate)</p><p>  表4.6為管理員信息表(tb

61、_manager)用來保存管理員的信息,其中自動(dòng)編號(hào)ID是表的主鍵。各個(gè)字段名稱含義具體如表。</p><p>  表4.6 管理員信息表(tb_manager)</p><p>  表4.7所示為公告信息表tb_BBS,用來保存管理員信息。字段名稱含義如下。</p><p>  表4.7 公告信息表(tb_BBS)</p><p><

62、b>  5 詳細(xì)設(shè)計(jì)</b></p><p>  根據(jù)在概要設(shè)計(jì)階段產(chǎn)生的文檔,接下來將要在詳細(xì)設(shè)計(jì)階段對(duì)各功能模塊提供具體的設(shè)計(jì)方案,以便在之后的編碼階段能夠加快效率、提高質(zhì)量。在詳細(xì)設(shè)計(jì)的過程中,將逐步實(shí)現(xiàn)前臺(tái)和后臺(tái)的功能,包括:圖書展臺(tái)、網(wǎng)上調(diào)查、購物車、收銀臺(tái)、會(huì)員管理、訂單功能、圖書管理、用戶管理、訂單管理、公告管理、投票管理、退出。在注重實(shí)現(xiàn)功能的同時(shí),兼顧系統(tǒng)的美觀和可維護(hù)性。&

63、lt;/p><p><b>  5.1 首頁設(shè)計(jì)</b></p><p>  由于利云網(wǎng)上書店是一個(gè)網(wǎng)上電子商務(wù)系統(tǒng),所以最終的目的是發(fā)布在互聯(lián)網(wǎng)上,因此外觀的設(shè)計(jì)對(duì)整個(gè)系統(tǒng)來說顯得非常重要的,而利云網(wǎng)上書店的首頁將是瀏覽者最先看到的歡迎式的頁面,所以網(wǎng)站的首頁極為重要,首頁設(shè)計(jì)的好壞將直接影響到顧客的購買欲望。在利云網(wǎng)上書店的首頁中用戶不但可以在第一時(shí)間內(nèi)掌握書店提供

64、的優(yōu)惠活動(dòng)、公告信息還可以查看推薦圖書、新上架的圖書、銷售排行榜等。在利云網(wǎng)上書店的設(shè)計(jì)過程中不僅要在首頁實(shí)現(xiàn)各種功能的展示,而且要兼顧首頁的美觀,使網(wǎng)頁做到功能完善,頁面簡潔大方。在前面的需求分析中,已經(jīng)對(duì)主頁的要求有了一個(gè)大概的說明,而在此處,就要全方位地開始設(shè)計(jì)該系統(tǒng)的首頁了。</p><p>  a) 在頁面的布局上由于利云網(wǎng)上書店的前后臺(tái)功能模塊較多,所以決定書店的后臺(tái)將放到一個(gè)獨(dú)立的頁面上。而在首頁的

65、底部提供一個(gè)后臺(tái)管理員的入口,管理員可以通過正確的輸入用戶名和密碼來登錄到利云書店的網(wǎng)站后臺(tái)。在成功解決了網(wǎng)站后臺(tái)登錄的問題后首頁主要區(qū)域用來設(shè)計(jì)前臺(tái)的功能。同眾多網(wǎng)站一樣,利云網(wǎng)上書店把前臺(tái)的主菜單放在首頁的頂部。因?yàn)榧t色象征這激情而我們的用戶主要是充滿理想的知識(shí)青年,所以接下來的歡迎橫幅是以紅色為基調(diào)的歡迎圖片。在做完網(wǎng)頁頂部設(shè)計(jì)以后,剩下的版塊留給用戶登錄、圖書展示、網(wǎng)上調(diào)查等模塊。為了便于規(guī)劃將余下的空間分為左中右三部分。左部分

66、為普通用戶登錄的入口,在普通用戶的登錄模塊下為完善調(diào)查模塊;在頁面的中部為重點(diǎn)推薦圖書展示部分;右部分的網(wǎng)頁為新書上架和銷售排行榜。</p><p>  b) 由于系統(tǒng)面向的用戶為非計(jì)算機(jī)專業(yè)用戶,所以用戶不可能了解JSP網(wǎng)站運(yùn)行的原理,這決定了在設(shè)計(jì)的過程中要努力做到界面簡介,操作方便。使用戶通過點(diǎn)擊鼠標(biāo)來完成大部分操作,體現(xiàn)了用戶的友好。</p><p>  根據(jù)這些原則,并經(jīng)過精心的

67、設(shè)計(jì),最終形成的網(wǎng)站美觀大方的首頁。首頁的主要部分,如圖5.1所示。</p><p><b>  圖5.1 網(wǎng)站首頁</b></p><p><b>  5.2 類的設(shè)計(jì)</b></p><p>  a) 由于系統(tǒng)的大部分功能都要涉及到對(duì)數(shù)據(jù)庫的操作(Create、Retrieve、Update、Delete),所以數(shù)據(jù)

68、庫的設(shè)計(jì)無疑是利云網(wǎng)上書店整體模塊設(shè)計(jì)中的重頭戲,這里把數(shù)據(jù)庫的連接和對(duì)數(shù)據(jù)的操作封裝在一個(gè)名為connDB.java的類里面,對(duì)數(shù)據(jù)庫中數(shù)據(jù)的操作主要包括查詢操作、執(zhí)行更新操作、關(guān)閉數(shù)據(jù)庫連接等。這樣使得工程的結(jié)構(gòu)清晰,思路明了。</p><p>  b) 在開發(fā)的過程中經(jīng)常需要考慮中文的亂碼問題、過濾一些特殊的字符(如空格、null值等等)和顯示文本中的回車換行、空格。這個(gè)功能通常需要編寫一個(gè)獨(dú)立的JavaB

69、ean完成。在利云網(wǎng)上書店的開發(fā)過程中專門設(shè)計(jì)了處理此類問題的類“chStr.java”。</p><p>  5.3 重點(diǎn)推薦展臺(tái)的實(shí)現(xiàn)</p><p>  在網(wǎng)站前臺(tái)的居中位置,分欄列出了利云網(wǎng)上書店推薦的圖書信息,主要包括圖書的封面、名稱、出版社、作者、定價(jià)信息等。同時(shí)設(shè)置了“添加至購物車”按鈕和“查看”按鈕。分別用于將圖書添加至購物車和查看圖書的詳細(xì)信息。</p>

70、<p>  重點(diǎn)推薦的圖書同圖書的基本信息同時(shí)保存在圖書信息表tb_bookinfo中,以字段commend標(biāo)識(shí),當(dāng)commend字段的值為1時(shí),代表圖書是重點(diǎn)推薦的圖書。查詢重點(diǎn)推薦的圖書的關(guān)鍵代碼如下:</p><p>  <%ResultSet rs_book=connDB.executeQuery("select * from tb_bookinfo where commend=

71、1");%></p><p>  需要注意的是“添加至購物車”按鈕只有在用戶登錄后才可顯示出來,即“只有登錄的用戶才可以購買圖書”。</p><p>  當(dāng)用戶單擊“查看”按鈕后可以查看圖書的詳細(xì)信息。實(shí)現(xiàn)這個(gè)功能的方法是:在“查看”按鈕的onClick事件中,將頁面連接到book_detail.jsp頁面并傳遞相應(yīng)的圖書ISBN號(hào),然后在顯示詳細(xì)信息頁面中通過ISBN號(hào)進(jìn)

72、行檢索即可。圖書詳細(xì)信息頁面的運(yùn)行結(jié)構(gòu)如圖5.2所示。</p><p>  圖5.2 圖書詳細(xì)頁面</p><p>  5.4新書上架實(shí)現(xiàn)過程</p><p>  在前臺(tái)頁面中,單擊“新書上架”超鏈接可以進(jìn)入到新書上架頁面newbook.jsp,在該頁面中顯示了全部的上架新書的重點(diǎn)信息,用戶可以單擊書名超鏈接查看圖書的詳細(xì)信息。新書上架的全部信息保存在圖書信息表tb

73、_bookinfo中,以字段newbook標(biāo)識(shí),當(dāng)newbook字段的值為1時(shí),代表該圖書為上架新書。上架新書同重點(diǎn)推薦一樣,對(duì)于沒有登錄的用戶“購買”按鈕不可用,并給出提示語。新書上架的頁面運(yùn)行結(jié)果如圖5.3所。</p><p>  圖5.3 新書上架頁面</p><p>  上架新書信息保存在圖書信息表tb_bookinfo中,以字段newbook標(biāo)識(shí),當(dāng)newbook字段的值為1時(shí),

74、代表該圖書為上架新書。上架圖書的關(guān)鍵代碼如下:</p><p>  <%ResultSet rs_newbook=connDB.executeQuery("select top 5 * from tb_bookinfo where newbook=1 order by INTime desc");%></p><p>  5.5 圖書分類實(shí)現(xiàn)過程</

75、p><p>  為了方便用戶查詢所需的圖書信息,在網(wǎng)站中設(shè)置了圖書分類顯示模塊。點(diǎn)擊導(dǎo)航條中的“圖書分類”超練接進(jìn)入到圖書分類顯示頁面,在該頁面左側(cè)的“圖書分類列表”中類出了數(shù)據(jù)庫中的全部圖書類別,用戶點(diǎn)擊某類別則可以在右側(cè)顯示該類別的圖書信息列表,單擊書名可以查看相應(yīng)的圖書的詳細(xì)信息。如果用戶已經(jīng)登錄,還可以直接將圖書添加到購物車中。圖書分類顯示的運(yùn)行結(jié)果如圖5.4所示。</p><p>&

76、lt;b>  圖5.4 圖書分類</b></p><p>  5.6 用戶管理實(shí)現(xiàn)的過程</p><p>  用戶管理主要包括用戶的注冊(cè)、用戶登錄、用戶修改資料,由于用戶修改資料比較簡單所以這里主要介紹一下用戶注冊(cè)和用戶登錄的實(shí)現(xiàn)。</p><p><b>  a) 用戶注冊(cè)</b></p><p>

77、  為了統(tǒng)一管理,利云網(wǎng)上書店規(guī)定只有會(huì)員用戶才可以購買圖書。所以要想購買圖書的新用戶必須先進(jìn)行注冊(cè)。用戶的注冊(cè)入口在網(wǎng)站首頁的左邊。用戶單擊“注冊(cè)”按鈕進(jìn)入到用戶注冊(cè)頁面,網(wǎng)站要求用戶名必須唯一,為了方便用戶注冊(cè)在用戶注冊(cè)頁面設(shè)置了“檢測用戶名”的超連接用戶可以檢測自己的用戶名是否已經(jīng)被注冊(cè)。該頁面的運(yùn)行結(jié)果如圖5.5所示。</p><p>  圖5.5 用戶注冊(cè)運(yùn)行結(jié)果</p><p>

78、;<b>  b) 用戶登錄</b></p><p>  用戶登錄窗口設(shè)置在首頁的左側(cè),當(dāng)用戶在登錄窗口中輸入用戶名和密碼并單擊“登錄”按鈕后,系統(tǒng)將對(duì)輸入的用戶名和密碼進(jìn)行驗(yàn)證,如果用戶輸入的用戶名存在并且凍結(jié)字段的值不為1,則判斷用戶輸入的密碼是否正確,如果密碼也正確,則重新進(jìn)入網(wǎng)頁的主頁顯示登錄用戶的用戶名、用戶等級(jí)、“修改資料”按鈕、“退出”按鈕,否則登錄失敗,并給出提示信息。<

79、;/p><p>  5.7 購物車的實(shí)現(xiàn)過程</p><p>  購物車主要用來暫時(shí)保存挑選出來的圖書,主要包括對(duì)所選圖書的添加、查看購物車、單件圖書購買數(shù)量的修改、清空購物車四個(gè)部分。用戶登錄后,單擊圖書展示展示中的購買按鈕,可以將對(duì)應(yīng)的圖書添加到購物車上,購物車上將會(huì)保存圖書的ISBN號(hào)、書名、單價(jià)、購買數(shù)量、每種圖書的單價(jià) 以及購物車內(nèi)全部圖書的合計(jì)金額。查看購物車頁面時(shí),單擊退回圖標(biāo)

80、可以從購物車中移去指定圖書;在數(shù)量文本框中輸入購買數(shù)量后,單擊“修改數(shù)量”超鏈接可以修改指定圖書的購買數(shù)量;單擊“清空購物車”超鏈接,將退回購物車中的全部圖書;如果用戶確認(rèn)購買當(dāng)前購物車中的全部圖書,可以單擊“去收銀臺(tái)結(jié)賬”超鏈接,進(jìn)行訂單處理。</p><p><b> ?。?添加至購物車</b></p><p>  添加至購物車頁cart_add.jsp主要用于將

81、圖書信息暫存到購物車中。在購物車的設(shè)計(jì)過程中采用了Vector類型的變量cart來存儲(chǔ)購物數(shù)據(jù),這些數(shù)據(jù)被保存在session中。將圖書信息添加至購物車時(shí)有兩種情況。當(dāng)cart為空時(shí),也就是當(dāng)用戶每次向購物車添加1本書時(shí),都要新建一個(gè)cart,然后將圖書信息保存到cart中;當(dāng)cart不是空時(shí),說明購物車中已經(jīng)保存了已經(jīng)選購的書籍,這時(shí)不需要新建一個(gè)cart,只需要直接向里面加入圖書信息即可。如果書籍是重復(fù)的,只要修改cart中的圖書數(shù)

82、量。添加購物車的關(guān)鍵代碼如下:</p><p>  //當(dāng)cart中已經(jīng)存在所添加的書籍時(shí),只將數(shù)量加1。</p><p>  if (bookitem.ISBN.equals(mybookelement.ISBN){</p><p>  bookitem.number++;</p><p>  cart.setElementAt(booki

83、tem,i);</p><p>  Flag=false;</p><p><b>  }</b></p><p>  //將cart保存到session中。</p><p>  session.setAttribute(“cart”,cart)</p><p><b>  b)查看購物

84、車</b></p><p>  為了方便隨時(shí)查看購物情況,在網(wǎng)站的首頁的導(dǎo)航條中加入了查看購物車的超連接,通過查看購物車可以將用戶放入購物車中的書圖信息顯示出來。查看購物車的運(yùn)行結(jié)果如圖5.6所示。</p><p>  圖5.6 查看購物車</p><p>  在查看購物車頁面cart_see.jsp的頂部首先需要判斷購物車是否為空,如果為空將頁面跳轉(zhuǎn)到

85、購物車為空頁面cart_null.jsp,否則顯示購物車信息。</p><p>  c)修改購物車中指定圖書的購買數(shù)量</p><p>  購物車中還要加入修改指定圖書購買數(shù)量的功能。在購物車中由于書的數(shù)量被存放在文本框中,用戶只需在某種圖書后面的文本框中輸入相應(yīng)的數(shù)量,然后將光標(biāo)的焦點(diǎn)移到其他位置上就可以修改要提交表單的數(shù)量。</p><p>  d)從購物車中移

86、去指定圖書</p><p>  在設(shè)計(jì)購物車時(shí)實(shí)現(xiàn)從購物車中移除指定圖書是通過Vector類的removeElementAt(int index)方法非常方便。關(guān)鍵代碼:cart.removeElementAt(id);</p><p><b>  e)清空購物車</b></p><p>  清空購物車的方法很簡單,只需將保存在Session中

87、的購物車信息清空即可。清空購物車頁面cart_clear.jsp的關(guān)鍵代碼如下:</p><p>  <%session.removeAttribute(“cart”);</p><p>  response.sendRedirect(“cart_null.jsp”);%></p><p>  5.8 生成訂單的過程</p><p&

88、gt;  生成訂單是網(wǎng)上購物車的最終目的,前面所有功能都是為最后生成一個(gè)用戶滿意的訂單做準(zhǔn)備的。生成訂單時(shí)不僅要保存用戶訂單中所購買的圖書信息和訂單信息,在同時(shí)還要返回一個(gè)可供用戶隨時(shí)查詢的訂單號(hào)。用戶單擊查看購物車頁面中的“去收銀臺(tái)結(jié)賬”超鏈接時(shí)就會(huì)進(jìn)入到收銀臺(tái)頁面填寫訂單信息,在該頁面中系統(tǒng)會(huì)根據(jù)登錄的用戶名自動(dòng)填寫用戶的基本信息,除了用戶名不可更改,其他的內(nèi)容都可以有用戶修改,收銀臺(tái)的運(yùn)行頁面如圖5.7所示。</p>

89、<p><b>  圖5.7 收銀臺(tái)</b></p><p>  用戶在收銀臺(tái)頁面填寫訂單信息后,單擊“提交”按鈕將進(jìn)入到保存訂單頁面cart_order.jsp 將訂單信息分別保存到訂單主表和訂單明細(xì)表中。由于網(wǎng)上書店中為用戶設(shè)置了會(huì)員等級(jí),所以在保存訂單時(shí)還需要取出用戶的等級(jí),并根據(jù)會(huì)員等級(jí)打與之相符合的折扣,最后如果用戶消費(fèi)金額達(dá)到一定的數(shù)量時(shí)會(huì)員會(huì)進(jìn)級(jí),如果已經(jīng)達(dá)到最高級(jí)

90、別就不需要進(jìn)級(jí)了。確定給每一級(jí)別打折的比例,需要管理員直接進(jìn)入的數(shù)據(jù)庫,修改數(shù)據(jù)庫中的表tb_rebate中相應(yīng)字段的值。</p><p>  5.9 訂單查詢的實(shí)現(xiàn)過程</p><p>  訂單查詢頁面是為了用戶查詢訂單信息及其執(zhí)行狀態(tài)而設(shè)定的。用戶成功登錄后,單擊網(wǎng)站頂端導(dǎo)航條中的“訂單查詢”超鏈接,就可以進(jìn)入到訂單查詢頁面,這個(gè)頁面中列出了當(dāng)前用戶的全部訂單及其信息列表。訂單查詢的

91、頁面如圖5.8所示。</p><p>  查詢訂單概要信息主要從tb_order表中根據(jù)當(dāng)前的登錄用戶名獲取的訂單信息。關(guān)鍵代碼如下:</p><p>  ResultSet rs=connDB.executeQuery(“select” *from tb_order where username=“”+</p><p>  (string)session.getA

92、ttribute(“UserName”+“”);</p><p><b>  圖5.8 訂單查詢</b></p><p>  查詢訂單概要信息主要從訂單主表tb_order中根據(jù)當(dāng)前登錄的用戶名獲取訂單信息。 在訂單查詢頁面中,單擊“訂單編號(hào)”可以進(jìn)入到訂單詳細(xì)信息的查詢。在訂單詳細(xì)查詢中列出了訂單號(hào)、用戶地址、用戶郵編、用戶電話以及用戶所購圖書的編號(hào)、名稱、數(shù)量、價(jià)

93、格等一系列信息,向用戶提供了一種參看核實(shí)訂單的功能。訂單詳細(xì)查詢的運(yùn)行頁面如圖5.9所示。</p><p>  圖5.9 詳細(xì)訂單查詢</p><p>  5.10后臺(tái)登錄實(shí)現(xiàn)過程</p><p>  在網(wǎng)站前臺(tái)首頁的底部提供了后臺(tái)管理員登錄的入口,登錄是管理員輸入正確的用戶名和密碼登錄到后臺(tái)。在登錄時(shí),如果用戶名或密碼為空,系統(tǒng)將通過JavaScript進(jìn)行判斷并

94、給予提示信息。為了網(wǎng)站的安全,防止一些不法分子的故意破壞在網(wǎng)站的后臺(tái)設(shè)計(jì)了用于檢驗(yàn)用戶身份的文件safe.jsp。當(dāng)用戶沒有正確登錄的時(shí)候彈出“您還沒有登錄”的提示對(duì)話框。確定后退出后臺(tái)頁面回到首頁。后臺(tái)登錄頁面的運(yùn)行結(jié)果如圖5.10所示。 </p><p>  圖5.10 后臺(tái)登錄窗口</p><p>  5.11 圖書管理實(shí)現(xiàn)的過程</p><p>  圖書管

95、理模塊主要實(shí)現(xiàn)了對(duì)圖書信息的管理,主要包括分頁顯示圖書信息,添加圖書信息,修改圖書信息,刪除圖書信息等。</p><p>  a) 分頁顯示圖書信息</p><p>  分頁顯示圖書信息是圖書管理的首頁,主要是將數(shù)據(jù)表中的圖書信息以列表的方式顯示,除此之外還要添加修改和刪除的超鏈接,方便后臺(tái)對(duì)圖書的修改和刪除。在添加圖書信息欄的左半部是專門為用戶提供的提示信息,這樣做使得網(wǎng)站更人性化。分頁

96、顯示圖書信息的頁面運(yùn)行結(jié)果如圖5.11所示。</p><p>  在分頁顯示圖書信息頁面中主要顯示圖書的ISBN號(hào)、圖書名稱、出版社、是否是新書、是否是推薦的書等信息,圖書的其他信息,可以通過單擊圖書名稱超鏈接進(jìn)入圖書詳細(xì)頁面的查詢。實(shí)現(xiàn)圖書查詢的代碼比較簡單,這里不做專門的介紹。 </p><p>  圖5.11 利云網(wǎng)上書店后臺(tái)首頁</p><p><b&

97、gt;  b) 添加圖書信息</b></p><p>  在圖書管理首頁中單擊“添加圖書信息”超鏈接即可進(jìn)入到添加圖書信息頁面。添加圖書信息頁面主要用于向數(shù)據(jù)庫中添加新的圖書信息。在添加圖書信息時(shí),為了防止用戶輸入空的不真實(shí)的信息,利云網(wǎng)上書店采用了JavaScript編寫自定義函數(shù)檢測用戶輸入的圖書信息。</p><p>  此外為了保證圖書信息的唯一性,在保存圖書信息前需要

98、先根據(jù)用戶輸入的圖書ISBN號(hào)判斷圖書信息是否存在,如果存在則給予提示信息并返回,否者將圖書信息保存到數(shù)據(jù)表中。添加圖書信息頁面的運(yùn)行結(jié)果如圖5.12。</p><p>  保存圖書信息頁面manage\book_add_deal.jsp的關(guān)鍵代碼如下:</p><p>  ResultSet rs=connDB.executeQuery(“select *from tb_bookinfo

99、 where “”+ISBN=+“””);</p><p>  If(rs.next()){</p><p>  Out.println(“script language=’javascript’>alert(‘該圖書信息已經(jīng)添加!’);</p><p>  History.back(-1);</script>”);</p><

100、p>  圖5.12 添加圖書的運(yùn)行結(jié)果</p><p><b>  c) 修改圖書信息</b></p><p>  在圖書管理首頁中單擊想要修改的圖書信息后面的修改圖標(biāo)就可以進(jìn)入到修改圖書信息頁面。修改圖書頁面主要用于修改指定圖書的基本信息。修改圖書信息的運(yùn)行結(jié)果如圖5.13 </p><p>  圖5.13 圖書修改信息頁面運(yùn)行結(jié)果&

101、lt;/p><p><b>  d) 刪除圖書信息</b></p><p>  在圖書管理首頁中單擊想要?jiǎng)h除的圖書信息后面的圖標(biāo)進(jìn)入到刪除圖書信息頁面。刪除圖書信息頁面主要用于刪除指定圖書的基本信息。刪除圖書信息頁面的運(yùn)行結(jié)果同修改圖書信息頁面的運(yùn)行結(jié)果相近。在編寫刪除圖書信息頁面book_del.jsp時(shí),首先需要判斷從圖書管理頁面?zhèn)鬟f的參數(shù)ISBN是否為空值,如果為空

102、值則說明用戶不是正常操作,需要將頁面重定向到圖書管理首頁,否則再根據(jù)參數(shù)ISBN查詢圖書的基本信息并顯示相應(yīng)的表單元素。</p><p>  5.12 用戶管理模塊的實(shí)現(xiàn)</p><p>  單擊后臺(tái)導(dǎo)航條中的“用戶管理”超鏈接就能進(jìn)入到用戶信息管理首頁。對(duì)于用戶的管理主要是查看用戶的基本信息和對(duì)于不良用戶的凍結(jié)和解凍。這些信息普通用戶是無權(quán)查看的。用戶管理的首頁運(yùn)行結(jié)果如圖5.14所示

103、。</p><p>  圖5.14 用戶信息管理頁面運(yùn)行結(jié)果</p><p>  5.13 訂單管理模塊的實(shí)現(xiàn)</p><p>  單擊后臺(tái)導(dǎo)航條中的“訂單管理”超鏈接即可進(jìn)入到訂單信息管理的首頁。訂單管理首頁主要實(shí)現(xiàn)分頁顯示訂單概要信息、起執(zhí)行訂單和查看訂單信息,分頁顯示訂單概要信息的實(shí)現(xiàn)過程同分頁顯示圖書信息的實(shí)現(xiàn)類似,所不同的是在訂單列表的執(zhí)行列中需要根據(jù)訂

104、單的狀態(tài)顯示不同的信息,如果訂單已被執(zhí)行則顯示“執(zhí)行”等文字,否則提供執(zhí)行訂單的圖標(biāo)。此外管理員無權(quán)對(duì)已經(jīng)存在的訂單進(jìn)行修改操作。訂單管理頁面的運(yùn)行結(jié)果如圖5.15所示。</p><p>  圖5.15 訂單管理運(yùn)行結(jié)果</p><p>  5.14公告管理實(shí)現(xiàn)過程</p><p>  單擊后臺(tái)導(dǎo)航條中的“公告管理”超連接進(jìn)入到公告信息管理的首頁。對(duì)于公告的管理主要

105、是查看公告信息、添加公告信息、刪除過時(shí)的公告信息,由于公告信息涉及到發(fā)布公告的時(shí)間,所以要及時(shí)修改公告信息。公告管理的運(yùn)行結(jié)果如圖5.16所示。</p><p>  圖5.16 公告運(yùn)行結(jié)果</p><p>  5.15退出系統(tǒng)的實(shí)現(xiàn)</p><p>  網(wǎng)站后臺(tái)對(duì)于整個(gè)網(wǎng)站的正常運(yùn)行起著重要的重要。當(dāng)網(wǎng)站管理員對(duì)網(wǎng)站維護(hù)工作完成以后,必須推出系統(tǒng),否則很容易被不法

106、分子趁機(jī)進(jìn)入,后果不堪設(shè)想。要想實(shí)現(xiàn)這個(gè)功能很簡單只要單擊“推出”超鏈接,連接到logout.jsp頁面就可以了。Logout.jsp頁面主要是將保存有管理員信息的Session變量清空,將頁面重定向到網(wǎng)站首頁前臺(tái)即可。關(guān)鍵代碼如下:</p><p>  session.invalidate();</p><p>  response.sendRedirect(“index.jsp”);&

107、lt;/p><p><b>  6 運(yùn)行效果檢測</b></p><p>  系統(tǒng)編碼完成之后,經(jīng)過運(yùn)行測試,整體安全性和易用性都表現(xiàn)良好,具體表現(xiàn)在如下幾方面:</p><p>  a) 在第一次訪問頁面時(shí)需要一段時(shí)間的等待,這是由于JSP本身的“第一次進(jìn)行編譯”的機(jī)制決定的,在此之后,頁面的訪問速度就非常快了,排除網(wǎng)絡(luò)方面的原因外,基本上發(fā)出

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論