版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 網(wǎng)站建設(shè)技術(shù)課程設(shè)計(jì)</p><p> 學(xué) 院 、 系: 信息工程學(xué)院 </p><p> 專 業(yè): 信息管理與信息系統(tǒng) </p><p> 姓 名: </p><p> 學(xué) 號(hào):
2、 </p><p> 指 導(dǎo) 教 師: </p><p> 成 績(jī): </p><p> 2016年06月27日</p><p><b> 目錄</b></p><p> 一、
3、電子商務(wù)網(wǎng)站設(shè)計(jì)模式2</p><p> 1.1 MVC設(shè)計(jì)模式的概述2</p><p> 1.2電子商務(wù)網(wǎng)站應(yīng)用技術(shù)及系統(tǒng)框架的介紹4</p><p> 1.3系統(tǒng)的軟件開發(fā)工具5</p><p> 二、電子商務(wù)網(wǎng)站的需求分析與功能設(shè)計(jì)6</p><p> 2.1 系統(tǒng)的需求分析6</p&
4、gt;<p> 三、電子商務(wù)網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)7</p><p> 3.1 電子商務(wù)網(wǎng)站數(shù)據(jù)庫(kù)的設(shè)計(jì)與實(shí)現(xiàn)7</p><p> 3.1.1 數(shù)據(jù)庫(kù)的簡(jiǎn)介7</p><p> 3.1.2 數(shù)據(jù)庫(kù)的需求分析7</p><p> 3.1.3 數(shù)據(jù)表結(jié)構(gòu)設(shè)計(jì)8</p><p> 3.2 數(shù)據(jù)持
5、久層的設(shè)計(jì)與實(shí)現(xiàn)8</p><p> 3.3 業(yè)務(wù)邏輯層的設(shè)計(jì)與實(shí)現(xiàn)9</p><p> 3.4 控制器的設(shè)計(jì)與實(shí)現(xiàn)9</p><p> 3.5 視圖層的實(shí)現(xiàn)12</p><p><b> 總結(jié)15</b></p><p><b> 參考文獻(xiàn)16</b>
6、</p><p> 一、電子商務(wù)網(wǎng)站設(shè)計(jì)模式</p><p> 1.1 MVC設(shè)計(jì)模式的概述</p><p> MVC是一種設(shè)計(jì)模式,它強(qiáng)制性的將應(yīng)用程序的輸入、處理和輸出分開。使用MVC的應(yīng)用程序被分為3個(gè)核心部件:模型(Model)、視圖(View)、控制器(Controller)。它們各司其職,既分工明確又相互協(xié)作。</p><p&g
7、t; MVC設(shè)計(jì)模式的典型流程[3][4]為:首先Controller接收用戶的請(qǐng)求,并決定應(yīng)該調(diào)用哪個(gè)Model來(lái)進(jìn)行處理,然后Model用業(yè)務(wù)邏輯來(lái)處理用戶的請(qǐng)求并返回?cái)?shù)據(jù),最后Controller用相應(yīng)的View格式化Model返回的數(shù)據(jù),并通過表示層呈現(xiàn)給用戶。</p><p> 具體的關(guān)系如圖1.1所示。</p><p> 圖1·1 模型、視圖、控制器之間的分工協(xié)
8、作關(guān)系</p><p> 控制層(Controller)可以理解為從用戶接收請(qǐng)求,將模型與視圖匹配在一起,共同完成用戶的請(qǐng)求。劃分控制層的作用也很明顯,它清楚地告訴我們,它就是一個(gè)分發(fā)器,選擇什么樣的模型,選擇什么樣的視圖,可以完成什么樣的用戶請(qǐng)求。控制層并不做任何的數(shù)據(jù)處理。控制層的功能為:接受用戶的請(qǐng)求,根據(jù)用戶的請(qǐng)求調(diào)用某個(gè)模型進(jìn)行業(yè)務(wù)處理,將處理結(jié)果送給某個(gè)視圖進(jìn)行顯示。</p><
9、p> 模型層(Model)就是業(yè)務(wù)流程/狀態(tài)的處理以及業(yè)務(wù)規(guī)則的制定。業(yè)務(wù)流程的處理過程對(duì)其它層來(lái)說(shuō)是黑箱操作,模型接受視圖請(qǐng)求的數(shù)據(jù),并返回最終的處理結(jié)果。它的作用是反映整個(gè)應(yīng)用程序的狀態(tài),對(duì)用戶請(qǐng)求進(jìn)行業(yè)務(wù)邏輯處理,響應(yīng)狀態(tài)查詢,通知視圖并更新業(yè)務(wù)狀態(tài)。</p><p> 視圖層(View)代表用戶交互界面,對(duì)于Web應(yīng)用來(lái)說(shuō),可以概括為顯示界面,隨著應(yīng)用的復(fù)雜性和規(guī)模性,界面的處理也變得具有挑戰(zhàn)性
10、。一個(gè)應(yīng)用可能有很多不同的視圖,MVC設(shè)計(jì)模式對(duì)于視圖的處理僅限于視圖上數(shù)據(jù)的采集和處理,以及用戶的請(qǐng)求,而不包括在視圖上的業(yè)務(wù)流程的處理。業(yè)務(wù)流程的處理交予模型(Model)處理。視圖層的功能就是顯示模型的數(shù)據(jù),接受數(shù)據(jù)更新并請(qǐng)求更新視圖數(shù)據(jù),接受用戶輸入的數(shù)據(jù)并送給控制層。</p><p> MVC設(shè)計(jì)模式不僅可以實(shí)現(xiàn)功能模塊和顯示模塊的分離,同時(shí)它還提高了應(yīng)用系統(tǒng)的可維護(hù)性、可擴(kuò)展性、可移植性和組件的可復(fù)
11、用行,是一個(gè)優(yōu)秀的創(chuàng)建軟件的途徑,尤其實(shí)在Java Web應(yīng)用程序的構(gòu)架方面。Java EE把MVC引入Web領(lǐng)域,在此基礎(chǔ)上架構(gòu)出一套稱為Model2[5]的體系,使Java Web應(yīng)用程序的健壯性、代碼重用和結(jié)構(gòu)方面新上一個(gè)新臺(tái)階。</p><p> 1.2電子商務(wù)網(wǎng)站應(yīng)用技術(shù)及系統(tǒng)框架的介紹</p><p> 在本系統(tǒng)的設(shè)計(jì)過程中,根據(jù)MVC模式,使用Struts 2、Sprin
12、g、Hibernate技術(shù)進(jìn)行系統(tǒng)的開發(fā)。 </p><p> ?。?)Struts [6][7]是Apache基金會(huì)Jakarta 項(xiàng)目組的一個(gè)開源項(xiàng)目,它采用 MVC 模式,能夠很好地幫助Java開發(fā)者開發(fā) Web 應(yīng)用,它能大量減少開發(fā) Web 應(yīng)用的時(shí)間,提高產(chǎn)品的重用度。Struts 主要是采用 Servlet 和 JSP 技術(shù)來(lái)實(shí)現(xiàn)的,它把 Servlet、JSP、自定義標(biāo)簽和信息資源(message
13、 resources) 整合到一個(gè)統(tǒng)一的框架中,Struts 它只有一個(gè)中心控制器,他采用 XML 定制轉(zhuǎn)向的 URL,采用 Action 來(lái)處理邏輯,開發(fā)人員利用其進(jìn)行開發(fā)時(shí)不用再自己編碼實(shí)現(xiàn)全套 MVC 模式。 </p><p> Struts這是它的一大優(yōu)點(diǎn),使開發(fā)者能更深入的了解其內(nèi)部實(shí)現(xiàn)機(jī)制。Struts Framework 是 MVC模式的體現(xiàn)。在系統(tǒng)中,Struts 2充當(dāng)控制器的角色,它通過核心
14、控制器FilterDispatch與攔截器Interceptor實(shí)現(xiàn)了Model2架構(gòu),及MVC架構(gòu),其體系結(jié)構(gòu)如圖1·2所示。</p><p> 圖1·2 Struts的MVC實(shí)現(xiàn)</p><p> ?。?)Spring 是由Rod Johnson創(chuàng)建并且是一個(gè)開源框架,是為了解決企業(yè)應(yīng)用程序開發(fā)復(fù)雜性而創(chuàng)建的。Spring 使用基本的 JavaBean 來(lái)完成以前
15、只可能由 EJB 完成的事情。然而,Spring 的用途不僅限于服務(wù)器端的開發(fā)。從簡(jiǎn)單性、可測(cè)試性和松耦合的角度而言,任何 Java 應(yīng)用都可以從Spring 中受益[8]。 </p><p> 簡(jiǎn)單的說(shuō),Spring是一個(gè)輕量級(jí)的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架。在系統(tǒng)開發(fā)的過程中,Spring充當(dāng)?shù)氖钦麄€(gè)應(yīng)用的Bean資源管家,甚至包括Struts 2的業(yè)務(wù)控制器Action 實(shí)例的接管,充
16、當(dāng)Struts的得力助手。</p><p> 時(shí)代在發(fā)展,技術(shù)在進(jìn)步,人們對(duì)于各種復(fù)雜數(shù)據(jù)及業(yè)務(wù)邏輯的處理要求也在不斷的提高,MVC 三層模型已不能滿足高性能,低耦合框架結(jié)構(gòu)的分層要求,此時(shí),人們引入了持久層的概念,用于封裝底層數(shù)據(jù)的持久化與訪問操作。</p><p> 對(duì)象—關(guān)系映射ORM(object-Relation Mapping)是用來(lái)將對(duì)象與對(duì)象之間的關(guān)系對(duì)應(yīng)到數(shù)據(jù)庫(kù)與表之
17、間的關(guān)系的一種模式。</p><p> Hibernate是一個(gè)面向Java環(huán)境的對(duì)象/關(guān)系數(shù)據(jù)庫(kù)映射工具。Hibernate 是一個(gè)開源的對(duì)象關(guān)系映射框架,它對(duì)JDBC 進(jìn)行了非常輕量級(jí)的封裝,使JAVA程序員可以隨心所欲的使用面向?qū)ο蟮木幊趟枷雭?lái)操作數(shù)據(jù)庫(kù)。它負(fù)責(zé)持久層,直接與底層數(shù)據(jù)庫(kù)打交道[9][10]。</p><p> 使用Struts 2、Spring、Hibernate
18、 組合的框架[11]后,系統(tǒng)的框架如下圖2·3所示。</p><p> 圖1·3 系統(tǒng)的框架圖</p><p> 1.3系統(tǒng)的軟件開發(fā)工具</p><p> (1)開發(fā)工具 MyEclipse </p><p> MyEclipse 是企業(yè)級(jí)工作平臺(tái),全稱是 MyEclipse Enterprise Workben
19、ch,是對(duì) Eclipse IDE 的擴(kuò)展。MyEclipse是功能比較豐富的集成開發(fā)環(huán)境,比如編碼、調(diào)試、測(cè)試和發(fā)布功能,并且完整支持 HTML,Struts,JSF,CSS,Javascript,SQL,Hibernate。 </p><p> ?。?)服務(wù)器 Tomcat </p><p> Tomcat是一個(gè)免費(fèi)的開源的Serlvet容器,它是APache基金會(huì)的Jakarta項(xiàng)
20、目中的一個(gè)核心項(xiàng)目,由 APache,sun 和其它一些公司及個(gè)人共同開發(fā)而成 。</p><p> ?。?)數(shù)據(jù)庫(kù)MySQL</p><p> MySQL是由MySQL AB公司開發(fā)、發(fā)布并支持的全世界最流行的開源SQL數(shù)據(jù)庫(kù)管理系統(tǒng),于2008年被Sun公司收購(gòu)[12]。</p><p> 二、電子商務(wù)網(wǎng)站的需求分析與功能設(shè)計(jì)</p><
21、p> 需求分析在軟件開發(fā)過程中,具有舉足輕重的地位,它具有決策性,方向性,策略性的作用。需求分析的任務(wù)就是要解決“做什么”的問題,就是要全面地理解用戶的各項(xiàng)需求,并準(zhǔn)確地表達(dá)所接受的用戶需求。功能設(shè)計(jì)則是具體的說(shuō)明系統(tǒng)要完成的功能。</p><p> 2.1 系統(tǒng)的需求分析</p><p> 系統(tǒng)的實(shí)際應(yīng)用性很明顯,電子商務(wù)發(fā)展非常迅速,人們追求的是簡(jiǎn)捷、方便、省時(shí),通過Int
22、ernet選購(gòu)商品,不必花費(fèi)太多的時(shí)間去逛商場(chǎng),坐在家里上網(wǎng)就可以買到稱心的商品,符合人們的心愿。但是,系統(tǒng)不僅僅只要有簡(jiǎn)單易學(xué)的操作界面,還需要考慮交易的安全性,所以在注重界面美觀、容易操作的基礎(chǔ)上,還要特別注意對(duì)信息進(jìn)行保管。關(guān)鍵要注意:在具備基本的功能這個(gè)基礎(chǔ)上要保證操作簡(jiǎn)單以及界面美觀,并要使顧客很快適應(yīng)這個(gè)系統(tǒng)。</p><p> 本系統(tǒng)的應(yīng)包括的功能有:消費(fèi)者可以瀏覽新聞和商品信息,可以查看商品的詳
23、細(xì)信息,當(dāng)注冊(cè)后可以購(gòu)物,并可以對(duì)其購(gòu)物車進(jìn)行管理,購(gòu)物完成后提交訂單,購(gòu)物完成后可以查看訂單。會(huì)員購(gòu)物完成后可以自動(dòng)增加相應(yīng)的積分。管理員根據(jù)不同的權(quán)限可以對(duì)新聞模塊,訂單和商品模塊,會(huì)員管理模塊,流量統(tǒng)計(jì)模塊進(jìn)行管理。具有高級(jí)權(quán)限的管理員可以添加新的管理員。電子商務(wù)網(wǎng)站主要有新聞發(fā)布模塊、會(huì)員管理模塊、商品管理模塊、購(gòu)物車及訂單管理模塊、系統(tǒng)用戶管理與流量統(tǒng)計(jì)模塊。系統(tǒng)的總體功能結(jié)構(gòu)圖如下3·1所示。</p>
24、<p> 圖2·1 系統(tǒng)總體功能模塊圖</p><p> 三、電子商務(wù)網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)</p><p> 3.1 電子商務(wù)網(wǎng)站數(shù)據(jù)庫(kù)的設(shè)計(jì)與實(shí)現(xiàn)</p><p> 3.1.1 數(shù)據(jù)庫(kù)的簡(jiǎn)介</p><p> 本系統(tǒng)采用MySQL作為數(shù)據(jù)庫(kù)平臺(tái),它對(duì)存儲(chǔ)過程、觸發(fā)器和視圖都有很好的支持,并且MySQL是開源的數(shù)據(jù)
25、庫(kù)服務(wù)器,有利于降低開發(fā)成本。支持上千萬(wàn)條的數(shù)據(jù)記錄。安裝簡(jiǎn)單,使用方便。</p><p> 3.1.2 數(shù)據(jù)庫(kù)的需求分析</p><p> 網(wǎng)站的需求重點(diǎn)體現(xiàn)在各種信息的提供、保存、更新和查詢。這就要求數(shù)據(jù)庫(kù)結(jié)構(gòu)能夠滿足各種信息的輸出和輸入。</p><p> 針對(duì)網(wǎng)站的需求,通過對(duì)網(wǎng)站各個(gè)模塊的需求分析,可以得到所需實(shí)體的數(shù)據(jù)結(jié)構(gòu):</p>
26、<p> 系統(tǒng)用戶信息:系統(tǒng)用戶的編號(hào)、賬戶、密碼、權(quán)限等信息。</p><p> 購(gòu)物車信息:購(gòu)物車編號(hào)、所屬會(huì)員編號(hào)、購(gòu)物車的總金額、購(gòu)物車狀態(tài)。</p><p> 購(gòu)物車商品選購(gòu)記錄信息:編號(hào)、所屬購(gòu)物車編號(hào)、所屬商品編號(hào)、選購(gòu)數(shù)量、成交價(jià)格、成交總價(jià)。</p><p> 訂單信息:編號(hào)、所屬的購(gòu)物車編號(hào)、所屬的商品編號(hào)、訂單編號(hào)、訂單日期、
27、訂單狀態(tài)。</p><p> 注冊(cè)會(huì)員信息:會(huì)員編號(hào)、所屬會(huì)員級(jí)別號(hào)、登錄賬號(hào)、密碼、會(huì)員真實(shí)姓名、電話、地址、郵政編碼、郵政編碼、最后一次登錄的日期、會(huì)員積分等。</p><p> 會(huì)員級(jí)別信息:會(huì)員級(jí)別編號(hào)、會(huì)員級(jí)別名稱、所需積分、優(yōu)惠百分比。</p><p> 商品類別信息:編號(hào)、上級(jí)商品類別編號(hào)、商品類別名稱。</p><p>
28、 商品信息:編號(hào)、所屬商品類別編號(hào)、商品名稱、商品市場(chǎng)價(jià)、商品促銷價(jià)、商品型號(hào)、商品圖片、商品視頻、商品描述、是否有促銷價(jià)、商品詳情靜態(tài)頁(yè)面路徑、商品狀態(tài)。</p><p> 新聞欄目信息:編號(hào)、上級(jí)欄目編號(hào)、新聞欄目編號(hào)、新聞欄目名稱。</p><p> 新聞信息:編號(hào)、所屬新聞欄目ID、新聞標(biāo)題、新聞內(nèi)容、新聞?wù)㈥P(guān)鍵字、是否圖片新聞、圖片URL、新聞來(lái)源、新聞發(fā)布日期、作者、
29、點(diǎn)擊數(shù)、排序優(yōu)先、狀態(tài)等。</p><p> 流量信息:編號(hào)、來(lái)源URL、受訪頁(yè)面的URL、訪客的URL、物理地址、訪問時(shí)間等。</p><p> 3.1.3 數(shù)據(jù)表結(jié)構(gòu)設(shè)計(jì)</p><p> 表就是數(shù)據(jù)庫(kù)中用來(lái)存放數(shù)據(jù)的場(chǎng)所。在數(shù)據(jù)庫(kù)中可以有多個(gè)表,但表名應(yīng)該是唯一的。同一數(shù)據(jù)庫(kù)中的表可以相互關(guān)聯(lián),也可以彼此獨(dú)立。該系統(tǒng)包含多個(gè)表,每張表存儲(chǔ)著該系統(tǒng)某項(xiàng)功能
30、的數(shù)據(jù)信息[20],根據(jù)上述的數(shù)據(jù)需求分析,可以得到表結(jié)構(gòu)。</p><p> 如表3·1為系統(tǒng)用戶信息表,記錄了系統(tǒng)用戶的屬性信息。</p><p> 表 3·1 系統(tǒng)用戶表(admin)</p><p> 3.2 數(shù)據(jù)持久層的設(shè)計(jì)與實(shí)現(xiàn)</p><p> 持久層是專門負(fù)責(zé)持久化工作的邏輯層,由它統(tǒng)一與數(shù)據(jù)庫(kù)打交
31、道。它封裝了所有與數(shù)據(jù)庫(kù)相關(guān)的操作和細(xì)節(jié)。持久層是業(yè)務(wù)邏輯層與底層數(shù)據(jù)庫(kù)之間的紐帶,除了完成關(guān)系數(shù)據(jù)表的持久化以外,還要提供統(tǒng)一的數(shù)據(jù)訪問服務(wù)。Hibernate作為持久層中間件,功能強(qiáng)大。它可以使開發(fā)人員方便的實(shí)現(xiàn)數(shù)據(jù)表的持久化,為其提供統(tǒng)一的數(shù)據(jù)訪問服務(wù)。</p><p> 統(tǒng)一數(shù)據(jù)訪問接口。在系統(tǒng)中,所有的模塊使用統(tǒng)一的數(shù)據(jù)訪問接口,減少底層的代碼開發(fā)量,提高系統(tǒng)的維護(hù)效率。系統(tǒng)使用BaseDao及其實(shí)現(xiàn)
32、為系統(tǒng)提供數(shù)據(jù)訪問服務(wù)。2.表的持久化及表的關(guān)聯(lián)</p><p> 利用Hibernate的功能實(shí)現(xiàn)新聞欄目表對(duì)應(yīng)的持久化類Newscolumns及其ORM映射文件Newscolumns.hbm.xml實(shí)現(xiàn)新聞欄目的自身多對(duì)一的關(guān)聯(lián)。</p><p> 3.3 業(yè)務(wù)邏輯層的設(shè)計(jì)與實(shí)現(xiàn)</p><p> Dao組件已經(jīng)實(shí)現(xiàn)了統(tǒng)一的數(shù)據(jù)訪問,業(yè)務(wù)邏輯組件則調(diào)用Da
33、o組件提供的數(shù)據(jù)訪問服務(wù),替業(yè)務(wù)控制器實(shí)現(xiàn)真正意義上的用戶請(qǐng)求處理[14]。通常的業(yè)務(wù)邏輯單元的劃分是針對(duì)用戶請(qǐng)求進(jìn)行的,從事務(wù)管理的角度而言,這種業(yè)務(wù)邏輯單元具有原子性,因此,一個(gè)用戶請(qǐng)求幕后往往會(huì)有一個(gè)相應(yīng)的業(yè)務(wù)處理單元,同時(shí),它也是一個(gè)事務(wù)管理單元。</p><p> 在SSH2組合框架中,Spring負(fù)責(zé)接管業(yè)務(wù)邏輯層。利用Spring的面向切面功能,系統(tǒng)的所有業(yè)務(wù)邏輯組件統(tǒng)一采用Spring的Bean
34、NameAutoProxyCreatorf 自動(dòng)創(chuàng)建事務(wù)代理,這樣就不必為每個(gè)業(yè)務(wù)邏輯組件創(chuàng)建事務(wù)代理,大大降低了application.xml中代碼的冗余度,提高了代碼的重用性和可維護(hù)性。</p><p> Spring的控制反轉(zhuǎn)IoC功能,可以使我們將統(tǒng)一的數(shù)據(jù)訪問Dao組件注入到業(yè)務(wù)邏輯層中,使我們可以方便的調(diào)用Dao組件中方法。</p><p> 3.4 控制器的設(shè)計(jì)與實(shí)現(xiàn)&l
35、t;/p><p> 控制器在本系統(tǒng)是通過Struts2來(lái)實(shí)現(xiàn)的。Strut2通過核心控制器FilterDispatch與攔截器Interceptor攔截用戶請(qǐng)求,針對(duì)不同的用戶請(qǐng)求,調(diào)用相應(yīng)的業(yè)務(wù)控制器來(lái)進(jìn)行處理。業(yè)務(wù)控制器調(diào)用不同的業(yè)務(wù)邏輯處理,最終有業(yè)務(wù)控制器返回一個(gè)Result命名視圖。</p><p> 使用Struts 2的流程如下:用戶請(qǐng)求均通過直接調(diào)用Action類的相應(yīng)方法
36、進(jìn)行處理,Action類中的相應(yīng)方法在收到請(qǐng)求后,首先送交攔截器LoginedCheckInterceptor進(jìn)行Session過期、登錄有效性及操作權(quán)限驗(yàn)證,當(dāng)Session已過期、尚未成功登錄或不具備新聞管理的權(quán)限時(shí),由攔截器直接返回相應(yīng)的錯(cuò)誤提示頁(yè)面或登錄頁(yè)面。否則繼續(xù)交由Struts2的默認(rèn)攔截器進(jìn)行相關(guān)處理,最后調(diào)用有Spring2依賴注入進(jìn)行的業(yè)務(wù)邏輯處理組件Service實(shí)例進(jìn)行業(yè)務(wù)邏輯處理,根據(jù)Struts.xml中的視
37、圖配置,將處理結(jié)果交由相應(yīng)的視圖組件返回展現(xiàn)給用戶。</p><p> 下面將以系統(tǒng)用戶管理模塊為例,講述控制器的實(shí)現(xiàn)。</p><p> 1. 系統(tǒng)用戶管理業(yè)務(wù)控制器AdminAction類</p><p> 系統(tǒng)用戶管理業(yè)務(wù)控制器AdminAction類采用模型驅(qū)動(dòng),直接使用持久化類Admin充當(dāng)模型類,用于封裝表單屬性、請(qǐng)求參數(shù)及處理結(jié)果。</p&
38、gt;<p> AdminAction類的功能有:處理登錄請(qǐng)求,處理推出請(qǐng)求,處理瀏覽系統(tǒng)用戶請(qǐng)求,處理刪除系統(tǒng)用戶的請(qǐng)求,處理添加系統(tǒng)用戶的請(qǐng)求,處理更新系統(tǒng)用戶的請(qǐng)求等。下述的代碼講述的是登錄,注銷,瀏覽,新增系統(tǒng)的功能。</p><p> /** 系統(tǒng)管理員處理控制器 */</p><p> @SuppressWarnings("serial"
39、)</p><p> public class AdminAction extends ActionSupport implements ModelDriven<Admin>{</p><p> /** 通過依賴注入AdminService組件實(shí)例 */</p><p> AdminService service;</p><p
40、> /** 系統(tǒng)用戶管理所有請(qǐng)求中常用的參數(shù)值 */</p><p> private String rand; //隨機(jī)驗(yàn)證碼</p><p> private String actionMsg;//Action間傳遞的消息參數(shù)</p><p> private List<Admin> adminList;//系統(tǒng)用戶列表<
41、;/p><p><b> //采用模型驅(qū)動(dòng)</b></p><p> private Admin model=new Admin();//用于封裝系統(tǒng)用戶屬性模型</p><p> public Admin getModel() {</p><p> return model;</p><p>
42、;<b> }</b></p><p> /** 處理登錄請(qǐng)求 */</p><p> public String login(){</p><p> if(!rand.equalsIgnoreCase((String)ServletActionContext.getRequest().getSession().getAttribute
43、("rand"))){</p><p> addActionError(getText("login_rand_error"));</p><p> return "login";</p><p><b> }else{</b></p><p> Adm
44、in tempAdmin = service.adminLogin(model.getLoginName(), MD5.MD5Encode(model.getLoginPwd()));</p><p> if(tempAdmin!=null){</p><p> ServletActionContext.getRequest().getSession().setAttribute(&q
45、uot;admin",tempAdmin);</p><p> return "index";</p><p><b> }else{</b></p><p> addActionError(getText("login_fail"));</p><p> ret
46、urn "login";</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> /** 處理注銷請(qǐng)求 */</p><p> public
47、 String logout(){</p><p> ServletActionContext.getRequest().getSession().invalidate();</p><p> return "login";</p><p><b> }</b></p><p> /**
48、處理瀏覽系統(tǒng)用戶請(qǐng)求 */</p><p> public String browseAdmin(){</p><p> if(actionMsg!=null){</p><p><b> try {</b></p><p> actionMsg = new String(actionMsg.getBytes(&
49、quot;ISO8859-1"),"gbk");</p><p> } catch (UnsupportedEncodingException e) {</p><p> e.printStackTrace();</p><p><b> }</b></p><p> addActi
50、onMessage(actionMsg);</p><p><b> }</b></p><p> adminList = service.browseAdmin();</p><p> return SUCCESS;</p><p><b> }</b></p><p&
51、gt; /** 處理新增系統(tǒng)用戶請(qǐng)求 */</p><p> public String addAdmin(){</p><p> Admin tempAdmin = new Admin();</p><p> tempAdmin.setLoginName(model.getLoginName());</p><p> tempAd
52、min.setLoginPwd(MD5.MD5Encode(model.getLoginPwd()));</p><p> tempAdmin.setPrivileges(model.getPrivileges());</p><p> if (service.saveOrUpdateAdmin(tempAdmin)){</p><p> addActionM
53、essage(getText("admin_add_succ"));</p><p><b> }else{</b></p><p> addActionMessage(getText("admin_add_fail"));</p><p><b> }</b></p&g
54、t;<p> return SUCCESS;</p><p><b> }</b></p><p> // setXX() 和getXX() 方法省略</p><p><b> }</b></p><p> 2.在Spring中配置業(yè)務(wù)控制器AdminAction類<
55、/p><p> 將Struts 2的業(yè)務(wù)控制器交給Spring容器來(lái)負(fù)責(zé),可以充分的利用Spring容器的IoC特性。Spring使用單例模式,為每個(gè)用戶的請(qǐng)求生成一個(gè)全新的實(shí)例。在applicationContext.xml中的配置如下:</p><p> <!-- 部署Struts2負(fù)責(zé)系統(tǒng)用戶管理的控制器AdminAction --> </p><p&
56、gt; <bean id="adminAction" class="com.ebuy.struts.action.AdminAction" scope="prototype"></p><p> <property name="service" ref="adminService"/>&
57、lt;/p><p><b> </bean></b></p><p> 在Spring中配置過業(yè)務(wù)控制器后,就可以在Struts.xml中直接引用AdminAction的beanid了,無(wú)需指定AdminAction的全類名。</p><p> 3.Struts.xml中配置業(yè)務(wù)控制器</p><p>
58、用戶的具體請(qǐng)求,業(yè)務(wù)控制器中的處理方法及結(jié)果展現(xiàn)視圖之間的對(duì)應(yīng)關(guān)系,必須在Struts 2的配置文件 Struts.xml中進(jìn)行正確的配置方能生效。對(duì)于哪些具有一定命名規(guī)則的用戶請(qǐng)求可以使用通配符實(shí)現(xiàn)動(dòng)態(tài)方法調(diào)用,如“admin_*”來(lái)表示。在Struts.xml中的配置如下:</p><p> <package name="admin" extends="ebuy"
59、; namespace="/admin"></p><p> <!-- 配置系統(tǒng)用戶管理的AdminAction映射 --></p><p> <action name="updateAdmin" class="adminAction" method="updateAdmin">
60、;</p><p> <result name="input">/admin/editAdmin.jsp</result></p><p> <interceptor-ref name="loginedCheck"/></p><p> <interceptor-ref name
61、="defaultStack"/></p><p> </action></p><p> <action name="admin_*" class="adminAction" method="{1}"></p><p> <result>
62、;/admin/{1}.jsp</result></p><p> <result name="input">/admin/{1}.jsp</result></p><p> <result name="index">/admin/index.jsp</result></p&
63、gt;<p> <result name="login">/admin/login.jsp</result></p><p> <result name="toBrowseAdmin" type="redirect-action"></p><p> <param na
64、me="actionName">admin_browseAdmin</param></p><p><b> </result></b></p><p> <interceptor-ref name="loginedCheck"/></p><p> <
65、;interceptor-ref name="defaultStack"/></p><p><b> </action></b></p><p> 控制器的配置流程是:首先完成業(yè)務(wù)控制類的功能實(shí)現(xiàn),然后將業(yè)務(wù)控制類注入到Spring的配置文件中, 最后在Struts 2中配置相應(yīng)的視圖結(jié)果。</p><p
66、> 3.5 視圖層的實(shí)現(xiàn)</p><p> 視圖層的功能就是顯示模型的數(shù)據(jù),接受用戶輸入的數(shù)據(jù)并送給控制層,接受數(shù)據(jù)更新并請(qǐng)求更新視圖數(shù)據(jù)。視圖層沒有任何的業(yè)務(wù)操作,它只負(fù)責(zé)接受用戶數(shù)據(jù)和顯示用戶數(shù)據(jù)。本節(jié)將給出系統(tǒng)運(yùn)行時(shí)頁(yè)面的部分效果圖。</p><p> 1.前臺(tái)頁(yè)面顯示畫面。</p><p> 用戶首次進(jìn)入網(wǎng)站首頁(yè)面展示的效果圖3·1所
67、示。</p><p> 圖3·1 網(wǎng)站首頁(yè)面</p><p> 進(jìn)入首頁(yè)后,用戶可以瀏覽商品信息,網(wǎng)站新聞等內(nèi)容。如果用戶需要購(gòu)物,則需注冊(cè)賬號(hào),注冊(cè)頁(yè)面如下圖3·2所示。</p><p><b> 圖3·2 注冊(cè)頁(yè)面</b></p><p> 用戶購(gòu)買完商品后,可以再購(gòu)物車中查看所
68、購(gòu)商品,并在其中可以修改數(shù)量,清空購(gòu)物車等。效果圖如下圖3·3所示。</p><p> 圖3·3 購(gòu)物車管理的頁(yè)面</p><p> 確認(rèn)過訂單信息后,可以提交訂單,訂單提交成功后會(huì)生成一個(gè)訂單編號(hào),通過訂單編號(hào),可以查看訂單的狀態(tài),進(jìn)行訂單的管理。訂單管理的效果圖如下圖3·4所示。</p><p> 圖3·4 訂單管理
69、頁(yè)面</p><p> 2.后臺(tái)管理員管理頁(yè)面</p><p> 系統(tǒng)用戶進(jìn)入頁(yè)面時(shí),首先要進(jìn)行登錄,登錄頁(yè)面如下圖3·5所示。</p><p> 圖3·5 管理員登錄</p><p> 管理員登錄后,會(huì)根據(jù)其權(quán)限分配相應(yīng)的功能。登錄后的頁(yè)面,如圖3·6所示。</p><p>
70、圖3·6 后臺(tái)管理主頁(yè)面</p><p> 后臺(tái)的訂單管理頁(yè)面的展示如下圖3·7所示。</p><p> 圖3·7 后臺(tái)的訂單管理頁(yè)面</p><p><b> 總結(jié)</b></p><p> 電子商務(wù)網(wǎng)站是現(xiàn)在流行的一種網(wǎng)上購(gòu)物方式。隨著互聯(lián)網(wǎng)的普及以及電子商務(wù)的發(fā)展和人們購(gòu)物理念
71、與購(gòu)物方式的改變,網(wǎng)上購(gòu)物系統(tǒng)將有著巨大的市場(chǎng)潛力。</p><p> 本文MVC模式,利用SSH2 組合框架,設(shè)計(jì)與開發(fā)了電子商務(wù)網(wǎng)站。本文所做的主要研究工作有:</p><p> 研究了電子商務(wù)研究的背景與意義,國(guó)內(nèi)外的研究現(xiàn)狀。</p><p> (2)對(duì)MVC模式進(jìn)行了概述,并對(duì)系統(tǒng)的應(yīng)用技術(shù)及系統(tǒng)框架進(jìn)行了介紹。</p><p&g
72、t; (3)根據(jù)電子商務(wù)網(wǎng)站的需求分析進(jìn)行了系統(tǒng)功能的設(shè)計(jì),并給出了相應(yīng)的用例圖。</p><p> (2)按照系統(tǒng)的架構(gòu)圖和網(wǎng)站的需求分析,設(shè)計(jì)了系統(tǒng)所需的數(shù)據(jù)庫(kù),并實(shí)現(xiàn)了數(shù)據(jù)持久層,業(yè)務(wù)邏輯層,控制層及視圖層。詳細(xì)的講述了各自的實(shí)現(xiàn)過程。</p><p> ?。?)對(duì)系統(tǒng)進(jìn)行了測(cè)試工作,保證系統(tǒng)能夠正常的運(yùn)行。</p><p> 在系統(tǒng)的設(shè)計(jì)過程中,有些模
73、塊的實(shí)現(xiàn)并不是很完整,如商品管理模塊中的視頻購(gòu)物功能,我并沒有能夠?qū)崿F(xiàn)。讓我意識(shí)到我的技術(shù)還遠(yuǎn)遠(yuǎn)不能夠達(dá)到要求。商家博客等模塊式出于以后系統(tǒng)設(shè)計(jì)的需要,但在系統(tǒng)設(shè)計(jì)的過程中并沒有實(shí)現(xiàn)這些功能。還有,網(wǎng)上支付功能我考慮過,但是功能的實(shí)現(xiàn)存在技術(shù)難題。希望在以后的工作中,我能夠解決好這些問題。</p><p> 系統(tǒng)測(cè)試這一塊我做的也是不夠好,由于沒有進(jìn)行過測(cè)試方面的工作,系統(tǒng)的測(cè)試并不是很完整,在以后的工作中,我
74、會(huì)希望把各個(gè)方面均衡的發(fā)展,能夠更快的適應(yīng)工作。</p><p> 電子商務(wù)網(wǎng)站的設(shè)計(jì)師一個(gè)龐大的工程,雖然系統(tǒng)我已經(jīng)完成了系統(tǒng)的設(shè)計(jì),但我希望在以后的工作中,能夠進(jìn)一步完善這個(gè)系統(tǒng),使其成為一個(gè)真正的能夠發(fā)布的系統(tǒng)。</p><p><b> 參考文獻(xiàn)</b></p><p> [1 ] 雷波特(Rayport Jeffrey),杰沃
75、斯基(Jaworski Bernard).電子商務(wù)[M].北京:中國(guó)人民</p><p> 大學(xué)出版社,2004.1</p><p> [2 ] 趙志升,李桂全.一種基于B/S結(jié)構(gòu)與C/S結(jié)構(gòu)的新體系結(jié)構(gòu)[J].電子應(yīng)用 </p><p> 技術(shù),2004(8):7-9</p><p> [3 ] 孫福振,李艷,李業(yè)剛.基于J2E
76、E的MVC設(shè)計(jì)模式的研究與實(shí)現(xiàn)[J].山東理 </p><p> 工大學(xué)學(xué)報(bào)(自然科學(xué)版).2006.20(2):49-56</p><p> [4 ] 陶維成.基于MVC的電子商務(wù)推薦系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].新鄉(xiāng)學(xué)院學(xué)報(bào)(自</p><p> 然科學(xué)版).2011(12):435-437</p><p> [5 ] 萬(wàn)峰科技.JS
77、P網(wǎng)站開發(fā)四“酷”全書[M].北京:電子工業(yè)出版社.2005.3</p><p> [6 ] 劉乃麗.《精通 JavaEE 項(xiàng)目案例:基于 Eclipse Spring Struts Hibernate》[M].</p><p> 北京:人民郵電出版社,2008.1</p><p> [7 ] [美]SueSpielman、Meeraj Kurmumpru
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于MVC模式的電子商務(wù)網(wǎng)站設(shè)計(jì)和實(shí)現(xiàn).pdf
- 基于MVC模式的電子商務(wù)網(wǎng)站開發(fā).pdf
- 基于mvc模式的小型b2c電子商務(wù)網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)開題報(bào)告
- 電子商務(wù)課程設(shè)計(jì)報(bào)告---電子商務(wù)網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)
- 基于MVC模式的電子商務(wù)自適應(yīng)網(wǎng)站設(shè)計(jì)與實(shí)現(xiàn).pdf
- 電子商務(wù)網(wǎng)站建設(shè)課程設(shè)計(jì)
- 電子商務(wù)網(wǎng)站個(gè)人課程設(shè)計(jì)報(bào)告
- 基于mvc模式的小型b2c電子商務(wù)網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)【文獻(xiàn)綜述】
- 電子商務(wù)網(wǎng)站設(shè)計(jì)報(bào)告
- 網(wǎng)站開發(fā)課程設(shè)計(jì)--基于javascript的電子商務(wù)網(wǎng)站開發(fā)
- 服裝類電子商務(wù)網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)-課程設(shè)計(jì)(報(bào)告)
- 電子商務(wù)網(wǎng)站設(shè)計(jì)開題報(bào)告
- 電子商務(wù)網(wǎng)站設(shè)計(jì)-開題報(bào)告
- 基于MVC的電子商務(wù)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于MVC的電子商務(wù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 旅游電子商務(wù)網(wǎng)站的設(shè)計(jì)
- (開題報(bào)告)基于jsp的電子商務(wù)網(wǎng)站設(shè)計(jì)與實(shí)現(xiàn)
- 電子商務(wù)網(wǎng)站的開發(fā)與設(shè)計(jì)
- 基于.net電子商務(wù)網(wǎng)站的設(shè)計(jì)與開發(fā)【開題報(bào)告】
- 基于jsp的電子商務(wù)網(wǎng)站設(shè)計(jì)與實(shí)現(xiàn)
評(píng)論
0/150
提交評(píng)論