Gogo購(gòu)物商城-網(wǎng)站商城畢業(yè)論文

Gogo購(gòu)物商城-網(wǎng)站商城畢業(yè)論文

ID:16410754

大?。?.29 MB

頁(yè)數(shù):63頁(yè)

時(shí)間:2018-08-09

上傳者:U-8635
Gogo購(gòu)物商城-網(wǎng)站商城畢業(yè)論文_第1頁(yè)
Gogo購(gòu)物商城-網(wǎng)站商城畢業(yè)論文_第2頁(yè)
Gogo購(gòu)物商城-網(wǎng)站商城畢業(yè)論文_第3頁(yè)
Gogo購(gòu)物商城-網(wǎng)站商城畢業(yè)論文_第4頁(yè)
Gogo購(gòu)物商城-網(wǎng)站商城畢業(yè)論文_第5頁(yè)
資源描述:

《Gogo購(gòu)物商城-網(wǎng)站商城畢業(yè)論文》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)

2014屆畢業(yè)設(shè)計(jì)(論文)計(jì)算機(jī)系2014屆畢業(yè)設(shè)計(jì)(論文)材料清單班級(jí):學(xué)號(hào):姓名:性別:指導(dǎo)老師:畢業(yè)設(shè)計(jì)(論文)題目:Gogo購(gòu)物商城!序號(hào)資料名稱1畢業(yè)設(shè)計(jì)(論文)課題申報(bào)表(學(xué)生)2畢業(yè)設(shè)計(jì)(論文)任務(wù)書3畢業(yè)設(shè)計(jì)(論文)開題報(bào)告4畢業(yè)設(shè)計(jì)(論文)正文5畢業(yè)設(shè)計(jì)(論文)成績(jī)?cè)u(píng)定表(含答辯記錄)6畢業(yè)設(shè)計(jì)(論文)中期學(xué)生自查表1 2014屆畢業(yè)設(shè)計(jì)(論文)畢業(yè)設(shè)計(jì)(論文)任務(wù)書系名稱:計(jì)算機(jī)系姓名性別專業(yè)班級(jí)學(xué)號(hào)指導(dǎo)教師信息姓名聯(lián)系電話e-mail畢業(yè)設(shè)計(jì)(論文)題目Gogo購(gòu)物商城畢業(yè)設(shè)計(jì)(論文)主要內(nèi)容及目標(biāo)要求主要內(nèi)容:1、shell模塊(商城主要模塊,首頁(yè))2、登錄模塊(實(shí)現(xiàn)會(huì)員,賣家的登錄)3、注冊(cè)模塊(實(shí)現(xiàn)會(huì)員,賣家的注冊(cè))4、公共模塊(公共的css,javascript,servlet)5、商品管理模塊(實(shí)現(xiàn)商品的顯示,發(fā)布,下架)6、會(huì)員管理模塊(實(shí)現(xiàn)會(huì)員信息的修改)7、購(gòu)物模塊(實(shí)現(xiàn)簡(jiǎn)單的購(gòu)物流程)8、軟件測(cè)試實(shí)現(xiàn)的目標(biāo)要求:利用html,jsp,css和后臺(tái)服務(wù)器等相關(guān)技術(shù),實(shí)現(xiàn)對(duì)電子商務(wù)平臺(tái)會(huì)員、賣家和商品的增加,修改,和查看,可以實(shí)現(xiàn)簡(jiǎn)單的購(gòu)物流程,完成與前臺(tái)的交互功能,以及軟件測(cè)試,發(fā)現(xiàn)軟件漏洞,提出問(wèn)題,并組織團(tuán)隊(duì)一起解決,優(yōu)化軟件。畢業(yè)設(shè)計(jì)(論文)進(jìn)度安排時(shí)間安排預(yù)期完成內(nèi)容及目標(biāo)檢查方式2013.12-2014.1完成需求分析報(bào)告2014.1-2014.2創(chuàng)建數(shù)據(jù)庫(kù)演示2014.2-2014.3完成前臺(tái)頁(yè)面演示2014.3-2014.4完成前后臺(tái)交互,處理數(shù)據(jù)演示2014.4-2014.5數(shù)據(jù)維護(hù),系統(tǒng)測(cè)試演示1 2014屆畢業(yè)設(shè)計(jì)(論文)指導(dǎo)教師簽字:年月日專業(yè)教研室主任簽字:年月日系主任簽字:年月日注:1、本任務(wù)書一式三份,系、教師、學(xué)生各執(zhí)一份;2、學(xué)生須將此任務(wù)書作為附件,裝訂在畢業(yè)設(shè)計(jì)報(bào)告(論文)中。1 2014屆畢業(yè)設(shè)計(jì)(論文)畢業(yè)設(shè)計(jì)(論文)開題報(bào)告一、基本信息學(xué)生姓名班級(jí)學(xué)號(hào)系名稱)畢業(yè)設(shè)計(jì)(論文)題目Gogo購(gòu)物商城指導(dǎo)教師二、開題意義課題的現(xiàn)狀與發(fā)展趨勢(shì)縱觀全球電子商務(wù)市場(chǎng),各地區(qū)發(fā)展并不平衡,呈現(xiàn)出美國(guó)、歐盟、亞洲“三足鼎立”的局面。美國(guó)是世界最早發(fā)展電子商務(wù)的國(guó)家,同時(shí)也是電子商務(wù)發(fā)展最為成熟的國(guó)家,一直引領(lǐng)全球電子商務(wù)的發(fā)展,是全球電子商務(wù)成熟發(fā)達(dá)地區(qū)。歐盟電子商務(wù)的發(fā)展起步較美國(guó)晚,但發(fā)展速度較快,成為全球電子商務(wù)較為領(lǐng)先的地區(qū)。亞洲作為電子商務(wù)的新秀,市場(chǎng)潛力較大,但是近年的發(fā)展速度和所占份額并不理想,是全球電子商務(wù)的持續(xù)發(fā)展地區(qū)。目前大型企業(yè)主導(dǎo)的B2B成為其全球競(jìng)爭(zhēng)力的重要組成部分。B2B發(fā)展的特點(diǎn)是以大型企業(yè)為主導(dǎo),以集成供應(yīng)鏈管理為起點(diǎn),以降低成本為主要目標(biāo)。而且網(wǎng)上零售已成為發(fā)達(dá)國(guó)家主要零售渠道之一。據(jù)眾多長(zhǎng)期關(guān)注電子商務(wù)的分析師、觀察員以及零售店的管理人員都認(rèn)為在接下來(lái)這幾年實(shí)體店的業(yè)績(jī)必然下滑。課題的背景、意義;課題欲解決哪些方面問(wèn)題背景與意義:電子商務(wù)并非是一種剛誕生的事物。早在本世紀(jì)70年代,電子數(shù)據(jù)交換(EDI)和電子資金傳送(EFT)作為企業(yè)間電子商務(wù)應(yīng)用的系統(tǒng)雛什么是電子商務(wù)形,已經(jīng)出現(xiàn)。多年來(lái),大量的銀行、航空公司、連鎖店及制造業(yè)單位已建立了供方和客戶間的電子通信和處理關(guān)系。這種方式加快了供方處理速度,有助于實(shí)現(xiàn)最優(yōu)化管理,使得操作更有效率,并提高了對(duì)客戶服務(wù)的質(zhì)量。隨著Internet的高速發(fā)展,電子商務(wù)的旺盛生命力日益顯露,眼下,Internet已有5000萬(wàn)個(gè)用戶,并以每季度8%的速度遞增,約有500萬(wàn)臺(tái)主機(jī)連在Internet上。internet的強(qiáng)勁發(fā)展和網(wǎng)絡(luò)應(yīng)用在全球范圍內(nèi)的普及,為電子商務(wù)的發(fā)展奠定了良好的基礎(chǔ)。根據(jù)統(tǒng)計(jì),在網(wǎng)上銀行作一次資金交割,其成本只有柜臺(tái)交割的13%。Internet的發(fā)展在環(huán)境、技術(shù)和經(jīng)濟(jì)上都為電子商務(wù)創(chuàng)造了條件,電子商務(wù)作為Internet的一項(xiàng)最為重要的應(yīng)用系統(tǒng)已呈現(xiàn)在我們眼前了隨著經(jīng)濟(jì)的快速發(fā)展,“電子商務(wù)+快遞”也順應(yīng)了社會(huì)的低碳要求。欲解決的問(wèn)題:1、利用html+css+jsp技術(shù)實(shí)現(xiàn)前端主頁(yè)面模塊2、網(wǎng)絡(luò)間的通訊問(wèn)題1 2014屆畢業(yè)設(shè)計(jì)(論文)3、前后臺(tái)的交互性三、課題方案課題內(nèi)容Gogo購(gòu)物商城課題研究(設(shè)計(jì))思路、方法論述首先需要一個(gè)商城的首頁(yè),當(dāng)用戶操作時(shí),需要判斷用戶是否登錄,未登錄的話,需要先登錄,如果沒有賬號(hào),需要先注冊(cè),注冊(cè)成功后進(jìn)行登錄,登錄成功后,進(jìn)入主頁(yè),訪問(wèn)商品,同時(shí),將會(huì)員信息保存在session域中,方便調(diào)用會(huì)員信息。當(dāng)用戶發(fā)現(xiàn)商品的時(shí)候,可以直接付款或者加入購(gòu)物車,直接付款就是直接將信息傳入后臺(tái),進(jìn)行付款。加入購(gòu)物車,就是將商品信息存入購(gòu)物車表,當(dāng)用戶進(jìn)入購(gòu)物車頁(yè)面的時(shí)候,讀取后臺(tái)購(gòu)物車表中的數(shù)據(jù),然后選擇商品,付款。在賣家管理中,首先進(jìn)行登錄,如果賣家沒有賬號(hào),需要先注冊(cè),注冊(cè)成功后登錄,登錄之后可以進(jìn)行商品信息的修改,商品的發(fā)布和下架。課題預(yù)期目標(biāo)(成果)完成前后臺(tái)數(shù)據(jù)交互,實(shí)現(xiàn)簡(jiǎn)單的購(gòu)物流程課題進(jìn)度安排(時(shí)間階段、階段完成內(nèi)容)2013.12-2014.1完成需求分析2014.1-2014.2創(chuàng)建數(shù)據(jù)庫(kù)2014.2-2014.3完成前臺(tái)頁(yè)面2014.3-2014.4完成前后臺(tái)交互,處理數(shù)據(jù)2014.4-2014.5數(shù)據(jù)維護(hù),系統(tǒng)測(cè)試四、審核指導(dǎo)教師意見簽名:年月日系審核小組意見組長(zhǎng)簽名:年月日1 2014屆畢業(yè)設(shè)計(jì)(論文)畢業(yè)設(shè)計(jì)報(bào)告(論文)(2014屆)題目:Gogo購(gòu)物商城所屬系:班級(jí):學(xué)生姓名:學(xué)號(hào):同組成員:指導(dǎo)教師:1 2014屆畢業(yè)設(shè)計(jì)(論文)摘要縱觀全球電子商務(wù)市場(chǎng),各地區(qū)發(fā)展并不平衡,呈現(xiàn)出美國(guó)、歐盟、亞洲“三足鼎立”的局面。美國(guó)是世界最早發(fā)展電子商務(wù)的國(guó)家,同時(shí)也是電子商務(wù)發(fā)展最為成熟的國(guó)家,一直引領(lǐng)全球電子商務(wù)的發(fā)展,是全球電子商務(wù)成熟發(fā)達(dá)地區(qū)。歐盟電子商務(wù)的發(fā)展起步較美國(guó)晚,但發(fā)展速度較快,成為全球電子商務(wù)較為領(lǐng)先的地區(qū)。亞洲作為電子商務(wù)的新秀,市場(chǎng)潛力較大,但是近年的發(fā)展速度和所占份額并不理想,是全球電子商務(wù)的持續(xù)發(fā)展地區(qū)。關(guān)鍵詞:HTML;CSS;JAVASCRIPTE;JSP;ORACLE;JQUERY;AJAX1 2014屆畢業(yè)設(shè)計(jì)(論文)Abstract縱觀全球電子商務(wù)市場(chǎng),各地區(qū)發(fā)展并不平衡,呈現(xiàn)出美國(guó)、歐盟、亞洲“三足鼎立”的局面。美國(guó)是世界最早發(fā)展電子商務(wù)的國(guó)家,同時(shí)也是電子商務(wù)發(fā)展最為成熟的國(guó)家,一直引領(lǐng)全球電子商務(wù)的發(fā)展,是全球電子商務(wù)成熟發(fā)達(dá)地區(qū)。歐盟電子商務(wù)的發(fā)展起步較美國(guó)晚,但發(fā)展速度較快,成為全球電子商務(wù)較為領(lǐng)先的地區(qū)。亞洲作為電子商務(wù)的新秀,市場(chǎng)潛力較大,但是近年的發(fā)展速度和所占份額并不理想,是全球電子商務(wù)的持續(xù)發(fā)展地區(qū)。Throughouttheglobale-commercemarket,unevenregionaldevelopment,showingaAmerica,EU,Asia"asituationoftripartiteconfrontation"situation.USAistheworld'sfirstelectroniccommercedevelopmentstate,butalsothedevelopedcountriestothedevelopmentofelectroniccommerce,hasbeenleadingthedevelopmentofglobalelectroniccommerce,isaglobalelectroniccommercedevelopedarea.ThedevelopmentoftheelectroniccommercestartsrelativelyUSAlate,butthedevelopmentspeedisquick,themoretheworld'sleadinge-commercearea.ElectroniccommerceinAsiaasarookie,greatmarketpotential,butthepaceofdevelopmentinrecentyearsandtheshareisnotideal,isthesustainabledevelopmentofglobale-commerceareas.關(guān)鍵詞:HTML;CSS;JAVASCRIPTE;JSP;ORACLE;JQUERY;AJAXKeywords:HTML;CSS;JAVASCRIPTE;JSP;ORACLE;JQUERY;AJAX2 2014屆畢業(yè)設(shè)計(jì)(論文)第一章需求分析51.1、基本原理51.2、總體框圖5第二章前臺(tái)設(shè)計(jì)62.1、前臺(tái)總體設(shè)計(jì)62.2、前臺(tái)公共模塊設(shè)計(jì)62.3、前臺(tái)核心模塊設(shè)計(jì)82.4、前臺(tái)注冊(cè)模塊設(shè)計(jì)92.5、前臺(tái)會(huì)員管理模塊設(shè)計(jì)102.6、前臺(tái)商品管理模塊設(shè)計(jì)152.7、前臺(tái)登陸模塊設(shè)計(jì)182.8、前臺(tái)購(gòu)物模塊設(shè)計(jì)192.9、前臺(tái)整合設(shè)計(jì)21第三章軟件設(shè)計(jì)213.1、軟件總體架構(gòu)設(shè)計(jì)(MVC架構(gòu))213.2、后臺(tái)公共模塊設(shè)計(jì)213.3、后臺(tái)核心管理模塊設(shè)計(jì)323.4、后臺(tái)注冊(cè)模塊設(shè)計(jì)333.5、后臺(tái)會(huì)員管理模塊設(shè)計(jì)363.6、后臺(tái)商品管理模塊設(shè)計(jì)393.7、后臺(tái)登陸模塊設(shè)計(jì)433.8、后臺(tái)購(gòu)物模塊設(shè)計(jì)453.9、tomcat服務(wù)器簡(jiǎn)介473.10、oracle數(shù)據(jù)庫(kù)簡(jiǎn)介473.11、servlet運(yùn)行原理48第四章成果演示49結(jié)論55參考文獻(xiàn)56致謝5657 2014屆畢業(yè)設(shè)計(jì)(論文)引言近年來(lái),隨著Internet的迅速崛起,互聯(lián)網(wǎng)已日益成為收集提供信息的最佳渠道并逐步進(jìn)入傳統(tǒng)的流通領(lǐng)域,互聯(lián)網(wǎng)的跨地域性和可交互性使其在與傳統(tǒng)媒體行業(yè)和傳統(tǒng)貿(mào)易行業(yè)的競(jìng)爭(zhēng)中具不可抗拒的優(yōu)勢(shì),因而發(fā)展十分迅速。在電子商務(wù)在中國(guó)逐步興起的大環(huán)境下,建立利用互聯(lián)網(wǎng)開拓銷售渠道,幫助企業(yè)及時(shí)調(diào)整商品結(jié)構(gòu),協(xié)助經(jīng)銷商打開貨源的信息門戶成為解決信息流通不暢的有效方案。毫無(wú)疑問(wèn),電子商務(wù)有利于企業(yè)轉(zhuǎn)換經(jīng)營(yíng)機(jī)制,建立現(xiàn)代企業(yè)制度,提高企業(yè)的銷售水平和競(jìng)爭(zhēng)力。目前中國(guó)的Internet已經(jīng)從起步階段進(jìn)入了高速發(fā)展階段,根據(jù)計(jì)算機(jī)行業(yè)年鑒最新的統(tǒng)計(jì)和預(yù)測(cè),隨著DSL技術(shù)和電纜調(diào)制解調(diào)器進(jìn)入當(dāng)?shù)厥袌?chǎng),亞洲和歐洲國(guó)家的互聯(lián)網(wǎng)普及率將逐漸趕上美國(guó)。隨著對(duì)互聯(lián)網(wǎng)基礎(chǔ)設(shè)施投資的加強(qiáng),再加上龐大的人口數(shù)量,中國(guó)和印度的互聯(lián)網(wǎng)用戶數(shù)量到2010年將超過(guò)美國(guó)。中國(guó)的Internet,發(fā)展速度快,潛力大。在2000年1月18日發(fā)表的《中國(guó)互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計(jì)報(bào)告》給出的數(shù)據(jù)中,我國(guó)互聯(lián)網(wǎng)用戶到去年年底已經(jīng)達(dá)到890萬(wàn),國(guó)內(nèi)外專家預(yù)測(cè)五年內(nèi)我國(guó)互聯(lián)網(wǎng)用戶數(shù)將超過(guò)美國(guó)成為世界第一。當(dāng)前中國(guó)的電子商務(wù)存在很多局限性,例如:中國(guó)大中企業(yè)擁有網(wǎng)址百分率只在35.6%,其中90%的網(wǎng)站是靜態(tài)頁(yè)面的,85%的網(wǎng)站半年以上才有更新內(nèi)容。應(yīng)該說(shuō)目前我國(guó)的網(wǎng)絡(luò)規(guī)模增長(zhǎng)速度非常快,電子商務(wù)的興起也為加速互聯(lián)網(wǎng)的發(fā)展起了強(qiáng)大的推進(jìn)作用。一般互聯(lián)網(wǎng)的發(fā)展需經(jīng)歷以下兩個(gè)個(gè)階段:ICP模式?;ヂ?lián)網(wǎng)內(nèi)容提供商,成功范例為YAHOO,這種以媒體提供信息帶動(dòng)經(jīng)濟(jì)發(fā)展的模式,其特點(diǎn)是創(chuàng)業(yè)人大多是出于對(duì)互聯(lián)網(wǎng)技術(shù)的個(gè)人興趣,并非為了賺錢,訪問(wèn)率高就標(biāo)志成功,隨著網(wǎng)站變?yōu)槊襟w靠廣告開始盈利,稱為互聯(lián)網(wǎng)媒體階段。這一類網(wǎng)站需要豐富的不斷更新的多層面信息吸引訪問(wèn)者以逐步具備盈利的基本條件,顯然與鞋業(yè)行業(yè)的特點(diǎn)不相符,鞋業(yè)市場(chǎng)是有相對(duì)固定的客戶和商品流通渠道的流通領(lǐng)域,有行業(yè)的專有信息,故互聯(lián)網(wǎng)的媒體特性僅可作為德記鞋鋪電子商務(wù)網(wǎng)在行業(yè)中的新型的信息傳播方式。BtoC時(shí)代。面向最終消費(fèi)者的電子商務(wù),成功范例為亞馬遜、DELL電腦,標(biāo)志著互聯(lián)網(wǎng)的商務(wù)時(shí)代的來(lái)臨。2005年中國(guó)國(guó)內(nèi)的BtoC的市場(chǎng)異?;钴S,易趣淘寶的迅速崛起,告訴大家商業(yè)運(yùn)作是可行的,人類社會(huì)的商業(yè)發(fā)展是從最初的易貨貿(mào)易到零售再到企業(yè)的大宗交易,互聯(lián)網(wǎng)也從零售開始,網(wǎng)上零售體現(xiàn)了互聯(lián)網(wǎng)的互動(dòng)特性,同時(shí)減少了交易的流通環(huán)節(jié)。BtoC模式的直接受益人是最終消費(fèi)者,由于互聯(lián)網(wǎng)的互動(dòng)特性,任何人可以通過(guò)網(wǎng)絡(luò)挑選商品,貨比三家,討價(jià)還價(jià)。57 2014屆畢業(yè)設(shè)計(jì)(論文)第一章需求分析1.1、基本原理本設(shè)計(jì)分為前臺(tái)和后臺(tái)兩個(gè)部分,前臺(tái)通過(guò)HTML靜態(tài)頁(yè)面,CSS樣式,JSP動(dòng)態(tài)頁(yè)面,JAVASCRIPT腳本和AJAX異步通訊,實(shí)現(xiàn)前后臺(tái)的交互,獲取后臺(tái)數(shù)據(jù),讓后臺(tái)數(shù)據(jù)直觀的顯示給用戶,讓用戶可以看到這些數(shù)據(jù),并執(zhí)行相關(guān)操作。后臺(tái)通過(guò)servlet技術(shù),對(duì)前臺(tái)的請(qǐng)求予以應(yīng)答,通過(guò)邏輯業(yè)務(wù)處理之后,將將數(shù)據(jù)封裝好后通過(guò)前臺(tái)頁(yè)面顯示給用戶。后臺(tái)主要承擔(dān)的是處理數(shù)據(jù),1.2、總體框圖商品管理模塊(顯示商品信息)獲得商品詳細(xì)信息查看商品按照搜索獲得商品搜索商品購(gòu)物模塊對(duì)商品不滿意直接購(gòu)買購(gòu)買成功添加到購(gòu)物車進(jìn)入購(gòu)物車結(jié)算繼續(xù)瀏覽繼續(xù)購(gòu)物會(huì)員管理模塊賣家管理買家管理查看或修改信息注銷修改成功賣家登錄賣家未登錄注冊(cè)賣家沒有賬號(hào)查看,修改信息或發(fā)布商品Shell模塊(顯示主頁(yè)信息)登錄模塊用戶未登錄注冊(cè)模塊沒有賬號(hào)注冊(cè)成功登錄成功沒有賬號(hào)用戶已登錄57 2014屆畢業(yè)設(shè)計(jì)(論文)第二章前臺(tái)設(shè)計(jì)2.1、前臺(tái)總體設(shè)計(jì)前臺(tái)設(shè)計(jì)分為前臺(tái)前臺(tái)公告模塊設(shè)計(jì),前臺(tái)核心模塊設(shè)計(jì),前臺(tái)登陸模塊設(shè)計(jì),前臺(tái)注冊(cè)模塊設(shè)計(jì),前臺(tái)會(huì)員管理模塊設(shè)計(jì),前臺(tái)商品管理模塊設(shè)計(jì)和購(gòu)物模塊這七個(gè)模塊。前臺(tái)公告模塊設(shè)計(jì)主要負(fù)責(zé)公告的CSS樣式,javascript腳本,和公告的html頁(yè)面。前臺(tái)核心模塊負(fù)責(zé)的是主頁(yè)商品的顯示和各模塊導(dǎo)航。前臺(tái)登陸模塊設(shè)計(jì)主要負(fù)責(zé)前臺(tái)用戶的登陸和賣家的登陸。前臺(tái)注冊(cè)模塊主要負(fù)責(zé)前臺(tái)會(huì)員的注冊(cè)和賣家的注冊(cè)。前臺(tái)會(huì)員管理模塊主要負(fù)責(zé)前臺(tái)會(huì)員信息的顯示和修改等。前臺(tái)商品管理模塊主要負(fù)責(zé)的是前臺(tái)商品信息的顯示。前臺(tái)購(gòu)物模塊主要負(fù)責(zé)的是用戶實(shí)現(xiàn)購(gòu)物功能。2.2、前臺(tái)公共模塊設(shè)計(jì)前臺(tái)公告模塊主要包含了公告的CSS,javascript,和網(wǎng)頁(yè)。公共的CSS主要包括網(wǎng)站的頭樣式,網(wǎng)站logo的樣式,對(duì)于超鏈接各模式的設(shè)置,和驗(yàn)證碼的樣式。公共的javascript的包含ajax對(duì)象的封裝,封裝的ajax對(duì)象是用來(lái)執(zhí)行ajax異步通信的對(duì)象,他封裝了解決瀏覽器兼容性問(wèn)題,他的具體實(shí)現(xiàn)如下functionMyAjax(){//定義varhttpRequest;//設(shè)置異步方式varasynch=true;//定義調(diào)用結(jié)果varmessage="";this.getMessage=function(){returnmessage;}this.setAsynch=function(newAsynch){asynch=newAsynch;}//私有方法創(chuàng)建XMLHttpRequest對(duì)象functioncreateXMLHttpRequest(){if(window.XMLHttpRequest){//說(shuō)明當(dāng)前瀏覽器支持XMLHttpRequest對(duì)象httpRequest=newXMLHttpRequest();}else{//如果不支持說(shuō)明是IE7及以下版本//應(yīng)該通過(guò)嘗試法來(lái)創(chuàng)建此對(duì)象varnames=["Microsoft.XMLHTTP","MSXML2.XMLHTTP"];for(vari=0;i=0){rurl=url+"&t="+newDate();}else{rurl=url+"?t="+newDate();}returnrurl;}this.sendAjax=function(url,method,params,callBack){if(url==null||url=="undefined"){message="url必須要填寫!";returnfalse;}url=getUrl(url);if(method==null||method=="undefined"){//默認(rèn)get方式method="get";}method=method.toLowerCase();//統(tǒng)一轉(zhuǎn)換成小寫//創(chuàng)建對(duì)象createXMLHttpRequest();if(httpRequest==null||httpRequest=="undefined"){message="XMLHttpRequest創(chuàng)建失敗,請(qǐng)開啟ActiveX控件再嘗試!";returnfalse;}//注冊(cè)回調(diào)httpRequest.onreadystatechange=function(){if(httpRequest.readyState==4&&httpRequest.status==200){//****************callBack(httpRequest.responseText);}else{message="服務(wù)器返回的代碼:"+httpRequest.status;}}//打開請(qǐng)求httpRequest.open(method,url,asynch);57 2014屆畢業(yè)設(shè)計(jì)(論文)//設(shè)置一些基本參數(shù)(解決瀏覽器緩存數(shù)據(jù)的問(wèn)題)httpRequest.setRequestHeader("Cache-Control","no-cache");httpRequest.setRequestHeader("Expires","0");httpRequest.setRequestHeader("Pragma","no-cache");//判斷if(method=="post"){//如果是post請(qǐng)求設(shè)置頭信息httpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");//最好要進(jìn)行參數(shù)驗(yàn)證httpRequest.send(params);}else{//如果是gethttpRequest.send(null);}}}。還包含了jquery的運(yùn)行腳本。公共的頁(yè)面包含了導(dǎo)航頁(yè)面和網(wǎng)站的頭部。2.3、前臺(tái)核心模塊設(shè)計(jì)前臺(tái)核心模塊負(fù)責(zé)的是主頁(yè)商品的顯示和各模塊導(dǎo)航。他包含了網(wǎng)站的框架,頭部固定,底部有變化,頭部是通過(guò)jsp指令動(dòng)態(tài)包含的公共的jsp頁(yè)面,他的具體實(shí)現(xiàn)是:${emptyhyglVo.yhm?"登陸":"歡迎h(huán)yglVo.yhm"}免費(fèi)注冊(cè)聯(lián)系客服賣家中心商品分類收藏夾購(gòu)物車我的Gogo首頁(yè)

。底部是在框架中處理后臺(tái)發(fā)回的數(shù)據(jù),動(dòng)態(tài)加載商品信息。57 2014屆畢業(yè)設(shè)計(jì)(論文)2.4、前臺(tái)注冊(cè)模塊設(shè)計(jì)前臺(tái)注冊(cè)模塊主要負(fù)責(zé)的會(huì)員注冊(cè)和賣家注冊(cè)。注冊(cè)模塊的驗(yàn)證是通過(guò)ajax異步通信的形式,讓用戶可以在服務(wù)器處理請(qǐng)求的同時(shí)操作頁(yè)面。他的具體實(shí)現(xiàn)是://失去焦點(diǎn)的時(shí)候驗(yàn)證用戶名functionyzYhm(obj){if(trim(obj.value)!=""){varurl="/gogo/servlet/yzyhmservlet?yhm="+$("yhm").value;varajax=newMyAjax();ajax.sendAjax(url,"get",null,clYhm);}else{$("yhms").innerHTML="*";}}//顯示處理結(jié)果functioncljg(rstr,id){if(rstr){vars_id=id+"s";varflag=rstr.split(":")[0];varmsg=rstr.split(":")[1];if("true"==flag){$(s_id).style.color="#00FF00";$(id).style.borderColor="#00FF00";}else{57 2014屆畢業(yè)設(shè)計(jì)(論文)$(s_id).style.color="#FF0000";$(id).style.borderColor="#FF0000";$(id).focus();$(id).select();}$(s_id).innerHTML=msg;}}。上述實(shí)現(xiàn)中,頁(yè)面通過(guò)綁定的事件來(lái)調(diào)用javascript腳本。發(fā)送ajax請(qǐng)求,后臺(tái)處理之后發(fā)揮rstr字符串。前臺(tái)通過(guò)對(duì)rstr字符串的解析來(lái)實(shí)現(xiàn)具體操作。2.5、前臺(tái)會(huì)員管理模塊設(shè)計(jì)前臺(tái)會(huì)員管理模塊主要負(fù)責(zé)的是前臺(tái)會(huì)員信息的查詢和修改。他是通過(guò)jsp頁(yè)面處理請(qǐng)求中的數(shù)據(jù)之后動(dòng)態(tài)改變頁(yè)面的相關(guān)信息。主要分為會(huì)員信息處理和賣家信息處理這兩塊。處理會(huì)員信息的具體實(shí)現(xiàn)是:<%@includefile="/view/shell/top.jsp"%>設(shè)置頭像
個(gè)人信息修改個(gè)人信息57 2014屆畢業(yè)設(shè)計(jì)(論文)賬戶余額充值注銷
用戶名:${loginVo.yhm}身份證號(hào)碼:${loginVo.sfzhm}真實(shí)姓名:${loginVo.zsxm}性別:${loginVo.xb}電話號(hào)碼:${loginVo.dhhm}賬戶余額:${loginVo.zhje}email:${loginVo.email}地址:${loginVo.dz}修改用戶名:*設(shè)置新密碼:*確認(rèn)密碼:57 2014屆畢業(yè)設(shè)計(jì)(論文)*修改身份證號(hào)碼:修改真實(shí)姓名:驗(yàn)證碼:*${msg}實(shí)現(xiàn)賣家信息修改的具體實(shí)現(xiàn)是:賣家信息57 2014屆畢業(yè)設(shè)計(jì)(論文)修改賣家信息發(fā)布商品顯示所有商品注銷賣家名:${mjxxVo.mjyhm}商品總數(shù):${spzs}賣家余額:${mjxxVo.mjsr}
賣家名:店鋪logo:密碼:押金:
輸入商品名:輸入價(jià)格:輸入庫(kù)存量:輸入款式按","號(hào)隔開:商品類型:請(qǐng)選擇情侶服裝57 2014屆畢業(yè)設(shè)計(jì)(論文)情侶飾品兒童服裝兒童玩具上傳商品圖片:上傳商品詳細(xì)圖片:
顯示處理的會(huì)員信息和賣家信息基本上相同,但是在賣家信息這一快,他比會(huì)員信息多了一項(xiàng)發(fā)布商品的業(yè)務(wù)。他通過(guò)表單元素提交的形式將商品的各種信息以及圖片上傳。后臺(tái)接受到之后,保存到數(shù)據(jù)庫(kù)中。效果圖如下:57 2014屆畢業(yè)設(shè)計(jì)(論文)2.6、前臺(tái)商品管理模塊設(shè)計(jì)前臺(tái)商品管理模塊主要負(fù)責(zé)的是前臺(tái)商品信息的顯示。主要包含,顯示詳細(xì)商品和顯示分類商品。顯示詳細(xì)商品是通過(guò)核心模塊中的商品信息拼裝成url地址,發(fā)送到后臺(tái),后臺(tái)對(duì)以上數(shù)據(jù)進(jìn)行處理,返回應(yīng)答信息,前臺(tái)將得到的信息進(jìn)行解析。得到顯示詳細(xì)商品的業(yè)務(wù)。顯示分類商品是通過(guò)拼裝url將類型名發(fā)送到后臺(tái),后臺(tái)將所有符合條件的商品包裝起來(lái)打回前臺(tái),前臺(tái)處理之后,拼裝成JSP的頁(yè)面。他的具體實(shí)現(xiàn)是:店鋪:${xxspVo.mjhym}${xxspVo.spm}57 2014屆畢業(yè)設(shè)計(jì)(論文)${xxspVo.spid}價(jià)格:¥:${xxspVo.spjg}銷售量:${xxspVo.xsl}款式:數(shù)量:   庫(kù)存(${xxspVo.kcl})
商家信息
${xxspVo.mjhym}
銷售量:${xxspVo.xsl}
庫(kù)存量:${xxspVo.kcl}
57 2014屆畢業(yè)設(shè)計(jì)(論文)${xxspVo.spxx}bbb效果圖如下:57 2014屆畢業(yè)設(shè)計(jì)(論文)2.7、前臺(tái)登陸模塊設(shè)計(jì)前臺(tái)登陸模塊主要負(fù)責(zé)用戶的登陸和賣家的登陸。他通過(guò)ajax異步通信,將表單元素發(fā)送到后臺(tái),后臺(tái)處理信息之后返回的提示信息,是放在一個(gè)特定的div中的,此div一開始是隱藏的,只有當(dāng)后臺(tái)發(fā)回錯(cuò)誤信息的時(shí)候才會(huì)把錯(cuò)誤信息msg顯示出來(lái)。他的具體實(shí)現(xiàn)是:歡迎登陸郵箱/用戶名/已驗(yàn)證手機(jī)密碼${msg}忘記密碼?|注冊(cè)新賬號(hào)|意見反饋

57 2014屆畢業(yè)設(shè)計(jì)(論文)效果圖如下:2.8、前臺(tái)購(gòu)物模塊設(shè)計(jì)前臺(tái)購(gòu)物模塊主要負(fù)責(zé)的是用戶實(shí)現(xiàn)購(gòu)物功能。他主要負(fù)責(zé)的是購(gòu)物車,和結(jié)算這兩個(gè)頁(yè)面。在購(gòu)物車中,當(dāng)用戶選中商品的同時(shí)購(gòu)物車底部的總金額會(huì)發(fā)生變化。這是通過(guò)ajax異步通訊的形式來(lái)完成的。他的具體實(shí)現(xiàn)是:<%@includefile="/view/shell/top.jsp"%>全選商品款式價(jià)格數(shù)量小計(jì)操作57 2014屆畢業(yè)設(shè)計(jì)(論文)賣家:${gwc.mjyhm}${gwc.spm}${gwc.ks}${gwc.jg}${gwc.sl}${gwc.xj} 0.00總計(jì):¥ 
效果圖如下:57 2014屆畢業(yè)設(shè)計(jì)(論文)2.9、前臺(tái)整合設(shè)計(jì)首先根據(jù)mvc架構(gòu),分模塊處理。然后再導(dǎo)入公共的css,javascript和公共頁(yè)面。然后根據(jù)不同的結(jié)構(gòu)將前臺(tái)頁(yè)面各部分整合出來(lái)。同時(shí)提煉公共部分,將他寫入到公共模塊的CSS和javascript中。這樣可以節(jié)省網(wǎng)站的成本,提高網(wǎng)站的運(yùn)行速度。第三章軟件設(shè)計(jì)3.1、軟件總體架構(gòu)設(shè)計(jì)(MVC架構(gòu))本網(wǎng)站是居于MVC架構(gòu)來(lái)開發(fā)的。首先有一組攔截器和監(jiān)聽器會(huì)工作,他們負(fù)責(zé)處理前臺(tái)發(fā)送的請(qǐng)求,過(guò)濾出垃圾信息,和惡意攻擊。MVC(ModelViewController)是一種架構(gòu)設(shè)計(jì)模式,該模式主要應(yīng)用于圖形化用戶界面(GUI)應(yīng)用程序。MVC由Model(模型)、View(視圖)及Controller(控制器)三部分組成。MVC是一種軟件設(shè)計(jì)典范,用于組織代碼用一種業(yè)務(wù)邏輯和數(shù)據(jù)顯示分離的方法,這個(gè)方法的假設(shè)前提是如果業(yè)務(wù)邏輯被聚集到一個(gè)部件里面,而且界面和用戶圍繞數(shù)據(jù)的交互能被改進(jìn)和個(gè)性化定制而不需要重新編寫業(yè)務(wù)邏輯MVC被獨(dú)特的發(fā)展起來(lái)用于映射傳統(tǒng)的輸入、處理和輸出功能在一個(gè)邏輯的圖形化用戶界面的結(jié)構(gòu)中。后臺(tái)數(shù)據(jù)是保存在Oracle數(shù)據(jù)庫(kù)中。本系統(tǒng)分為會(huì)員表,商品表,商品類型表(是商品類型種類表的二級(jí)菜單表),商品類型種類表,賣家表,購(gòu)物車表,商品詳細(xì)圖片表,會(huì)員頭像表,省表,市表,縣表。3.2、后臺(tái)公共模塊設(shè)計(jì)后臺(tái)公共模塊主要負(fù)責(zé)對(duì)公共數(shù)據(jù)的提煉和封裝,得到一組公共的對(duì)象,共其他模塊一起使用。他包含處理密碼問(wèn)題的加密業(yè)務(wù),驗(yàn)證碼的獲取和與數(shù)據(jù)庫(kù)相關(guān)的操作。處理數(shù)據(jù)庫(kù)的具體實(shí)現(xiàn)是://配置文件名稱privateStringiniFileName="jdbc.properties";//連接數(shù)據(jù)庫(kù)privateStringdriver="oracle.jdbc.driver.OracleDriver";privateStringurl="jdbc:oracle:thin:@localhost:1521:ORCL";privateStringuser="suzhihao";privateStringpassword="niit";//定義連接屬性57 2014屆畢業(yè)設(shè)計(jì)(論文)privateConnectionconnect=null;//與連接有關(guān)三個(gè)通道privateStatementstmt=null;privatePreparedStatementpstmt=null;privateCallableStatementcstmt=null;publicstaticfinalStringstmtType="stmt";publicstaticfinalStringpstmtType="pstmt";publicstaticfinalStringcstmtType="cstmt";//定義參數(shù)類型的靜態(tài)常量值publicstaticfinalStringvarCharType="VARCHAR";publicstaticfinalStringintType="INTEGER";publicstaticfinalStringdoubleType="DOUBLE";publicstaticfinalStringdateType="DATE";publicstaticfinalStringtimeType="TIMESTAMP";//定義全局的結(jié)果集privateResultSetrs=null;//在構(gòu)造方法中對(duì)屬性進(jìn)行初始化賦值操作publicOperateOracle(){//初始化連接initConnect();}//數(shù)據(jù)池建立連接privatevoidinitConnectFormDataSource(){try{InitialContextcontext=newInitialContext();DataSourcesource=(DataSource)context.lookup("java:comp/env/jdbc/oracleds");this.connect=source.getConnection();//設(shè)置手動(dòng)提交事務(wù)this.connect.setAutoCommit(false);this.stmt=this.connect.createStatement();}catch(SQLExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}catch(NamingExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}57 2014屆畢業(yè)設(shè)計(jì)(論文)}//建立連接privatevoidinitConnect(){try{Class.forName(driver);this.connect=DriverManager.getConnection(url,user,password);//設(shè)置手動(dòng)提交事務(wù)this.connect.setAutoCommit(false);this.stmt=connect.createStatement();}catch(ClassNotFoundExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}catch(SQLExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}//需要調(diào)用者控制事務(wù)的兩個(gè)方法//提交方法privatevoidcommit(){try{this.connect.commit();}catch(SQLExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}//回滾事務(wù)privatevoidrollBack(){try{this.connect.rollback();}catch(SQLExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}//返回查詢出來(lái)的結(jié)果集的第一行一列的字符串publicStringgetRsFirstRowFirstColumn(Stringsql){Stringstr="";rs=select(sql);try{if(rs.next()){str=rs.getString(1);}57 2014屆畢業(yè)設(shè)計(jì)(論文)}catch(SQLExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}returnstr;}//返回預(yù)編譯通道查詢出來(lái)的結(jié)果集的第一行一列的字符串publicStringgetRsFirstRowFirstColumn(Stringsql,Stringtype,ListcsList){Stringstr="";rs=select(sql,type,csList);try{if(rs.next()){str=rs.getString(1);}}catch(SQLExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}returnstr;}//返回結(jié)果集的第一行的集合publicListgetRsFirstRow(Stringsql){Listlist=null;rs=select(sql);try{if(rs.next()){list=newArrayList();ResultSetMetaDatarsmd=rs.getMetaData();intcolumnCount=rsmd.getColumnCount();for(inti=1;i<=columnCount;i++){Stringtype=rsmd.getColumnTypeName(i);//需要判斷一個(gè)進(jìn)度intscale=rsmd.getScale(i);list.add(getResultSetValue(rs,i,type,scale));}}}catch(SQLExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}returnlist;}//返回通過(guò)預(yù)編譯通道得到結(jié)果集第一行的集合57 2014屆畢業(yè)設(shè)計(jì)(論文)publicListgetRsFirstRow(Stringsql,Stringtype,ListcsList){Listlist=null;rs=select(sql,type,csList);try{if(rs.next()){list=newArrayList();ResultSetMetaDatarsmd=rs.getMetaData();intcolumnCount=rsmd.getColumnCount();for(inti=1;i<=columnCount;i++){Stringptype=rsmd.getColumnTypeName(i);//需要判斷一個(gè)進(jìn)度intscale=rsmd.getScale(i);list.add(getResultSetValue(rs,i,ptype,scale));}}}catch(SQLExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}returnlist;}//返回查詢的sql對(duì)應(yīng)的rs結(jié)果集的條數(shù)publicintgetRsRowCount(Stringsql){intnumber=0;Stringpsql="selectcount(*)from("+sql+")tmpsql";rs=select(psql);try{if(rs.next()){number=rs.getInt(1);}}catch(SQLExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}returnnumber;}//返回預(yù)編譯通道查詢的sql對(duì)應(yīng)的rs結(jié)果集的條數(shù)publicintgetRsRowCount(Stringsql,Stringtype,ListcsList){intnumber=0;Stringpsql="selectcount(*)from("+sql+")tmpsql";rs=select(psql,type,csList);try{if(rs.next()){number=rs.getInt(1);57 2014屆畢業(yè)設(shè)計(jì)(論文)}}catch(SQLExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}returnnumber;}//定義一組與操作有關(guān)的方法//使用普通通道執(zhí)行的selectpublicResultSetselect(Stringsql){ResultSetprs=null;if(stmt!=null){try{prs=stmt.executeQuery(sql);}catch(SQLExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}returnprs;}//使用普通通道執(zhí)行的select//返回通過(guò)預(yù)編譯通道查詢到的結(jié)果集publicResultSetselect(Stringsql,Stringtype,ListcsList){ResultSetprs=null;if(type.equals(stmtType)){//說(shuō)明使用普通通道來(lái)執(zhí)行prs=select(sql);}elseif(type.equals(pstmtType)){//說(shuō)明使用預(yù)編譯通道來(lái)執(zhí)行if(connect!=null){try{pstmt=connect.prepareStatement(sql);//驗(yàn)證傳入的參數(shù)和sql中的參數(shù)個(gè)數(shù)一致//將參數(shù)設(shè)置進(jìn)當(dāng)前的預(yù)編譯通道setPrepareStatement(pstmt,csList);prs=pstmt.executeQuery();}catch(Exceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}}returnprs;57 2014屆畢業(yè)設(shè)計(jì)(論文)}獲取驗(yàn)證碼的具體實(shí)現(xiàn)是:publicclassYzmextendsHttpServlet{privateintwidth=100;privateintheight=32;privatefinalStringSZ="0123456789";privatefinalStringZM="ABCDEFGHIJKLMOPQRSTUVWXYZ";privatefinalStringHZ="u6211u4F60u4ED6u7231u4E0Au5BF9u65B9u79BBu5F00u5BB6u4F53u80B2u76D8u53E3u770Bu5417";owsIOExceptionifanerroroccurredpublicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{//在內(nèi)存中構(gòu)建的一副圖片BufferedImageimage=newBufferedImage(width,height,BufferedImage.TYPE_INT_RGB);//僅僅產(chǎn)生了一個(gè)內(nèi)存空間//在上述空間中畫圖//得到畫筆Graphicsgraphics=image.getGraphics();//開始畫//畫一個(gè)邊框drawBk(graphics);drawBj(graphics);drawSjx(graphics);Stringlx="sz";Stringnr=getRandomNr(lx);HttpSessionsession=request.getSession();session.setAttribute("yzm",nr);//將生成的驗(yàn)證碼圖片保存在服務(wù)器端Cookiecookie=newCookie("JSESSIONID",session.getId());cookie.setMaxAge(60*60);//此處的時(shí)間一定和服務(wù)端session的有效時(shí)間配合使用cookie.setPath(request.getContextPath());response.addCookie(cookie);drawNr(graphics,nr,lx);response.setHeader("Cache-Control","no-cache");response.setHeader("Expires","0");response.setHeader("Pragma","no-cache");response.setContentType("image/jpeg");ServletOutputStreamsos=response.getOutputStream();ImageIO.write(image,"jpeg",sos);sos.flush();sos.close();57 2014屆畢業(yè)設(shè)計(jì)(論文)}//畫隨機(jī)線privatevoiddrawSjx(Graphicsgraphics){Randomrandom=newRandom();for(inti=0;i<5;i++){graphics.setColor(getRandomColor(130,160));intx1=1+random.nextInt(width-2);inty1=1+random.nextInt(height-2);intx2=1+random.nextInt(width-2);inty2=1+random.nextInt(height-2);graphics.drawLine(x1,y1,x2,y2);}}//畫內(nèi)容到圖形中privatevoiddrawNr(Graphicsgraphics,Stringnr,Stringlx){if(nr!=null&&nr.length()>0){intbj=6;if("zm".equals(lx)||"sz".equals(lx)){graphics.setFont(newFont("宋體",Font.BOLD,30));}else{graphics.setFont(newFont("宋體",Font.PLAIN,26));bj=1;}//graphics.drawString(內(nèi)容,x軸坐標(biāo),y軸坐標(biāo)(原點(diǎn)在圖片下部));for(inti=0;i255){min=0;}if(max<0||max>255){max=255;}Randomrandom=newRandom();intr=min+random.nextInt(max-min);intg=min+random.nextInt(max-min);intb=min+random.nextInt(max-min);returnnewColor(r,g,b);}publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{doGet(request,response);}}密碼加密的具體業(yè)務(wù)是://產(chǎn)生md5字符串方法publicstaticStringgetMd5(Stringstr){Stringrstr=str;try{MessageDigestmessageDigest=MessageDigest.getInstance("md5");BASE64Encoderencoder=newBASE64Encoder();rstr=encoder.encode(messageDigest.digest(str.getBytes()));}catch(NoSuchAlgorithmExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();57 2014屆畢業(yè)設(shè)計(jì)(論文)}returnrstr;}publicstaticTconvertFirstResultSetToBean(ResultSetrs,Classclazz){Tt=null;try{if(rs!=null){//說(shuō)明結(jié)果集有內(nèi)容String[]columns=null;//獲取所有查詢出來(lái)的結(jié)果集得字段名稱ResultSetMetaDatarsmd=rs.getMetaData();//得到結(jié)果集列數(shù)intcolumnCount=rsmd.getColumnCount();columns=newString[columnCount];//輸出此結(jié)果集的所有列名for(inti=1;i<=columnCount;i++){columns[i-1]=rsmd.getColumnName(i).toLowerCase();}if(rs.next()){t=(T)clazz.newInstance();//初始化bean對(duì)象if(columns!=null&&columns.length>0){for(Stringzdmc:columns){Stringvalue=rs.getString(zdmc);if(value!=null&&value.trim().length()>0){//得到此類屬性的描述PropertyDescriptorpd=newPropertyDescriptor(zdmc,clazz);//得到屬性的類型ClasspropertyType=pd.getPropertyType();//根據(jù)反射將值賦值到此對(duì)象中Methodmethod=pd.getWriteMethod();if(method!=null){//調(diào)用用法method.invoke(t,convertPropertyType(value,propertyType));}}}}}}}catch(Exceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}returnt;57 2014屆畢業(yè)設(shè)計(jì)(論文)}publicstaticListconvertResultSetToList(ResultSetrs,Classclazz){Listlist=null;try{if(rs!=null){//說(shuō)明結(jié)果集有內(nèi)容String[]columns=null;//獲取所有查詢出來(lái)的結(jié)果集得字段名稱ResultSetMetaDatarsmd=rs.getMetaData();//得到結(jié)果集列數(shù)intcolumnCount=rsmd.getColumnCount();columns=newString[columnCount];//輸出此結(jié)果集的所有列名for(inti=1;i<=columnCount;i++){columns[i-1]=rsmd.getColumnName(i).toLowerCase();}list=newArrayList();while(rs.next()){Tt=(T)clazz.newInstance();//初始化bean對(duì)象if(columns!=null&&columns.length>0){for(Stringzdmc:columns){Stringvalue=rs.getString(zdmc);if(value!=null&&value.trim().length()>0){//得到此類屬性的描述PropertyDescriptorpd=newPropertyDescriptor(zdmc,clazz);//得到屬性的類型ClasspropertyType=pd.getPropertyType();//根據(jù)反射將值賦值到此對(duì)象中Methodmethod=pd.getWriteMethod();if(method!=null){//調(diào)用用法method.invoke(t,convertPropertyType(value,propertyType));}}}}list.add(t);}}}catch(Exceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}returnlist;57 2014屆畢業(yè)設(shè)計(jì)(論文)}//將value轉(zhuǎn)換成java能認(rèn)識(shí)的數(shù)據(jù)類型publicstaticObjectconvertPropertyType(Stringvalue,ClasspropertyType)throwsParseException{Objecto=value;if(propertyType==int.class){o=Integer.valueOf(value);}elseif(propertyType==double.class){o=Double.valueOf(value);}elseif(propertyType==Date.class){o=newSimpleDateFormat("yyyy-MM-dd").parse(value);}elseif(propertyType==Timestamp.class){o=newTimestamp(newSimpleDateFormat("yyyy-MM-ddHH:mm:ss").parse(value).getTime());}elseif(propertyType==BigDecimal.class){o=newBigDecimal(value);}returno;}3.3、后臺(tái)核心管理模塊設(shè)計(jì)后臺(tái)核心管理模塊主要負(fù)責(zé)的是得到所有的商品信息,并將此信息封裝到與前臺(tái)界面映射的VO對(duì)象中,然后將這些對(duì)象放在一個(gè)集合里面,最后通過(guò)Gjson,將對(duì)象轉(zhuǎn)換成json格式返回到前臺(tái)界面。其中,商品信息是做過(guò)分頁(yè)處理的,每次只得到一小部分商品信息。他的具體實(shí)現(xiàn)是:publicclassShellServletextendsHttpServlet{publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{Stringtype=request.getParameter("type");Stringpage=request.getParameter("page");response.setCharacterEncoding("utf-8");PrintWriterout=response.getWriter();if("spzs".equals(type)){Stringsql="selectcount(*)fromspb";SpglDaoImpsdi=newSpglDaoImp();intcount=sdi.getCountBySql(sql);out.print(count);return;}elseif("spxx".equals(type)){57 2014屆畢業(yè)設(shè)計(jì)(論文)if(!"".equals(page)){Stringsql="selectsp.spid,sp.spm,sp.xsl,sp.spjg,sp.spxx,sp.lxid,mjb.mjhym,sp.sptp,sp.mjidfrom(selecttt.*from(selectt.*,rownumasrsfrom(select*fromspb)twhererownum<="+page+"*4)ttwherett.rs>=("+page+"-1)*4+1)spleftouterjoinmjbon(sp.mjid=mjb.mjid)";SpglServiceImpssi=newSpglServiceImp();Listlist=ssi.getSpxxBySql(sql);//已經(jīng)獲取到商品信息//System.out.println("^^^^^^^^^^^^^^^^^");//for(inti=0;icsList=hdi.getCsList(hyglVo);if(oo.iudSql(sql,oo.pstmtType,csList)>0){returntrue;}returnfalse;}//通過(guò)前臺(tái)Vo對(duì)象得到后臺(tái)需要設(shè)入數(shù)據(jù)庫(kù)的參數(shù)集合publicListgetCsList(HyglVohyglVo){ListcsList=null;if(hyglVo!=null){csList=newArrayList();csList.add("VARCHAR,"+((!"".equals(hyglVo.getYhm()))?hyglVo.getYhm():"null"));csList.add("VARCHAR,"+((!"".equals(hyglVo.getMm()))?hyglVo.getMm():"null"));csList.add("VARCHAR,"+((!"".equals(hyglVo.getSfzhm()))?hyglVo.getSfzhm():"null"));csList.add("VARCHAR,"+((!"".equals(hyglVo.getZsxm()))?hyglVo.getZsxm():"null"));csList.add("VARCHAR,"+("female".equals(hyglVo.getXb())?"女":"男"));csList.add("VARCHAR,"+((!"".equals(hyglVo.getDhhm()))?hyglVo.getDhhm():"null"));csList.add("VARCHAR,"+((!"".equals(hyglVo.getEamil()))?hyglVo.getEamil():"null"));Stringdz=getDz(hyglVo.getSheng()+":"+hyglVo.getShi()+":"+hyglVo.getXian()+":"+("".equals(hyglVo.getJd())?"null":hyglVo.getJd()));}returncsList;}publicStringgetDz(Stringdz){//System.out.println("dz="+dz);if(dz!=null){57 2014屆畢業(yè)設(shè)計(jì)(論文)String[]str=dz.split(":");Stringsheng=str[0];Stringshi=str[1];Stringxian=str[2];Stringjd=str[3];sheng=getShengByShengId(sheng);shi=getShiByShiId(shi);xian=getXianByXianId(xian);returnsheng+"-"+shi+"-"+xian+"-"+jd;}returnnull;}publicStringgetShengByShengId(Stringid){if(id!=null&&(!"default".equals(id))){Stringsql="selectmcfromshengwheresheng_id="+id;OperateOracleoo=newOperateOracle();ResultSetrs=oo.select(sql);try{rs.next();returnrs.getString(1);}catch(SQLExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}returnnull;}publicStringgetShiByShiId(Stringid){if(id!=null&&(!"default".equals(id))){Stringsql="selectmcfromshiwhereshi_id="+id;OperateOracleoo=newOperateOracle();ResultSetrs=oo.select(sql);try{rs.next();returnrs.getString(1);}catch(SQLExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}returnnull;}publicStringgetXianByXianId(Stringid){if(id!=null&&(!"default".equals(id))){57 2014屆畢業(yè)設(shè)計(jì)(論文)Stringsql="selectmcfromxianwherexian_id="+id;OperateOracleoo=newOperateOracle();ResultSetrs=oo.select(sql);try{rs.next();returnrs.getString(1);}catch(SQLExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}returnnull;}3.5、后臺(tái)會(huì)員管理模塊設(shè)計(jì)后臺(tái)會(huì)員管理模塊實(shí)現(xiàn)的業(yè)務(wù)是對(duì)注冊(cè)用戶時(shí)的用戶信息進(jìn)行驗(yàn)證。主要分為:驗(yàn)證用戶名(查詢此用戶是否符合規(guī)范和此用戶名是否存在),驗(yàn)證密碼(驗(yàn)證密碼輸入是否合法),驗(yàn)證確認(rèn)密碼,驗(yàn)證email,和驗(yàn)證驗(yàn)證碼是否正確。他的具體實(shí)現(xiàn)是://驗(yàn)證用戶名publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");OperateOracleoo=newOperateOracle();Stringmsg="";Stringflag="";Stringstr="";Stringyhm=request.getParameter("yhm");//首先驗(yàn)證用戶名是否合法,不合法直接打回response,合法再鏈接數(shù)據(jù)庫(kù)判斷if(!yhm.matches("[a-z0-9_-]{6,16}")){str="false:χ 請(qǐng)輸入6-16位用戶名(不含中文)!";}else{Stringsql="selectcount(*)fromhybwhereyhm='"+yhm+"'";ResultSetrs=oo.select(sql);try{rs.next();flag=rs.getInt(1)==0?"true":"false";if("true".equals(flag)){msg="√ 該用戶名可用";}else{msg="χ 該用戶已存在";}57 2014屆畢業(yè)設(shè)計(jì)(論文)str=flag+":"+msg;}catch(Exceptione){}}PrintWriterout=response.getWriter();out.print(str);out.flush();out.close();}//驗(yàn)證密碼publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{request.setCharacterEncoding("utf-8");Stringstr="";Stringmm=request.getParameter("mm");response.setCharacterEncoding("utf-8");//首先驗(yàn)證密碼是否合法,不合法直接打回response,合法再鏈接數(shù)據(jù)庫(kù)判斷if(!mm.matches("[a-z0-9_-]{6,16}")){str="false:χ 請(qǐng)輸入6-16位密碼!";}else{str="true:√";}PrintWriterout=response.getWriter();out.print(str);out.flush();out.close();}//驗(yàn)證emailpublicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{request.setCharacterEncoding("utf-8");Stringstr="";Stringemail=request.getParameter("email");response.setCharacterEncoding("utf-8");if(!email.matches("^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$")){if(email!=""){str="false:χ email格式不正確,請(qǐng)重新輸入!";//System.out.println(str);}}else{str="true:√";}PrintWriterout=response.getWriter();out.print(str);57 2014屆畢業(yè)設(shè)計(jì)(論文)out.flush();out.close();}//驗(yàn)證驗(yàn)證碼publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{request.setCharacterEncoding("utf-8");Stringyzm=request.getParameter("yzm");response.setCharacterEncoding("utf-8");HttpSessionsession=request.getSession();Stringnr=(String)session.getAttribute("yzm");Stringstr="";if(!nr.equals(yzm)){session.setAttribute("yzm","flase");str="false:χ 驗(yàn)證碼輸入錯(cuò)誤!";}else{session.setAttribute("yzm","true");str="true:√";}PrintWriterout=response.getWriter();out.print(str);out.flush();out.close();}//驗(yàn)證確認(rèn)密碼publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{request.setCharacterEncoding("utf-8");Stringstr="";Stringmm=request.getParameter("mm");Stringqrmm=request.getParameter("qrmm");response.setCharacterEncoding("utf-8");//如果密碼和確認(rèn)密碼一致,且不為空,那么打回正確if(mm.equals(qrmm)&&!"".equals(mm)){str="true:√";}elseif("".equals(mm)&&!mm.equals(qrmm)){//如果密碼為空,確認(rèn)密碼不等于密碼,說(shuō)明,沒有輸入密碼str="false:χ 請(qǐng)先輸入密碼!";}elseif(!"".equals(mm)&&!mm.equals(qrmm)){//如果密碼不為空,確認(rèn)密碼和密碼不想等,那么說(shuō)明確認(rèn)密碼輸入錯(cuò)誤str="false:χ 密碼輸入錯(cuò)誤,請(qǐng)重新輸入!";}PrintWriterout=response.getWriter();out.print(str);57 2014屆畢業(yè)設(shè)計(jì)(論文)out.flush();out.close();}3.6、后臺(tái)商品管理模塊設(shè)計(jì)商品管理模塊實(shí)現(xiàn)的業(yè)務(wù)是得到商品詳細(xì)信息數(shù)據(jù)和購(gòu)物車數(shù)據(jù)。通過(guò)請(qǐng)求的商品id和請(qǐng)求類型,分別處理這兩個(gè)業(yè)務(wù)。在處理商品詳細(xì)信息的數(shù)據(jù)中,首先通過(guò)sql查找對(duì)應(yīng)信息,然后將這些得到的數(shù)據(jù)封裝到與前臺(tái)頁(yè)面映射的VO中,然后將此VO設(shè)置到requset域中,讓JSP頁(yè)面在加載的時(shí)候顯示這些信息。購(gòu)物車的商品處理和商品詳細(xì)處理一致。他的具體實(shí)現(xiàn)是:publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{request.setCharacterEncoding("utf-8");Stringspid=request.getParameter("spid");Stringtype=request.getParameter("type");response.setCharacterEncoding("utf-8");System.out.println(type);//如果類型等于顯示詳細(xì)商品if("xsxxsp".equals(type)){XsxxspVoxsxxspVo=newXsxxspVo();SpglServiceImpssi=newSpglServiceImp();Stringsql="selectspb.spid,spb.spm,spb.xsl,spb.spjg,spb.spxx,mjb.mjhym,spb.sptp,spb.spks,spb.kcl,mjb.mjid,spb.splogo"+"fromspbleftouterjoinmjbonspb.mjid=mjb.mjidwherespb.spid="+spid;xsxxspVo=ssi.getXxspVoBySql(sql);PrintWriterout=response.getWriter();//System.out.println(xsxxspVo);request.setAttribute("xxspVo",xsxxspVo);request.getRequestDispatcher("/view/spgl/xsxxsp.jsp").forward(request,response);}elseif("gwc".equals(type)){intsl=Integer.valueOf(request.getParameter("sl"));Stringks=request.getParameter("ks");SpglServiceImpssi=newSpglServiceImp();Stringsql="selectspb.spm,spb.spjg,mjb.mjhym,mjb.mjidfromspbleftouterjoinmjbonspb.mjid=mjb.mjidwherespid="+spid;GwServletImpgsi=newGwServletImp();GwcVogwcVo=gsi.getGwcVoBySql(sql);gwcVo.setSpid(Integer.valueOf(spid));gwcVo.setSl(sl);gwcVo.setKs(ks);gwcVo.setXj(gwcVo.getJg()*sl);//System.out.println(gwcVo);57 2014屆畢業(yè)設(shè)計(jì)(論文)gsi.addGwcBySql(gwcVo);}}OperateOracleoo=newOperateOracle();ResultSetrs=null;SpglDaoImpsdi=newSpglDaoImp();//根據(jù)sql語(yǔ)句得到商品信息,返回SpglPojo的一個(gè)集合,集合中存放的都是商品信息。publicListgetSpxxBySql(Stringsql){Listlist=null;//如果sql不為空if(!"".equals(sql)){//查詢數(shù)據(jù)庫(kù)得到resultset結(jié)果集rs=oo.select(sql);//根據(jù)resultset結(jié)果集得到spglpojo的集合list=sdi.getSpglPojiByResultSet(rs);}returnlist;}//根據(jù)sql得到顯示詳細(xì)商品集合publicXsxxspVogetXxspVoBySql(Stringsql){XsxxspVoxsxxspVo=null;//如果sql不為空if(!"".equals(sql)){//查詢數(shù)據(jù)庫(kù)得到resultset結(jié)果集rs=oo.select(sql);xsxxspVo=sdi.getXxspByResultSet(rs);}returnxsxxspVo;}//根據(jù)resultset結(jié)果集,得到spglpojo對(duì)象的集合。publicListgetSpglPojiByResultSet(ResultSetrs){//如果rs不為空Listlist=null;if(rs!=null){try{list=newArrayList();SpglVospglVo=null;//遍歷結(jié)果集的內(nèi)容while(rs.next()){//創(chuàng)建spglVo的對(duì)象,并且賦值,添加到list中spglVo=newSpglVo();spglVo.setSpid(rs.getInt(1));spglVo.setSpm(rs.getString(2));spglVo.setXsl(rs.getInt(3));57 2014屆畢業(yè)設(shè)計(jì)(論文)spglVo.setSpjg(rs.getDouble(4));spglVo.setSpxx(rs.getString(5));spglVo.setLxid(rs.getInt(6));spglVo.setMjhym(rs.getString(7));spglVo.setSptp(rs.getString(8));spglVo.setMjid(rs.getInt(9));list.add(spglVo);spglVo=null;}}catch(Exceptione){e.printStackTrace();}}returnlist;}//根據(jù)sql得到結(jié)果集中數(shù)據(jù)個(gè)數(shù)。publicintgetCountBySql(Stringsql){OperateOracleoo=newOperateOracle();ResultSetrs=null;intcount=0;if(!"".equals(sql)){rs=oo.select(sql);if(rs!=null){try{rs.next();count=rs.getInt(1);}catch(Exceptione){}}}returncount;}//根據(jù)resultset得到xaxxspVopublicXsxxspVogetXxspByResultSet(ResultSetrs){XsxxspVoxsxxspVo=null;if(rs!=null){xsxxspVo=newXsxxspVo();try{//遍歷結(jié)果集的內(nèi)容while(rs.next()){//創(chuàng)建xsxxspVo的對(duì)象,并且賦值,添加到list中57 2014屆畢業(yè)設(shè)計(jì)(論文)xsxxspVo.setSpid(rs.getInt(1));xsxxspVo.setSpm(rs.getString(2));xsxxspVo.setXsl(rs.getInt(3));xsxxspVo.setSpjg(rs.getDouble(4));xsxxspVo.setSpxx(rs.getString(5));xsxxspVo.setMjhym(rs.getString(6));xsxxspVo.setSptp(rs.getString(7));xsxxspVo.setSpks(getListByString(rs.getString(8)));xsxxspVo.setKcl(rs.getInt(9));xsxxspVo.setMjid(rs.getInt(10));xsxxspVo.setsplogo(rs.getString(11));xsxxspVo.setXxtp(getSptpBySpid(xsxxspVo.getSpid()));}}catch(Exceptione){e.printStackTrace();}}returnxsxxspVo;}*///解析指定規(guī)則的字符串的得到一個(gè)集合publicListgetListByString(Stringstr){Listlist=null;if(!"".equals(str)){String[]temp=str.split(",");list=newArrayList();//如果按指定規(guī)則分割后有值,那么將分割的值放入集合if(temp!=null&&temp.length>0){for(inti=0;igetSptpBySpid(intspid){OperateOracleoo=newOperateOracle();Stringsql="selectTPDZfromSPTPXXBwherespid="+spid;57 2014屆畢業(yè)設(shè)計(jì)(論文)//通過(guò)商品id得到的商品的所有圖片地址ResultSetrs1=oo.select(sql);Listlist=null;if(rs1!=null){//如果結(jié)果集有值,那么添加的list中l(wèi)ist=newArrayList();try{while(rs1.next()){list.add(rs1.getString(1));}}catch(Exceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}returnlist;}3.7、后臺(tái)登陸模塊設(shè)計(jì)后臺(tái)登陸模塊實(shí)現(xiàn)的業(yè)務(wù)是會(huì)員的登陸和賣家的登陸,通過(guò)驗(yàn)證前臺(tái)提交的表單是否正確來(lái)實(shí)現(xiàn)登陸。如果驗(yàn)證正確,首先建立一個(gè)和數(shù)據(jù)庫(kù)對(duì)應(yīng)的POJO對(duì)象,然后將數(shù)據(jù)庫(kù)中的信息讀取出來(lái)設(shè)置到POJO的對(duì)象中,最后將此對(duì)象設(shè)置到session域中,供前臺(tái)提交購(gòu)物訂單時(shí)回去會(huì)員信息,賣家登陸成功后也是將對(duì)象保存在session域中。他的具體實(shí)現(xiàn)是:publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{//設(shè)置通道字符格式request.setCharacterEncoding("utf-8");//得到請(qǐng)求的用戶名和密碼Stringyhm=request.getParameter("yhm");Stringmm=request.getParameter("mm");System.out.println(mm);//鏈接數(shù)據(jù)庫(kù)Jdbcjdbc=newJdbc();jdbc.connectSql("192.168.4.128","suzhihao","niit");Stringsql="selectmmfromhybwhereyhm='"+yhm+"'";ResultSetrs=jdbc.selectSql(sql);if(rs!=null){try{rs.next();System.out.println(rs.getString(1));if(rs.getString(1).equals(mm)){LoginDaoImpldi=newLoginDaoImp();LoginPoJologinPojo=ldi.getPojoByYhm(yhm);57 2014屆畢業(yè)設(shè)計(jì)(論文)request.getRequestDispatcher("/view/shell/shell.jsp").forward(request,response);return;}}catch(Exceptione){}}request.setAttribute("msg","用戶名或密碼錯(cuò)誤,請(qǐng)重新輸入!");request.setAttribute("yhm",yhm);//response.sendRedirect("/gogo/front/login.jsp");request.getRequestDispatcher("/view/login/login.jsp").forward(request,response);}publicLoginPoJogetPojoByYhm(Stringyhm){Stringsql="selecthyid,yhm,mm,sfzhm,zsxm,xb,dhhm,email,dz,hytx,zcsj,zt,zhjefromhybwhereyhm="+yhm;OperateOracleoo=newOperateOracle();ResultSetrs=oo.select(sql);LoginPoJologinPojo=getPojoByRs(rs);returnloginPojo;}publicLoginPoJogetPojoByRs(ResultSetrs){//TODOAuto-generatedmethodstubLoginPoJologinPojo=null;if(rs!=null){try{rs.next();loginPojo=newLoginPoJo();loginPojo.setHyid(rs.getInt(1));loginPojo.setYhm(rs.getString(2));loginPojo.setMm(rs.getString(3));loginPojo.setSfzhm(rs.getString(4));loginPojo.setZsxm(rs.getString(5));loginPojo.setXb(rs.getString(6));loginPojo.setDhhm(rs.getString(7));loginPojo.setEmail(rs.getString(8));loginPojo.setDz(rs.getString(9));loginPojo.setHytx(rs.getString(10));loginPojo.setZcsj(rs.getDate(11));loginPojo.setZt(rs.getString(12));loginPojo.setZhje(rs.getDouble(13));}catch(SQLExceptione){//TODOAuto-generatedcatchblock57 2014屆畢業(yè)設(shè)計(jì)(論文)e.printStackTrace();}}returnloginPojo;}3.8、后臺(tái)購(gòu)物模塊設(shè)計(jì)后臺(tái)購(gòu)物模塊實(shí)現(xiàn)的業(yè)務(wù)是處理付款,完成結(jié)算。首先,需要獲得商品的ID。然后根據(jù)商品的ID得到商品的信息,然后通過(guò)賣家ID得到賣家信息,然后通過(guò)session域得到用戶信息,得到上述3條信息之后,就可以將賣家中的這一商品的銷售量加一,將用戶的金額扣除商品的價(jià)值,給賣家增加收入。他的具體實(shí)現(xiàn)是:publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{request.setCharacterEncoding("utf-8");Stringtype=request.getParameter("type");Stringyhid=request.getParameter("yhid");System.out.println(type);if("gwc".equals(type)){HttpSessionsession=request.getSession();LoginVologinVo=(LoginVo)session.getAttribute("loginVo");inthyid=loginVo.getHyid();Stringsql="selectzhjefromhybwherehyid="+hyid;OperateOracleoo=newOperateOracle();ResultSetrs=oo.select(sql);doubleje;try{rs.next();je=rs.getDouble(1);doublezj=Double.valueOf(request.getParameter("zj"));je=je-zj;sql="updatehybsetzhje=("+je+")";oo.iudSql(sql);LoginDaoImpldi=newLoginDaoImp();Stringyhm=loginVo.getYhm();loginVo=ldi.getPojoByYhm(yhm);session.setAttribute("loginVo",loginVo);PrintWriterout=response.getWriter();out.print("ok");}catch(SQLExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}57 2014屆畢業(yè)設(shè)計(jì)(論文)}elseif("zjadd".equals(type)){//System.out.println("aaaa");doublezj=Double.valueOf(request.getParameter("zj"));doublespjg=Double.valueOf(request.getParameter("spjg"));PrintWriterout=response.getWriter();response.setCharacterEncoding("utf-8");zj=zj+spjg;//System.out.println(zj);out.print(zj);}elseif("zjremove".equals(type)){//System.out.println("aaaa");doublezj=Double.valueOf(request.getParameter("zj"));doublespjg=Double.valueOf(request.getParameter("spjg"));PrintWriterout=response.getWriter();response.setCharacterEncoding("utf-8");zj=zj-spjg;out.print(zj);}elseif("spxx".equals(type)){intspid=Integer.valueOf(request.getParameter("spid"));doublespjg=Double.valueOf(request.getParameter("spjg"));intsl=Integer.valueOf(request.getParameter("sl"));Stringsql="selectmjid,xslfromspbwherespid="+spid;OperateOracleoo=newOperateOracle();ResultSetrs=oo.select(sql);try{rs.next();intmjid=rs.getInt(1);intxsl=rs.getInt(2);doubleje=spjg;xsl=xsl+sl;sql="updatespbsetxsl=("+xsl+")wherespid="+spid;oo.iudSql(sql);sql="selectmjsrfrommjbwheremjid="+mjid;rs=oo.select(sql);rs.next();je=je+rs.getInt(1);sql="updatemjbsetmjsr=("+je+")wheremjid="+mjid;oo.iudSql(sql);}catch(SQLExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}elseif("gw".equals(type)){System.out.println(yhid);57 2014屆畢業(yè)設(shè)計(jì)(論文)Stringsql="selectspid,spm,mjyhm,mjid,ks,jg,sl,xjfromgwcbwhereyhid="+yhid;GwServletImpgsi=newGwServletImp();Listlist=gsi.getListBySql(sql);request.setAttribute("list",list);request.getRequestDispatcher("/view/gw/gwc.jsp").forward(request,response);}}3.9、tomcat服務(wù)器簡(jiǎn)介Tomcat服務(wù)器是一個(gè)免費(fèi)的開放源代碼的Web應(yīng)用服務(wù)器,屬于輕量級(jí)應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問(wèn)用戶不是很多的場(chǎng)合下被普遍使用,是開發(fā)和調(diào)試JSP程序的首選。對(duì)于一個(gè)初學(xué)者來(lái)說(shuō),可以這樣認(rèn)為,當(dāng)在一臺(tái)機(jī)器上配置好Apache服務(wù)器,可利用它響應(yīng)對(duì)HTML(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言下的一個(gè)應(yīng)用。)頁(yè)面的訪問(wèn)請(qǐng)求。實(shí)際上Tomcat部分是Apache服務(wù)器的擴(kuò)展,但它是獨(dú)立運(yùn)行的,所以當(dāng)你運(yùn)行tomcat時(shí),它實(shí)際上作為一個(gè)與Apache獨(dú)立的進(jìn)程單獨(dú)運(yùn)行的。訣竅是,當(dāng)配置正確時(shí),Apache為HTML頁(yè)面服務(wù),而Tomcat實(shí)際上運(yùn)行JSP頁(yè)面和Servlet。另外,Tomcat和IIS等Web服務(wù)器一樣,具有處理HTML頁(yè)面的功能,另外它還是一個(gè)Servlet和JSP容器,獨(dú)立的Servlet容器是Tomcat的默認(rèn)模式。不過(guò),Tomcat處理靜態(tài)HTML的能力不如Apache服務(wù)器。目前Tomcat最新版本為8.0.0-RC1(alpha)Released。Tomcat很受廣大程序員的喜歡,因?yàn)樗\(yùn)行時(shí)占用的系統(tǒng)資源小,擴(kuò)展性好,支持負(fù)載平衡與郵件服務(wù)等開發(fā)應(yīng)用系統(tǒng)常用的功能;而且它還在不斷的改進(jìn)和完善中,任何一個(gè)感興趣的程序員都可以更改它或在其中加入新的功能。Tomcat最初是由Sun的軟件構(gòu)架師詹姆斯·鄧肯·戴維森開發(fā)的。后來(lái)他幫助將其變?yōu)殚_源項(xiàng)目,并由Sun貢獻(xiàn)給Apache軟件基金會(huì)。由于大部分開源項(xiàng)目O'Reilly都會(huì)出一本相關(guān)的書,并且將其封面設(shè)計(jì)成某個(gè)動(dòng)物的素描,因此他希望將此項(xiàng)目以一個(gè)動(dòng)物的名字命名。因?yàn)樗M@種動(dòng)物能夠自己照顧自己,最終,他將其命名為Tomcat(英語(yǔ)公貓或其他雄性貓科動(dòng)物)。而O'Reilly出版的介紹Tomcat的書籍(ISBN0-596-00318-8)[1]的封面也被設(shè)計(jì)成了一個(gè)公貓的形象。而Tomcat的Logo兼吉祥物也被設(shè)計(jì)成了一只公貓。3.10、oracle數(shù)據(jù)庫(kù)簡(jiǎn)介ORACLE數(shù)據(jù)庫(kù)系統(tǒng)是美國(guó)ORACLE公司(甲骨文)提供的以分布式數(shù)據(jù)庫(kù)為核心的一組軟件產(chǎn)品,是目前最流行的客戶/服務(wù)器(CLIENT/SERVER)或B/S體系結(jié)構(gòu)的數(shù)據(jù)庫(kù)之一。比如SilverStream就是基于數(shù)據(jù)庫(kù)的一種中間件。ORACLE數(shù)據(jù)庫(kù)是目前世界上使用最為廣泛的數(shù)據(jù)庫(kù)管理系統(tǒng),作為一個(gè)通用的數(shù)據(jù)庫(kù)系統(tǒng),它具有完整的數(shù)據(jù)管理功能;作為一個(gè)關(guān)系數(shù)據(jù)庫(kù),它是一個(gè)完備關(guān)系的產(chǎn)品;作為分布式數(shù)據(jù)庫(kù)它實(shí)現(xiàn)了分布式處理功能。但它的所有知識(shí),只要在一種機(jī)型上學(xué)習(xí)了ORACLE知識(shí),便能在各種類型的機(jī)器上使用它。Oracle數(shù)據(jù)庫(kù)最新版本為OracleDatabase12c。Oracle數(shù)據(jù)庫(kù)12c引入了一個(gè)新的多承租方架構(gòu),使用該架構(gòu)可輕松部署和管理數(shù)據(jù)庫(kù)云。此外,一些創(chuàng)新特性可最大限度地提高資源使用率和靈活性,如OracleMultitenant可快速整合多個(gè)數(shù)據(jù)庫(kù),而AutomaticData57 2014屆畢業(yè)設(shè)計(jì)(論文)Optimization和HeatMap能以更高的密度壓縮數(shù)據(jù)和對(duì)數(shù)據(jù)分層。這些獨(dú)一無(wú)二的技術(shù)進(jìn)步再加上在可用性、安全性和大數(shù)據(jù)支持方面的主要增強(qiáng),使得Oracle數(shù)據(jù)庫(kù)12c成為私有云和公有云部署的理想平臺(tái)。Oracle數(shù)據(jù)庫(kù)的特點(diǎn):1、完整的數(shù)據(jù)管理功能:1)數(shù)據(jù)的大量性、2)數(shù)據(jù)的保存的持久性、3)數(shù)據(jù)的共享性、4)數(shù)據(jù)的可靠性。2、完備關(guān)系的產(chǎn)品:1)信息準(zhǔn)則---關(guān)系型DBMS的所有信息都應(yīng)在邏輯上用一種方法,即表中的值顯式地表示、2)保證訪問(wèn)的準(zhǔn)則、3)視圖更新準(zhǔn)則---只要形成視圖的表中的數(shù)據(jù)變化了,相應(yīng)的視圖中的數(shù)據(jù)同時(shí)變化、4)數(shù)據(jù)物理性和邏輯性獨(dú)立準(zhǔn)則。3、分布式處理功能:ORACLE數(shù)據(jù)庫(kù)自第5版起就提供了分布式處理能力,到第7版就有比較完善的分布式數(shù)據(jù)庫(kù)功能了,一個(gè)ORACLE分布式數(shù)據(jù)庫(kù)由oraclerdbms、sql*Net、SQL*CONNECT和其他非ORACLE的關(guān)系型產(chǎn)品構(gòu)成。4、用ORACLE能輕松的實(shí)現(xiàn)數(shù)據(jù)倉(cāng)庫(kù)的操作。他的可用性強(qiáng),可擴(kuò)展性強(qiáng),數(shù)據(jù)安全性強(qiáng),穩(wěn)定性強(qiáng)。他的數(shù)據(jù)結(jié)構(gòu)是它由至少一個(gè)表空間和數(shù)據(jù)庫(kù)模式對(duì)象組成。這里,模式是對(duì)象的集合,而模式對(duì)象是直接引用數(shù)據(jù)庫(kù)數(shù)據(jù)的邏輯結(jié)構(gòu)。模式對(duì)象包括這樣一些結(jié)構(gòu):表、視圖、序列、存儲(chǔ)過(guò)程、同義詞、索引、簇和數(shù)據(jù)庫(kù)鏈等。邏輯存儲(chǔ)結(jié)構(gòu)包括表空間、段和范圍,用于描述怎樣使用數(shù)據(jù)庫(kù)的物理空間。而其中的模式對(duì)象和關(guān)系形成了數(shù)據(jù)庫(kù)的關(guān)系設(shè)計(jì)。段(Segment):是表空間中一個(gè)指定類型的邏輯存儲(chǔ)結(jié)構(gòu),它由一個(gè)或多個(gè)范圍組成,段將占用并增長(zhǎng)存儲(chǔ)空間。其中包括:數(shù)據(jù)段:用來(lái)存放表數(shù)據(jù);引段:用來(lái)存放表索引;臨時(shí)段:用來(lái)存放中間結(jié)果;回滾段:用于出現(xiàn)異常時(shí),恢復(fù)事務(wù)。3.11、servlet運(yùn)行原理servlet是在服務(wù)器上運(yùn)行的小程序。這個(gè)詞是在Javaapplet的環(huán)境中創(chuàng)造的,Javaapplet是一種當(dāng)作單獨(dú)文件跟網(wǎng)頁(yè)一起發(fā)送的小程序,它通常用于在客戶端運(yùn)行,結(jié)果得到為用戶進(jìn)行運(yùn)算或者根據(jù)用戶互作用定位圖形等服務(wù)。服務(wù)器上需要一些程序,常常是根據(jù)用戶輸入訪問(wèn)數(shù)據(jù)庫(kù)的程序。這些通常是使用公共網(wǎng)關(guān)接口(CGI(CommonGatewayInterface))應(yīng)用程序完成的。然而,在服務(wù)器上運(yùn)行Java,這種程序可使用Java編程語(yǔ)言實(shí)現(xiàn)。在通信量大的服務(wù)器上,Javaservlet的優(yōu)點(diǎn)在于它們的執(zhí)行速度更快于CGI程序。各個(gè)用戶請(qǐng)求被激活成單個(gè)程序中的一個(gè)線程,而無(wú)需創(chuàng)建單獨(dú)的進(jìn)程,這意味著服務(wù)器端處理請(qǐng)求的系統(tǒng)開銷將明顯降低。最早支持Servlet技術(shù)的是JavaSoft的JavaWebServer。此后,一些其它的基于Java的WebServer開始支持標(biāo)準(zhǔn)的ServletAPI。Servlet的主要功能在于交互式地瀏覽和修改數(shù)據(jù),生成動(dòng)態(tài)Web內(nèi)容。這個(gè)過(guò)程為:客戶端發(fā)送請(qǐng)求至服務(wù)器端;、服務(wù)器將請(qǐng)求信息發(fā)送至Servlet、Servlet生成響應(yīng)內(nèi)容并將其傳給服務(wù)器。響應(yīng)內(nèi)容動(dòng)態(tài)生成,通常取決于客戶端的請(qǐng)求、服務(wù)器將響應(yīng)返回給客戶端、Servlet看起來(lái)像是通常的Java程序。Servlet導(dǎo)入特定的屬于JavaServletAPI的包。因?yàn)槭菍?duì)象字節(jié)碼,可動(dòng)態(tài)地從網(wǎng)絡(luò)加載,可以說(shuō)Servlet對(duì)Server就如同Applet對(duì)Client一樣,但是,由于Servlet運(yùn)行于Server中,它們并不需要一個(gè)圖形用戶界面。從這個(gè)角度講,Servlet也被稱為FacelessObject。、一個(gè)servlet就是Java編程語(yǔ)言中的一個(gè)類,它被用來(lái)擴(kuò)展服務(wù)器的性能,服務(wù)器上駐留著可以通過(guò)“請(qǐng)求-響應(yīng)”編程模型來(lái)訪問(wèn)的應(yīng)用程序。雖然servlet可以對(duì)任何類型的請(qǐng)求產(chǎn)生響應(yīng),但通常只用來(lái)擴(kuò)展Web服務(wù)器的應(yīng)用程序。加載和實(shí)例化Servlet。這項(xiàng)操作一般是動(dòng)態(tài)執(zhí)行的。然而,Server通常會(huì)提供一個(gè)管理的選項(xiàng),用于在Server啟動(dòng)時(shí)強(qiáng)制裝載和初始化特定的Servlet。Servlet生命周期:Server創(chuàng)建一個(gè)Servlet的實(shí)例,第一個(gè)客戶端的請(qǐng)求到達(dá)Server57 2014屆畢業(yè)設(shè)計(jì)(論文)Server調(diào)用Servlet的init()方法(可配置為Server創(chuàng)建servlet實(shí)例時(shí)調(diào)用,在web.xml中標(biāo)簽下配置標(biāo)簽,配置的值為整型,值越小servlet的啟動(dòng)優(yōu)先級(jí)越高),一個(gè)客戶端的請(qǐng)求到達(dá)Server,Server創(chuàng)建一個(gè)請(qǐng)求對(duì)象,處理客戶端請(qǐng)求,Server創(chuàng)建一個(gè)響應(yīng)對(duì)象,響應(yīng)客戶端請(qǐng)求,Server激活Servlet的service()方法,傳遞請(qǐng)求和響應(yīng)對(duì)象作為參數(shù),service()方法獲得關(guān)于請(qǐng)求對(duì)象的信息,處理請(qǐng)求,訪問(wèn)其他資源,獲得需要的信息,service()方法使用響應(yīng)對(duì)象的方法,將響應(yīng)傳回Server,最終到達(dá)客戶端。service()方法可能激活其它方法以處理請(qǐng)求,如doGet()或doPost()或程序員自己開發(fā)的新的方法。對(duì)于更多的客戶端請(qǐng)求,Server創(chuàng)建新的請(qǐng)求和響應(yīng)對(duì)象,仍然激活此Servlet的service()方法,將這兩個(gè)對(duì)象作為參數(shù)傳遞給它。如此重復(fù)以上的循環(huán),但無(wú)需再次調(diào)用init()方法。一般Servlet只初始化一次(只有一個(gè)對(duì)象),當(dāng)Server不再需要Servlet時(shí)(一般當(dāng)Server關(guān)閉時(shí)),Server調(diào)用Servlet的Destroy()方法。第四章成果演示1.打開主頁(yè)2.登錄57 2014屆畢業(yè)設(shè)計(jì)(論文)3.注冊(cè)4.查看商品信息57 2014屆畢業(yè)設(shè)計(jì)(論文)5.添加到購(gòu)物車57 2014屆畢業(yè)設(shè)計(jì)(論文)57 2014屆畢業(yè)設(shè)計(jì)(論文)6.修改個(gè)人信息57 2014屆畢業(yè)設(shè)計(jì)(論文)7.修改賣家信息8.發(fā)布商品57 2014屆畢業(yè)設(shè)計(jì)(論文)結(jié)論本設(shè)計(jì)以servlet和jsp為核心技術(shù),搭配css樣式和javascript腳本設(shè)計(jì)了一套基本完整的購(gòu)物系統(tǒng),經(jīng)過(guò)實(shí)驗(yàn)論證該系統(tǒng)購(gòu)物上擁有一定的可行性。但是想把該套系統(tǒng)正式運(yùn)用到實(shí)際還有很多功能需要完善。前臺(tái)頁(yè)面不夠美觀,不夠人性化,商城功能比較單一。全部頁(yè)面時(shí)采用jsp頁(yè)面編寫而成。然而jsp頁(yè)面需要發(fā)送請(qǐng)求,完成一次后臺(tái)交互才能出現(xiàn)頁(yè)面,所以用jsp頁(yè)面寫成的網(wǎng)站,耗時(shí)大,耗流量多,網(wǎng)站規(guī)模一大,就會(huì)出現(xiàn)響應(yīng)速度慢,網(wǎng)頁(yè)打不開等一系列狀況。針對(duì)于本設(shè)計(jì)的實(shí)驗(yàn)情況,可以考慮對(duì)本系統(tǒng)進(jìn)行以下的測(cè)試和完善:1、將所有的動(dòng)態(tài)頁(yè)面改成html格式的頁(yè)面,當(dāng)需要與后臺(tái)交互的時(shí)候,通過(guò)Ajax異步通訊,獲得回臺(tái)數(shù)據(jù),顯示出來(lái)。這樣,可以大大減少服務(wù)器的壓力。2、留言管理系統(tǒng)的完善。實(shí)現(xiàn)買家,賣家和網(wǎng)站3方的通訊,讓網(wǎng)站可交流能力提升,這樣會(huì)讓用戶覺得不是一個(gè)人單調(diào)的買東西付款,而是與賣家交談,實(shí)現(xiàn)真正的購(gòu)物體驗(yàn)。3、MVC架構(gòu)的優(yōu)化。所有的前臺(tái)頁(yè)面時(shí)在view層,所有的請(qǐng)求發(fā)往control層,所有的業(yè)務(wù)發(fā)往model層。在model層中,service負(fù)責(zé)處理業(yè)務(wù),dao層負(fù)責(zé)處理數(shù)據(jù)。本設(shè)計(jì)論文涉及軟件、java語(yǔ)言、計(jì)算機(jī)等方面知識(shí),由于以前沒有學(xué)過(guò)關(guān)于本網(wǎng)站構(gòu)建的所有內(nèi)容,故對(duì)有關(guān)知識(shí)的認(rèn)識(shí)難免存在不足之處,懇請(qǐng)老師多多指正!57 2014屆畢業(yè)設(shè)計(jì)(論文)參考文獻(xiàn)[1]解正瑞,中國(guó)電子商務(wù)發(fā)展概況,合肥聯(lián)合大學(xué)計(jì)算機(jī)系。[2]李代平,軟件工程設(shè)計(jì)案例教程,清華大學(xué)出版社。[3]孫衛(wèi)琴,精通hibernate:java對(duì)象持久化技術(shù)詳解,電子工業(yè)出版社[4]孫衛(wèi)琴,精通struts.基于MVC的.java.Web設(shè)計(jì)與開發(fā),電子工業(yè)出版社。[5]深入JAVAServlet網(wǎng)絡(luò)編程,清華大學(xué)出版社。[6]耿祥義,張躍平.《JSP實(shí)用教程》.清華大學(xué)出版社。[7]鄭阿奇.《javaEE實(shí)用教程》.電子工業(yè)出版社。[8]陳爭(zhēng)航.《Mysql5應(yīng)用開發(fā)寶典》.電子工業(yè)出版社。致謝57 2014屆畢業(yè)設(shè)計(jì)(論文)57

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。
關(guān)閉