【正文】
并逐步發(fā)展 .網(wǎng)上購(gòu)物是一種具有交互功能的商業(yè)信息系統(tǒng) .它向用戶(hù)提供靜態(tài)和動(dòng)態(tài)兩類(lèi)信息資源 . 自 2021 年上半年以來(lái) ,沉寂了多年的中國(guó)互聯(lián)網(wǎng)產(chǎn)業(yè)正以強(qiáng)勁的勢(shì)頭復(fù)蘇并發(fā)展 3 起來(lái) ,除了傳統(tǒng)的瀏覽 ,資料搜索 ,電子郵件等基本應(yīng)用外 ,國(guó)內(nèi)網(wǎng)民已經(jīng)開(kāi)始習(xí)慣通過(guò)網(wǎng)絡(luò)接受商務(wù) ,旅游 ,購(gòu)物 ,通訊 ,娛樂(lè)等服務(wù) ,根據(jù)中國(guó)互聯(lián)網(wǎng)信息中心最近提供的《中國(guó)互 聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計(jì)報(bào)告》調(diào)查顯示 ,網(wǎng)上購(gòu)物已經(jīng)由以前的嘗試性購(gòu)買(mǎi)向日常的生活習(xí)慣發(fā)展 ,其中以書(shū)籍 ,計(jì)算機(jī)產(chǎn)品 ,音像制品及器材等為網(wǎng)上購(gòu)物的主要對(duì)象 ,服裝 ,體育用品 ,生活家居用品等消費(fèi)額也開(kāi)始大幅度提高 。 可行性分析 本系統(tǒng)主要從經(jīng)濟(jì)可行性和技術(shù)可行性?xún)蓚€(gè)角度對(duì)其可行性進(jìn)行分析: 經(jīng)濟(jì)可行性 由于本設(shè)計(jì)是針對(duì)當(dāng)前在校大學(xué)生這種消費(fèi)群體的,當(dāng)前大學(xué)生經(jīng)濟(jì)能力有限,而又對(duì)時(shí)尚、前沿的東西感興趣,而這些東西更新?lián)Q代的速度很快,而大學(xué)生的消費(fèi)觀念還不很成熟,這樣就有可能造成買(mǎi)到的東西過(guò)一段時(shí)間 之后就失去了興趣,而這自己不用了的東西如果可以出售給需要的人,這就是一種節(jié)約型的消費(fèi)觀念。 本設(shè)計(jì)無(wú)需再經(jīng)濟(jì)上購(gòu)買(mǎi)居額設(shè)備就可實(shí)現(xiàn),所以在經(jīng)濟(jì)上是可行的。 技術(shù)可行性 本系統(tǒng)使用 jsp作為開(kāi)發(fā)技術(shù),使用目前大多數(shù) web 應(yīng)用程序開(kāi)發(fā)的 mvc的設(shè)計(jì)模式,而選用 Apache tomcat 作為服務(wù)器和選用 mysql 數(shù)據(jù)庫(kù),這都是當(dāng)前首選的開(kāi)發(fā)web 應(yīng)用程序的最常用的環(huán)境。所以在技術(shù)上是完全可以勝任這個(gè)大學(xué)生跳蚤購(gòu)物網(wǎng)站的。 按上述 兩 方面進(jìn)行可行性分析、研究后, 我們認(rèn)為該項(xiàng)目在技術(shù)上是可行的, 經(jīng)濟(jì)上是 可合理的,可以進(jìn)行開(kāi)發(fā) 。 本設(shè)計(jì)所用技術(shù)的簡(jiǎn)介 MVC 設(shè)計(jì)模式概述 傳統(tǒng) web設(shè)計(jì)模式與 mvc 設(shè)計(jì)模式的比較 [1] 傳統(tǒng) web開(kāi)發(fā)模式基本上分為視圖,業(yè)務(wù)邏輯 2層,是水平方向的劃分。 MVC模式是物理性的劃分為 3層,是垂直方向的劃分。 4 視 圖業(yè) 務(wù) 邏輯 V ie w ( 視 圖 )M o d e l( 模 型 )C o n tr o l( 控 制 器 ) 圖 1 傳統(tǒng) web 開(kāi)發(fā)模式 圖 2 MVC 開(kāi)發(fā)模式 Fig1 The traditional web development model Fig1 MVC development model MVC 架構(gòu)是 ModelViewController的縮寫(xiě),中文翻譯為 模型 視圖 控制器 。MVC應(yīng)用程序總是由這三個(gè)部分組成。 Event(事件 )導(dǎo)致 Controller改變 Model或 View,或者同時(shí)改變兩者。只要 Controller 改變了 Models 的數(shù)據(jù)或者屬性,所有依賴(lài)的 View都會(huì)自動(dòng)更新。類(lèi)似的,只要 Controller 改變了 View, View 會(huì)從潛在的 Model 中獲取數(shù)據(jù)來(lái)刷新自己。 MVC 架構(gòu)最早是 smalltalk 語(yǔ)言研究團(tuán)提出的,應(yīng)用于用戶(hù)交互應(yīng)用程序中 [2]。 圖 3 MVC 組件類(lèi)型的關(guān)系和功能 Fig3 The relations and functions of MVC ponents’type MVC結(jié)構(gòu)提供了一種按功能對(duì)各種對(duì)象進(jìn)行分割的方法,其目的是為了將各對(duì)象間的耦合程度減至最小。 MVC結(jié)構(gòu)本來(lái)是為了將傳統(tǒng)的輸入( input)、處理( processing)、輸出( output)任務(wù)運(yùn)用到 圖形化用戶(hù)交互模型中而設(shè)計(jì)的。但是,將這些概念運(yùn)用于基于 Web 的企業(yè)級(jí)多層應(yīng)用領(lǐng)域也是很適合的。 在 MVC 結(jié)構(gòu)中,模型( Model)代表應(yīng)用程序的數(shù)據(jù)( data)和用于控制訪 5 問(wèn)和修改這些數(shù)據(jù)的業(yè)務(wù)邏輯( business rule)。 當(dāng)模型發(fā)生改變時(shí),它會(huì)通知視圖( View),并且為視圖提供查詢(xún)模型相關(guān)狀態(tài)的能力。同時(shí),它也為控制器( Controller)提供訪問(wèn)封裝在模型內(nèi)部的應(yīng)用程序功能的能力。 一個(gè)視圖( View)用來(lái)組織模型的內(nèi)容。它從模型那里獲得數(shù)據(jù)并指定這些數(shù)據(jù)如何表現(xiàn)。當(dāng)模型變化時(shí),視負(fù) 責(zé)維持?jǐn)?shù)據(jù)表現(xiàn)的一致性。視圖同時(shí)將用戶(hù)要求告知控制器( Controller)。 控制器( Controller)定義了應(yīng)用程序的行為;它負(fù)責(zé)對(duì)來(lái)自視圖的用戶(hù)要求進(jìn)行解釋?zhuān)堰@些要求映射成相應(yīng)的行為,這些行為由模型負(fù)責(zé)實(shí)現(xiàn)。在獨(dú)立運(yùn)行的 GUI客戶(hù)端,用戶(hù)要求可能是一些鼠標(biāo)單擊或是菜單選擇操作。在一個(gè) Web 應(yīng)用程序中,它們的表現(xiàn)形式可能是一些來(lái)自客戶(hù)端的 GET 或 POST 的 HTTP請(qǐng)求。模型所實(shí)現(xiàn)的行為包括處理業(yè)務(wù)和修改模型的狀態(tài)。根據(jù)用戶(hù)要求和模型行為的結(jié)果,控制器選擇一個(gè)視作為對(duì)用戶(hù)請(qǐng)求的應(yīng)答。通常一組 相關(guān)功能集對(duì)應(yīng)一個(gè)控制器。 視圖 視圖 (View)代表用戶(hù)交互界面,對(duì)于 Web 應(yīng)用來(lái)說(shuō),可以概括為 HTML 界面,但有可能為 XML、 WML和 Excel。隨著應(yīng)用的復(fù)雜性和規(guī)模性,界面的處理也變得具有挑戰(zhàn)性。一個(gè)應(yīng)用可能有很多不同的視圖, MVC 設(shè)計(jì)模式對(duì)于視圖的處理僅限于視圖上數(shù)據(jù)的采集和處理,以及用戶(hù)的請(qǐng)求,而不包括在視圖上的業(yè)務(wù)邏輯的處理。業(yè)務(wù)邏輯的處理由模型 (Model)完成。比如一個(gè)訂單的視圖只接受來(lái)自模型的數(shù)據(jù)并顯示給用戶(hù),以及將用戶(hù)界面的輸入數(shù)據(jù)和請(qǐng)求傳遞給控制和模型。 控制器 控制器 (Controller)可以理解為從用戶(hù)接收請(qǐng)求 , 將模型與視圖匹配在一起,共同完成用戶(hù)的請(qǐng)求。劃分控制層的作用也很明顯,它清楚地告訴你,它就是一個(gè)分發(fā)器,選擇什么樣的模型,選擇什么樣的視圖,可以完成什么樣的用戶(hù)請(qǐng)求??刂茖硬⒉蛔鋈魏蔚臄?shù)據(jù)處理。例如,用戶(hù)點(diǎn)擊一個(gè)連接,控制層接受請(qǐng)求后 , 并不處理業(yè)務(wù)信息,它只把用戶(hù)的信息傳遞給模型,告訴模型做什么,選擇符合要求的視圖返回給用戶(hù)。因此,一個(gè)模型可能對(duì)應(yīng)多個(gè)視圖,一個(gè)視圖可能對(duì)應(yīng)多個(gè)模型。 模型 6 模型 (Model):就是業(yè)務(wù)流程 /狀態(tài)的處理以及數(shù)據(jù)模型的制定。業(yè)務(wù)流程的處理 過(guò)程對(duì)其它層來(lái)說(shuō)是黑箱操作,模型接受視圖請(qǐng)求的數(shù)據(jù),并返回最終的處理結(jié)果。模型的設(shè)計(jì)可以說(shuō)是 MVC 最主要的核心。 常見(jiàn) web 開(kāi)發(fā)語(yǔ)言 mvc 框架 ? PHP: FleaPHP, CakePHP , Joomla ? JAVA: Struts , Spring ? Python: Django , Quixote ? Ruby: Ruby On Rails[3] 本設(shè)計(jì)實(shí)現(xiàn) mvc 的技術(shù) ? JSP 作為視圖,只用于顯示 ? Servlet 作為控制器,所有的請(qǐng)求,跳轉(zhuǎn)都由 servlet 完成 ? 業(yè)務(wù)邏輯部分由 javabean完成 B R O W S ER( C o n t r o l l e r )S e r v l e t( V i e w )J S P( M o d e l )J a v a B e a nR e q u e s t15R e s p o n s eR e d i r e c t342I n s t a n t i a t eS e r v l e t C o n t a i n e r( E I S ) 圖 4 MVC 設(shè)計(jì)模式 Fig4 MVC Design Pattern 2 系統(tǒng)需求分析 根據(jù)上面所定義的課題研究方向及目標(biāo),本章將對(duì)系統(tǒng)功能進(jìn)行具體的需求分析,具體分析跳蚤購(gòu)物網(wǎng)站所要實(shí)現(xiàn)的功能及欲達(dá)到的效果。 需求調(diào)研 首先從主流的購(gòu)物網(wǎng)站上面如淘寶網(wǎng)、當(dāng)當(dāng)網(wǎng)去看他們的版面設(shè)計(jì) 及功能 ,同時(shí)也在校內(nèi)同學(xué)之間去 調(diào)查同學(xué)們對(duì)跳蚤網(wǎng)站的一些所要實(shí)現(xiàn)的功能和版面設(shè)計(jì)。 同時(shí)也到網(wǎng)上去找一些做得比較適合我做的一些大學(xué)生購(gòu)物網(wǎng)站來(lái)學(xué)習(xí),并且自己去注冊(cè) 一個(gè)帳號(hào),親自體會(huì)他們網(wǎng)站的強(qiáng)大功能然后記錄下來(lái)。 7 業(yè)務(wù)流程分析 本系統(tǒng)工作流程是:用戶(hù)用瀏覽器登錄到網(wǎng)站主頁(yè),可以查看各個(gè)用戶(hù)所要出售的各種商品,同時(shí)可以查看商品的詳細(xì)信息包括發(fā)布商品的人的信息和商品數(shù)量和商品狀態(tài)。同時(shí)訪問(wèn)網(wǎng)站的人也可以搜索自己感興趣的商品。但是只有注冊(cè)了,才有可能去買(mǎi)商品。同時(shí)注冊(cè)者也可以通過(guò)管理員對(duì)自己賬戶(hù)充值,類(lèi)似于支付寶功能。同時(shí)管理員可以查詢(xún)注冊(cè)用戶(hù)的詳細(xì)信息。 具體目標(biāo)如下: ( 1)操作簡(jiǎn) 單、界面友好:用戶(hù)可以發(fā)布、查詢(xún)商品的各種相關(guān)信息,同時(shí)可以根據(jù)商品的狀態(tài)來(lái)是否購(gòu)買(mǎi)商品。 ( 2)即時(shí)可見(jiàn):登錄用戶(hù)可以隨時(shí)查看自己所購(gòu)買(mǎi)的商品的數(shù)量、價(jià)格等方面的信息。 系統(tǒng)數(shù)據(jù)流圖 本系統(tǒng)主要完成跳蚤網(wǎng)站的瀏覽與管理的功能 ,因此,在邏輯上可以將系統(tǒng)分為網(wǎng)站瀏覽系統(tǒng)和網(wǎng)站管理系統(tǒng)兩部分 ,同時(shí),系統(tǒng)的所有數(shù)據(jù)都需通過(guò)一個(gè)數(shù)據(jù)庫(kù)系統(tǒng)來(lái)實(shí)現(xiàn)查詢(xún)、更新和輸入,所以在總體上可將總系統(tǒng)分為網(wǎng)站瀏覽系統(tǒng)、網(wǎng)站管理系統(tǒng)和數(shù)據(jù)庫(kù)系統(tǒng)三個(gè)系統(tǒng),對(duì)本系統(tǒng)操作的數(shù)據(jù)源有普通瀏覽者、注冊(cè)用戶(hù)和管理員三種 [4]。 8 圖 5 系統(tǒng)數(shù)據(jù)流圖 Fig5 System data flow diagram 圖 6 用戶(hù)登錄數(shù)據(jù)流 Fig6 The data flow diagram of user login 系統(tǒng)功能需求分析 功能劃分 根據(jù)上一節(jié)的流程圖,把系統(tǒng)劃分成兩個(gè)大的模塊來(lái)完成:前臺(tái)模塊和后臺(tái)管理模塊。 模塊劃分如表所示。 瀏覽者 網(wǎng)站瀏覽系統(tǒng) 注冊(cè)用戶(hù) 數(shù)據(jù)庫(kù)系統(tǒng) 商品管理系統(tǒng) 用戶(hù)信息 商品信息 站點(diǎn)信息 新用戶(hù)注冊(cè)信息 管理員信息 系統(tǒng)信息 用戶(hù)信息 修改信息 商品信息 管理員 登陸信息 登陸后的管理員 管理員信息 修改用戶(hù)信息 商品信息 新用戶(hù)注冊(cè)信息 登陸信息 9 表 1 模塊及功能 Table1 Modules and function 序號(hào) 功能模塊類(lèi)別 功能模塊 備注 1 前臺(tái)模塊 查看物品功能塊 物品分類(lèi)列表功能塊 物品搜索模塊 物品發(fā)布模塊 注冊(cè)功能塊 登陸功能塊 公共模塊 顯示所有物品信息 2 用戶(hù)管理模塊 用戶(hù)信息管理功能塊 用戶(hù)金額管理功能塊 3 系統(tǒng)管理模塊 用戶(hù)管理模塊 功能描述 表 2 前臺(tái)功能列表 Table2 The function list of front modules 序號(hào) 功能列表 功能明細(xì) 1 首頁(yè) 用戶(hù)登錄功能塊 用戶(hù)注冊(cè)功能塊 商品搜索功能塊 商品發(fā)布功能塊 商品分類(lèi)目錄塊 2 用戶(hù)登錄功能塊 登錄用戶(hù) 3 用戶(hù)注冊(cè)功能塊 用戶(hù)注冊(cè) 4 商品搜索功能塊 可以按商品類(lèi)別搜索商品 5 商品發(fā)布功能塊 登錄的用戶(hù)可以發(fā)布自己想要出售的商品 6 商品分類(lèi)目錄塊 可以查看所有用戶(hù)的商品的詳細(xì)信息,并且可以分類(lèi)查看 表 3 用戶(hù)管理模塊 Table3 The user management modules 序號(hào) 功能列表 功能明細(xì) 1 用戶(hù)信息管理功能塊 管理員可以查看各個(gè)用戶(hù)的詳細(xì)信息,并且可以刪除用戶(hù) 2 用戶(hù)金額管理功能塊 管理員可以為每個(gè)用戶(hù)充值 10 3 系統(tǒng)設(shè)計(jì) 系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì) 本系統(tǒng)主要包括三大模塊組成:網(wǎng)站訪問(wèn)者模塊、用戶(hù)模塊、系統(tǒng)管理員模塊 [5]。 整個(gè)系統(tǒng)的結(jié)構(gòu)框架如下圖所示 圖 7 結(jié)構(gòu)框架 Table7 Structural framework 數(shù)據(jù)庫(kù)表的設(shè)計(jì) 數(shù)據(jù)庫(kù)設(shè)計(jì)是項(xiàng)目開(kāi)發(fā)中的系統(tǒng)設(shè)計(jì)中非常重要的另一個(gè)關(guān)鍵環(huán)節(jié),在這里之所以特別強(qiáng)調(diào)數(shù)據(jù)庫(kù)設(shè) 計(jì)的重要性,是因?yàn)閿?shù)據(jù)庫(kù)設(shè)計(jì)就像在建設(shè)高樓大廈的根基一樣,如果設(shè)計(jì)不好,在后來(lái)的系統(tǒng)維護(hù)、變更和功能擴(kuò)充時(shí),甚至在系統(tǒng)開(kāi)發(fā)過(guò)程中,將會(huì)引起比較大的問(wèn)題,會(huì)遇到非常大的困難,大量的工作將會(huì)重新進(jìn)行 [6]。 (1) 數(shù)據(jù)庫(kù)表及表之間的相互關(guān)系 本系統(tǒng)需要設(shè)計(jì)的數(shù)據(jù)庫(kù)表如下 11 表 4 數(shù)據(jù)庫(kù)表 Table4 Database table 序 號(hào) 數(shù)據(jù)庫(kù)表 數(shù)據(jù)庫(kù)表存儲(chǔ)內(nèi)容 1 tb_member 存儲(chǔ)用戶(hù)基本信息 2 tb_manager 存儲(chǔ)管理員賬號(hào)和密碼 3 tb_goods 存儲(chǔ)商品的基本信息 4 tb_order 存儲(chǔ)訂單信息 ( 2) 數(shù)據(jù)庫(kù)表結(jié)構(gòu)的詳細(xì)設(shè)計(jì) 下面開(kāi)始對(duì)上一節(jié)列出的數(shù)據(jù)表