




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、裝訂線長 春 大 學 畢業設計(論文)紙1 引 言1.1 網上手機商店的發展近年來,隨著internet的迅速崛起,互聯網已日益成為收集提供信息的最佳渠道并逐步進入傳統的流通領域。于是電子商務開始流行起來,越來越多的商家在網上建起在線商店,向消費者展示出一種新穎的購物理念。網上手機店是一種具有交互功能的商業信息系統。它向用戶提供特價手機和新品上市兩類信息資源。所謂特價手機是指那些日期過久的手機或者是活動的手機,會被放入到特價手機行列中;新品上市的信息,即這個星期或者這幾天某個手機廠商最新發布的手機信息等。網上手機購物系統具有強大的交互功能,可使商家和用戶方便的傳遞信息,完成電子交易。1.2 網
2、上手機店的現狀隨著社會的發展,網絡的普及,網上購物已成為在線業務的重要載體。網絡購物能夠繞過中介(如批發商、銷售商或經銷商)建立與客戶的直接關系。還可以為用戶提供商品的詳細信息,用戶可以在線購買商品,確定自己的訂單。網上銷售為人們提供了更廣闊的環境:人們不受時間的限制,不受空間的限制,不受傳統購物的諸多限制,可以隨時隨地在網上交易。更廣闊的市場:在網上這個世界將會變得很小,一個商家可以面對全球的消費者,而一個消費者可以在全球的任何一家商家購物。更快速的流通和低廉的價格:電子商務減少了商品流通的中間環節,節省了大量的開支,從而也大大降低了商品流通和交易的成本。更符合時代的要求:如今人們越來越追求
3、時尚、講究個性,注重購物的環境,網上購物,更能體現個性化的購物過程。1.3 網上手機店系統的構建現在流行的網上購物系統不僅要有漂亮的網頁,更要有嚴謹的規劃。每一個細小的環節都很重要。這樣才能使得在電子交易時避免不必要錯誤發生。我將使用html、jsp等技術來編輯網頁,使用了struts技術對網頁之間的請求進行相應的控制,能夠更輕松更方便的管理客戶的請求和相應的用戶管理。以及及時的將系統信息返回給展示頁面。由于傳統的管理信息系統的信息獲取方法是由專業文字錄入人員將信息輸入到管理系統的數據庫中,這種方法在數據量不大時有很多的應用場合。當數據量比較大,并且有較強的專業性時,錄入的費用和出錯的可能性都
4、相應上升。本系統通過運用hibernate技術把數據庫和動態網頁連接,使得出錯和成本都相應的降低。本文在實際應用開發中解決方案是建立網站, 以及自己的數據庫,使得所需商品信息可以及時的保存、更新,以更好的及時了解商品買賣的情況。目前網上手機商場布局比較凌亂,操作和簡便性也有一定得局限性。因此有必要重新設計并且組織一個結構清晰,操作簡單傻瓜式的一站式手機網上商城。因此經過此次畢業設計簡單的將手機網上商城進行了實現。共 39 頁 第 39 頁2 系統分析2.1可行性分析2.1.1經濟可行性本手機網上商店采用了b/s結構,主要看重的是其異地瀏覽和信息采集的靈活性。無論在任何時間、任何地點、任何系統,
5、只要可以使用瀏覽器上網,就都可以瀏覽網站。而且當網站的升級維護時,只需更新服務器端的軟件就可以,這減輕了異地用戶系統維護與升級的成本。數據庫方面選用了mysql,它能夠處理大量數據,同時保持數據的完整性并提供許多高級管理功能。并且mysql是開源的軟件使得程序開發成本得到最大的節省。而且開發工具是開放的,不需要任何費用,節省了開發成本。因此經濟可行。2.1.2技術可行性從技術角度考慮,java網絡編程實用性很強,相關書籍資料非常豐富,我們可以在學習中逐漸完善系統的開發。并且,隨著現代化的網絡技術的發展,眾多編程人員在論壇里相互交流經驗,無形中形成了跨局域的團隊互補團隊合作,方便了我們在碰到技術
6、問題時候及時的獲得解決辦法,提高了工作效率。我們經過比較之后選擇了java和mysql來開發這個系統,首先java是目前最優秀的網絡軟件開發語言,功能強大,簡單易學,而mysql是完全免費的,功能十分強大,針對中小企業能夠完全滿足要求。綜合以上原因,在技術上也是可行的。2.3 需求分析隨著計算機以及互聯網的普及,各家各戶都基本上購置了計算機,網絡消費也成為了當今一種流行趨勢。因此網上手機商店這個時候的出現是一種必然。2.3.1系統目標本系統以網絡瀏覽器為客戶端,通過對相應網站的訪問進而訪問本系統,實現手機商店的網絡化。2.3.2系統具體功能(1)顧客可以方便的注冊與登錄;(2)顧客可以靈活地檢
7、索所需的商品信息及了解特價商品信息;(3)顧客可以方便的查看詳細的商品資料;(4)顧客可以方便的管理自己的購物車,包括添加或刪除選購商品,修改購買數量及在線下訂單等一些操作;(5)顧客可以反饋自己的意見或留言;(6)商品管理員可以方便的管理商品及特價商品信息,包括新增,刪除,修改商品及特價商品;(7)訂單管理員可以方便的查看訂單,發貨與缺貨處理;(8)會員管理員可以方便的查看顧客反饋的信息以及具體的處理情況;(9)系統管理員可以方便的進行系統用戶的管理,包括新增,刪除,修改系統用戶。4 開發工具簡介4.1運行環境要求4.1.1 硬件環境要求(1)中央處理器:p3 以上;(2)內存:512mb;
8、(3)硬盤空間:2g; (4)顯示器:分辨率要求1024*768或更高;(5)光盤驅動器、鍵盤和鼠標;(6)對于網絡操作要有與windows兼容的網絡和網絡服務器。4.1.2 軟件環境要求(1)操作系統: microsoft windows98/2000/nt4.0/xp/vista;(2)數據庫系統:mysql;(3)java環境:jvm虛擬機。4.2開發工具 eclipse 是一個開放源代碼的、基于 java 的可擴展開發平臺。就其本身而言,它只是一個框架和一組服務,用于通過插件組件構建開發環境。幸運的是,eclipse 附帶了一個標準的插件集,包括 java 開發
9、工具(java development tools,jdt)。 eclipse最初是由ibm公司開發的替代商業軟件visual age for java的下一代ide開發環境,2001年11月貢獻給開源社區,現在它由非營利軟件供應商聯盟eclipse基金會(eclipse foundation)管理。 2003年,eclipse 3.0選擇osgi服務平臺規范為運行時架構。 2007年6月,穩定版3.3發布。2008年6月發布代號為ganymede的3.4版。eclipse是著名的跨平臺的自由集成開發環境(ide)。最初主要用來java語言開發,但是目前亦有人通過插件使其作為其他計算機語言比如
10、c+和python的開發工具。eclipse的本身只是一個框架平臺,但是眾多插件的支持使得eclipse擁有其他功能相對固定的ide軟件很難具有的靈活性。許多軟件開發商以eclipse為框架開發自己的ide。eclipse 最初由oti和ibm兩家公司的ide產品開發組創建,起始于1999年4月。ibm提供了最初的eclipse代碼基礎,包括platform、jdt 和pde。目前由ibm牽頭,圍繞著eclipse項目已經發展成為了一個龐大的eclipse聯盟,有150多家軟件公司參與到eclipse項目中,其中包括borland、rational software、red hat及sybas
11、e等。eclipse是一個開發源碼項目,它其實是 visual age for java的替代品,其界面跟先前的visual age for java差不多,但由于其開放源碼,任何人都可以免費得到,并可以在此基礎上開發各自的插件,因此越來越受人們關注。近期還有包括oracle在內的許多大公司也紛紛加入了該項目,并宣稱eclipse將來能成為可進行任何語言開發的ide集大成者,使用者只需下載各種語言的插件即可。雖然大多數用戶很樂于將 eclipse 當作 java ide 來使用,但 eclipse 的目標不僅限于此。eclipse 還包括插件開發環境(plug-in development e
12、nvironment,pde),這個組件主要針對希望擴展 eclipse 的軟件開發人員,因為它允許他們構建與 eclipse 環境無縫集成的工具。由于 eclipse 中的每樣東西都是插件,對于給 eclipse 提供插件,以及給用戶提供一致和統一的集成開發環境而言,所有工具開發人員都具有同等的發揮場所。這種平等和一致性并不僅限于 java 開發工具。盡管 eclipse 是使用 java 語言開發的,但它的用途并不限于 java 語言;例如,支持諸如 c/c+、cobol 和 eiffel 等編程語言的插件已經可用,或預計會推出。eclipse 框架還可用來作為與軟件開發無關的其他應用程序
13、類型的基礎,比如內容管理系統。基于eclipse 的應用程序的突出例子是ibm 的websphere studio workbench,它構成了 ibm java 開發工具系列的基礎。例如,websphere studio application developer 添加了對 jsp、servlet、ejb、xml、web 服務和數據庫訪問的支持。4.3 java及相應技術簡介4.3.1 java簡介java是由sun microsystems公司于1995年5月推出的java程序設計語言(以下簡稱java語言)和java平臺的總稱1。用java實現的hotjava瀏覽器(支持java app
14、let)顯示了java的魅力:跨平臺、動態的web、internet計算。從此,java被廣泛接受并推動了web的迅速發展,常用的瀏覽器現在均支持java applet。另一方面,java技術也不斷更新。java平臺由java虛擬機(java virtual machine)和java 應用編程接口(application programming interface、簡稱api)構成。java 應用編程接口為java應用提供了一個獨立于操作系統的標準接口,可分為基本部分和擴展部分。在硬件或操作系統平臺上安裝一個java平臺之后,java應用程序就可運行。現在java平臺已經嵌入了幾乎所有的操作
15、系統。這樣java程序可以只編譯一次,就可以在各種系統中運行。java應用編程接口已經從1.1x版發展到1.2版。目前常用的java平臺基于java1.4,最近版本為java1.7。java分為三個體系javase(java2 platform standard edition,java平臺標準版),javaee(java 2 platform,enterprise edition,java平臺企業版),javame(java 2 platform micro edition,java平臺微型版) 2。4.3.2 jdbc定義 jdbc(java data base connectivity,
16、java數據庫連接)是一種用于執行sql語句的java api,可以為多種關系數據庫提供統一訪問,它由一組用java語言編寫的類和接口組成種關系數據發送sql語句就是一件很容易的事。換言之,有了jdbc api,就不必為訪問sybase數據庫專門寫一個程序,為訪問oracle數據庫又專門寫一個程序,或為訪問informix數據庫又編寫另一個程序等等,程序員只需用jdbc api寫一個程序就夠了,它可向相應數據庫發送sql調用。同時,將java語言和jdbc結合起來使程序員不必為不同的平臺編寫不同的應用程序,只須寫一遍程序就可以讓它在任何平臺上運行,這也是java語言“編寫一次,處處運行”的優勢
17、5。java數據庫連接體系結構是用于java應用程序連接數據庫的標準方法。jdbc對java程序員而言是api,對實現與數據庫連接的服務提供商而言是接口模型。作為api,jdbc為程序開發提供標準的接口,并為數據庫廠商及。jdbc為工具/數據庫開發人員提供了一個標準的api,據此可以構建更高級的工具和接口,使數據庫開發人員能夠用純 java api 編寫數據庫應用程序,同時,jdbc也是個商標名。 有了jdbc,向各第三方中間件廠商實現與數據庫的連接提供了標準方法。jdbc使用已有的sql標準并支持與其它數據庫連接標準,如odbc之間的橋接。jdbc實現了所有這些面向標準的目標并且具有簡單、嚴
18、格類型定義且高性能實現的接口。 java 具有堅固、安全、易于使用、易于理解和可從網絡上自動下載等特性,是編寫數據庫應用程序的杰出語言。所需要的只是 java應用程序與各種不同數據庫之間進行對話的方法。而 jdbc 正是作為此種用途的機制。 jdbc 擴展了 java 的功能。例如,用 java 和 jdbc api 可以發布含有 applet 的網頁,而該 applet 使用的信息可能來自遠程數據庫。企業也可以用 jdbc 通過 intranet 將所有職員連到一個或多個內部數據庫中(即使這些職員所用的計算機有 windows、 macintosh 和unix 等各種不同的操作系統)。隨著越
19、來越多的程序員開始使用java 編程語言,對從 java 中便捷地訪問數據庫的要求也在日益增加。 mis 管理員們都喜歡 java 和 jdbc 的結合,因為它使信息傳播變得容易和經濟。企業可繼續使用它們安裝好的數據庫,并能便捷地存取信息,即使這些信息是儲存在不同數據庫管理系統上。新程序的開發期很短。安裝和版本控制將大為簡化。程序員可只編寫一遍應用程序或只更新一次,然后將它放到服務器上,隨后任何人就都可得到最新版本的應用程序。對于商務上的銷售信息服務, java 和jdbc 可為外部客戶提供獲取信息更新的更好方法。4.4 mvc簡介mvc三層架構也稱mvc模式,主要是將程序開發分為model層
20、(數據持久層)、view(界面表示層)、control層(控制層)這三個層面,并將這三個層面分開來,形成了一個立體的架構6。三個層次之間的主要交互,如圖4-1所示。view層control層model層圖4-1 mvc模式三層架構4.4.1 mvc模型介紹 mvc英文即model-view-controller,即把一個應用的輸入、處理、輸出流程按照model、view、controller的方式進行分離,這樣一個應用被分成三個層模型層、視圖層、控制層7。(1)視圖(view)代表用戶交互界面,對于web應用來說,可以概括為html界面,但有可能為xhtml、xml和applet。隨著應用的復
21、雜性和規模性,界面的處理也變得具有挑戰性。一個應用可能有很多不同的視圖,mvc設計模式對于視圖的處理僅限于視圖上數據的采集和處理,以及用戶的請求,而不包括在視圖上的業務流程的處理。業務流程的處理交予模型(model)處理。比如一個訂單的視圖只接受來自模型的數據并顯示給用戶,以及將用戶界面的輸入數據和請求傳遞給控制和模型。 (2)模型(model):就是業務流程/狀態的處理以及業務規則的制定。業務流程的處理過程對其它層來說是黑箱操作,模型接受視圖請求的數據,并返回最終的處理結果。業務模型的設計可以說是mvc最主要的核心。目前流行的ejb模型就是一個典型的應用例子,它從應用技術實現的角度對模型做了
22、進一步的劃分,以便充分利用現有的組件,但它不能作為應用設計模型的框架。它僅僅告訴你按這種模型設計就可以利用某些技術組件,從而減少了技術上的困難。業務模型還有一個很重要的模型那就是數據模型。數據模型主要指實體對象的數據 保存(持續化)。比如將一張訂單保存到數據庫,從數據庫獲取訂單。我們可以將這個模型單獨列出,所有有關數據庫的操作只限制在該模型中。(3)控制(controller)可以理解為從用戶接收請求, 將模型與視圖匹配在一起,共同完成用戶的請求。劃分控制層的作用也很明顯,它清楚地告訴你,它就是一個分發器,選擇什么樣的模型,選擇什么樣的視圖,可以完成什么樣的用戶請求。控制層并不做任何的數據處理
23、。例如,用戶點擊一個連接,控制層接受請求后, 并不處理業務信息,它只把用戶的信息傳遞給模型,告訴模型做什么,選擇符合要求的視圖返回給用戶。因此,一個模型可能對應多個視圖,一個視圖可能對應多個模型8。4.4.2 mvc設計模式的實現 (1)視圖。是模型的表示,它提供用戶交互界面。使用多個包含單顯示頁面的用戶部件,復雜的web頁面可以展示來自多個數據源的內容,并且網頁人員,美工能獨自參與這些web頁面的開發和維護。(2)控制。為了能夠控制和協調每個用戶跨越多個請求的處理,控制機制應該以集中的方式進行管理。應用程序的控制器集中從客戶端接收請求,決定執行什么商業邏輯功能,然后將產生下一步用戶界面的責任
24、委派給一個適當的視圖組件。用控制器提供一個控制和處理請求的集中入口點,它負責接收、截取并處理用戶請求;并將請求委托給分發者類,根據當前狀態和業務操作的結果決定向客戶呈現的視圖。(3)模型。mvc系統中的模型從概念上可以分為兩類系統的內部狀態和改變系統狀態的動作。模型是你所有的商業邏輯代碼片段所在。業務處理對象封裝了具體的處理邏輯,調用業務邏輯模型,并且把響應提交到合適的視圖組件以產生響應。業務實體對象可以通過定義屬性描述客戶端表單數據。通過業務實體對象實現了對視圖和模型之間交互的支持。實現時把"做什么"(業務處理)和"如何做"(業務實體)分離。這樣可以實
25、現業務邏輯的重用8。4.5 mysql 概述 mysql是一個精巧的sql數據庫管理系統,雖然它不是開放源代碼的產品,但在某些情況下你可以自由使用。由于它的強大功能、靈活性、豐富的應用編程接口(api)以及精巧的系統結構,受到了廣大自由軟件愛好者甚至是商業軟件用戶的青睞,特別是與apache和php/perl結合,為建立基于數據庫的動態網站提供了強大動力。mysql是一個真正的多用戶、多線程sql數據庫服務器。sql(結構化查詢語言)是世界上最流行的和標準化的數據庫語言。mysql是以一個客戶機/服務器結構的實現,它由一個服務器守護程序mysql和很多不同的客戶程序和庫組成。sql是一種標準化
26、的語言,它使得存儲、更新和存取信息更容易。例如,你能用sql語言為一個網站檢索產品信息及存儲顧客信息,同時mysql也足夠快和靈活以允許你存儲記錄文件和圖像。 mysql 主要目標是快速、健壯和易用。最初是因為我們需要這樣一個sql服務器,它能處理與任何可不昂貴硬件平臺上提供數據庫的廠家在一個數量級上的大型數據庫,但速度更快,mysql就開發出來。自1996年以來,我們一直都在使用mysql,其環境有超過 40 個數據庫,包含 10,000個表,其中500多個表超過7百萬行,這大約有100 個吉字節(gb)的關鍵應用數據。 mysql建立的基礎是業已用在高要求的生產環境多年的一套實用例程。盡管
27、mysql仍在開發中,但它已經提供一個豐富和極其有用的功能集13。4.6 b/s模式介紹b/s結構:(browser/server,瀏覽器/服務器模式):是web興起后的一種網絡結構模式,web瀏覽器是客戶端最主要的應用軟件。這種模式統一了客戶端,將系統功能實現的核心部分集中到服務器上,簡化了系統的開發、維護和使用。客戶機上只要安裝一個瀏覽器(browser),如netscape navigator或internet explorer,服務器安裝oracle、sybase、informix或 sql server等數據庫。瀏覽器通過web server 同數據庫進行數據交互。b/s結構的使用越
28、來越多,特別是由需求推動了ajax技術的發展,它的程序也能在客戶端電腦上進行部分處理,從而大大的減輕了服務器的負擔;并增加了交互性,能進行局部實時刷新。4.6.1 b/s結構的優點b/s結構最大的優點就是可以在任何地方進行操作而不用安裝任何專門的軟件。只要有一臺能上網的電腦就能使用,客戶端零維護。系統的擴展非常容易,只要能上網,再由系統管理員分配一個用戶名和密碼,就可以使用了。甚至可以在線申請,通過公司內部的安全認證(如ca證書)后,不需要人的參與,系統可以自動分配給用戶一個賬號進入系統。4.7 hibernate技術概述在項目中使用hibernate框架,非常關鍵的一點就是要了解hibern
29、ate的核心接口。hibernate接口位于業務層和持久化層,如圖4-2所示。圖4-2 hibernate核心接口的層次架構關系hibernate的核心接口一共有5個,分別為:session、sessionfactory、transaction、query和configuration。這5個核心接口在任何開發中都會用到。通過這些接口,不僅可以對持久化對象進行存取,還能夠進行事務控制。 session接口:session接口負責執行被持久化對象的crud操作(crud的任務是完成與數據庫的交流,包含了很多常見的sql語句。)。但需要注意的是session對象是非線程安全的。同時,hibernat
30、e的session不同于jsp應用中的httpsession。這里當使用session這個術語時,其實指的是hibernate中的session,而以后會將httpsesion對象稱為用戶session。sessionfactory接口:sessionfactroy接口負責初始化hibernate。它充當數據存儲源的代理,并負責創建session對象。這里用到了工廠模式。需要注意的是sessionfactory并不是輕量級的,因為一般情況下,一個項目通常只需要一個sessionfactory就夠,當需要操作多個數據庫時,可以為每個數據庫指定一個sessionfactory。configurat
31、ion接口:configuration接口負責配置并啟動hibernate,創建sessionfactory對象。在hibernate的啟動的過程中,configuration類的實例首先定位映射文檔位置、讀取配置,然后創建sessionfactory對象。transaction接口:transaction接口負責事務相關的操作。它是可選的,開發人員也可以設計編寫自己的底層事務處理代碼。query和criteria接口:query和criteria接口負責執行各種數據庫查詢。它可以使用hql語言或sql語句兩種表達方式。4.8 struts技術概述struts 是一組相互協作的類、servle
32、t 和 jsp 標記組成的一個可重用的 mvc2 設計。這個定義表示struts是一個框架,而不是一個庫,但 struts框架也包含了豐富的標記庫和獨立于該框架工作的實用程序類。4.8.1 struts 概覽(1)client browser(客戶瀏覽器) 來自客戶瀏覽器的每個 http 請求創建一個事件。web 容器將用一個http響應作出響應。(2)controller(控制器)控制器接收來自瀏覽器的請求,并決定將這個請求發往何處。 就 struts而言,控制器是以servlet 實現的一個命令設計模式。struts-config.xml 文件配置控制器命令。(3)業務邏輯 業務邏輯更新模
33、型的狀態,并幫助控制應用程序的流程。就 struts而言,這是通過作為實際業務邏輯“瘦”包裝的action 類完成的。(4)model(模型)的狀態 模型表示應用程序的狀態。業務對象更新應用程序的狀態。actionformbean在會話級或請求級表示模型的狀態,而不是在持久級。jsp 文件使用 jsp 標記讀取來自 actionformbean的信息。(5)view(視圖) 視圖就是一個 jsp 文件。其中沒有流程邏輯,沒有業務邏輯,也沒有模型信息 只有標記。標記是使struts 有別于其他框架(如 velocity)的因素之一。4.8.2 struts中的controller(控制器)命令設
34、計模式的實現: struts 的控制器將事件(事件通常是 http post)映射到類的一個 servlet。actionservlet (command)創建并使用 action 、actionform 和actionforward。 通過struts-config.xml 文件配置該 command。從而擴展 action 和actionform來解決特定的問題。可以通過擴展 actionservlet 來添加 command 功能。在struts框架中控制器組件由三個部分構成:(1)消息控制模塊:用戶所有的提交請求都發往消息控制模塊,在由消息總線模塊根據視圖映射模塊找到消息處理模塊來執行
35、處理邏輯。消息控制模塊接收所有用戶的請求,并根據請求視圖找到處理。strtus中通過actionservlet和requestprocessor類來完成。(2)消息處理模塊:該模塊執行該消息的邏輯處理,因此通常由用戶擴展實現。struts中通過action類來實現。(3)視圖映射模塊:控制器邏輯和視圖邏輯之間的結合是通過配置模塊和配置文件建立其的鏈接。struts中配置模塊通過moduleconfig類來完成,而配置文件由struts-config.xml文件提供。4.8.3 struts中的view(視圖)視圖組件通過jsp組件實現的。struts框架對視圖組件進行了擴展和封裝。struts
36、對視圖的擴展提供了一組擴展服務器標簽用來提供視圖顯示以及傳遞數據到處理緩沖,而處理緩沖由actionform的擴展類來實現。struts框架利用actionform bean來實現視圖與控制器之間的數據的交互,維持會話級或請求級的模型的狀態。服務器標簽主要包括:html視圖標簽 logic邏輯流程控制標簽 bean數據緩沖讀取標簽4.8.4 struts中的model(模型)(1)struts框架中并沒有定義特定的模型組件,而是希望由用戶自己決定選擇合理的模型組件。j2ee中可用的模型組件包括:javabean 用戶定義組件; ejb 組件,由ejb容器實現組件; jdo未來j2ee數據訪問模
37、型;一些擴展框架如hibernate;(2)模型中狀態的級別 會話級或請求級:actionform bean來維持 ;持久級:模型組件來維持。5 系統總體設計5.1 系統解決方案本手機網上商店網站采用的是基于網絡的browser/server(瀏覽器/服務器)結構的軟件實現,系統的實現分為3個層次:模型層(model)、視圖層(view)、控制層(controller)。5.1.1 模型層模型層(model)主要負責系統的各種數據,由于本畢業設計管理系統的數據存儲量比較大,所以本系統利用mysql 作為數據庫管理系統。5.1.2 視圖層視圖層(view)主要負責前臺的展示和獲取前臺信息等工作,
38、比如手機的功能展示等等,這里使用了jsp技術結合ajax技術來實現所有用戶要求的。5.1.3 控制層控制層(controller)的功能是控制器接收用戶的請求,然后調用某個模塊來處理用戶的請求,在控制器的控制下,再將處理的結果交給某個視圖進行格式化輸出給用戶。5.2 系統結構劃分系統總體用例圖,如圖 5-1所示。 圖51系統總體用例圖5.3 模塊劃分系統模塊劃分,如圖52所示。百機會-網上手機商店登錄注冊模塊瀏覽檢索模塊購物車模塊后臺登錄模塊反饋留言模塊訂單管理模塊商品管理模塊特價商品管理系統用戶管理會員管理模塊圖52模塊分布圖6 系統詳細設計6.1 數據庫的設計6.1.1 系統數據庫物理模型
39、圖系統數據庫物理模型,如圖6-1所示。圖6-1數據庫物理模型圖6.1.2 數據庫和數據表的設計“網上手機店”數據庫,包含會員級別,注冊會員,手機類別,手機,購物車選購,購物車,訂單,留言,系統用戶等幾個數據表,其中“會員級別表”是用來存儲會員等級,包括id號,級別名稱,優惠百分比;“注冊會員表”包括id號,登錄賬號,登錄密碼,真實姓名,聯系電話,聯系地址,郵政編碼,注冊日期,最近登錄日期,登錄次數,電子郵箱;“手機類別表”存儲包括id號,類別名稱,類別描述;“手機表”存儲包括id號,商品類別id,商品名稱,商品價格,商品型號,商品特價,商品圖片,商品描述,生產廠家,出廠日其,有無特價;“購物車
40、表”包含id號,會員id,總金額,購物車狀態;“訂單表”包含id號,會員id,購物車id,訂單編號,訂單日期,訂單狀態;“留言表”包含id號,會員id,管理員id,留言標題,留言內容,留言日期,留言回復,回復日期;“系統用戶表”id號,管理員類型,管理員真實姓名,管理員登錄賬號,管理員登錄密碼。6.1.3 各數據表設計與實現(1)會員級別,如表6-1所示。表6-1會員級別表字段名稱數據類型描述idint(4)id號levelnamechar(20)級別名稱favourableint(4)優惠百分比(2)注冊會員表,如表6-2所示。表6-2 注冊會員表字段名稱數據類型描述idint(4)id號m
41、emberlevelint(4)會員級別idloginnamechar(12)登錄賬號loginpwdchar(12)登錄密碼membernamechar(20)真是姓名phonechar(15)聯系電話addressnvarchar(100)聯系地址zipchar(10)郵政編碼regdatedatetime(0)注冊時間lastdatedatetime(0)最近登錄時間logintimesint(4)登錄次數emailnvarchanr(100)電子郵箱(3)手機類別表,如表6-3所示。表6-3 手機類別表字段名稱數據類型描述idint(4)手機類別idcatenamenchar(40)類
42、別名稱catedesctext(0)類別描述(4)手機表,如表6-4所示。表6-4 手機表字段名稱數據類型描述idint(4)id號categoryint(4)手機類別idmernamenchar(40)手機名稱pricedecimal(8)手機價格spricedecimal(8)手機特價mermodelnchar(40)手機型號picturenvarchar(100)手機圖片merdesctext(0)手機描述manufacturenchar(60)生產廠家leavefactorydatedatetime(0)出廠日期specialint(4)有無特價 (5)購物車選購表,如表6-5所示。
43、表6-5 購物車選購表字段名稱數據類型描述idint(4)id號cartint(4)購物車idmerchandiseint(4)手機idnumberint(4)手機數量pricedecimal(4)手機價格moneydecimal(4)金額(6)購物車表,如表6-6所示。表6-6 購物車表字段名稱數據類型描述idint(4)id號memberint(4)會員idmoneydecimal(9)總金額cartsatusint(4)購物車狀態(7)訂單表,如表6-7所示。表6-7 訂單表字段名稱數據類型描述idint(4)id號membersint(4)會員idcartint(4)購物車idorde
44、rnonchar(20)訂單編號orderdatedatetime(0)訂單日期orderstatusint(4)訂單狀態 (8) 留言表,如表6-8所示。 表6-8 留言表 字段名稱數據類型描述membersint(4)會員idadminint(4)管理員idtitlenchar(4)留言標題contenttext(60)留言內容leavedatedatetime(0)留言日期answercontent text(0)回復內容answerdatedatetime(0)回復日期(9)系統用戶表,如表6-9所示。 表6-9 系統用戶表字段名稱數據類型描述idint(4)id號admintypei
45、nt(4)管理員類型adminnamechar(12)管理員真實姓名loginnmaechar(12)管理員登錄賬號loginpwdchar(12)管理員登錄密碼6.2 工程設計對于本網上手機商店,所有工程均使用eclipse創建,調試,開發以及部署執行的,具體步驟如下:(1)建立工程在eclipse中,file->new->web project,命名為phones。(2)添加框架插件選中當前工程,右鍵>myeclipse->add hibernate capabilitids 和 右鍵>myeclipse->add struts capabilitids
46、,經過兩個步驟,hibernate和struts集合開發框架就大體的加入到了工程中。(3)工程結構,如圖6-2所示。 圖6-2 工程結構圖6.3 模塊設計6.3.1 顧客登錄(1)模塊功能 顧客可以通過填寫注冊信息注冊成為會員,會員登錄后才能進行購物車的管理以及意見的反饋,未登錄的會員或者為注冊的顧客只能檢索與瀏覽商品信息。(2)界面效果,如圖6-3所示 。圖6-3 登錄注冊模塊(3)模塊主要代碼及詳解當會員登錄的時候,首先在default.jsp中填寫登錄表單,填寫完畢提交之后,defaul.jsp中登錄表單的內容由struts自動封裝到memloginform對象中,并送交validato
47、r進行表單有效性驗證,如果驗證失敗則返回default.jsp要求用戶重新填寫表單直到通過驗證,否則就將memloginform對象送給loginaction的login方法進行處理,處理完成后將處理結果反饋給default.jsp并完成登錄。 /* 會員登錄代碼 */public member memlogin(string loginname, string loginpwd) throws exception session session = mysessionfactory.getsession();transaction tx = null;member mem = null;tr
48、ystring hql = "select a from member as a where a.loginname=:loginname and a.loginpwd=:loginpwd"query query = session.createquery(hql);query.setstring("loginname", loginname);query.setstring("loginpwd", loginpwd);query.setmaxresults(1);tx = session.begintransaction();mem
49、 = (member)query.uniqueresult();mem.setlogintimes(integer.valueof(mem.getlogintimes().intvalue()+1);mem.setlastdate(new date();session.update(mem);mit();catch(exception ex)if(tx!=null)tx.rollback();("在執行memserviceimpl類中的memlogin方法時出錯n");ex.printstacktrace();finallymysessionfacto
50、ry.closesession();return mem;6.3.2 手機檢索瀏覽模塊(1)模塊功能顧客可以根據不同的手機種類瀏覽手機的信息,也可以輸入關鍵字進行手機檢索。(2)程序效果,如圖6-4所示。圖6-4 手機檢索以及瀏覽模塊(3)模塊主要代碼及詳解用戶的請求,例如查看手機。均通過調用meraction類的相應方法進行處理,meraction類中的方法在收到請求后,根據具體的請求調用merservice接口中的相應dao方法完成數據庫的訪問,并將檢索得到的結果返回給meraction,meraction則將最終的處理結果保存到request對象中,由相應的jsp頁面帶回并展示給用戶。/
51、*處理分類查詢手機請求*/public actionforward searchmer(actionmapping mapping, actionform form,httpservletrequest request, httpservletresponse response) list merlist = null;merservice service = new merserviceimpl();int pageno = 1; /頁號int pagesize = 15; /每頁記錄數int totals = 0; /記錄總數int totalpages = 0; /總頁數if (key!
52、=null)key = new string(key.getbytes("iso8859-1"),"gb2312");request.setattribute("key", key);if(haswhere)hql = hql + " and a.mername like '%"+key+"%'"hql1 = hql1 + " and a.mername like '%"+key+"%'"action = action +
53、"key="+key+"&"elsehql = hql + " where a.mername like '%"+key+"%'"hql1 = hql1 + " where a.mername like '%"+key+"%'"action = action + "&key="+key+"&"request.setattribute("action", acti
54、on);merlist = service.browsemer(pagesize,pageno,hql);totals = service.countrecord(hql1);6.3.3 購物車模塊(1)模塊功能顧客需要輸入注冊賬號與密碼登錄后便可以使用購物車以及對其進行相應的管理,如將選中的手機放入購物車,修改選購手機的數量,刪除購物車中的手機,在線下訂單以及查看訂單等。(2) 程序效果,如圖6-5所示。圖6-5 購物車模塊圖(3) 模塊主要代碼及詳解用戶請求,例如購物車查看。都是通過直接調用了cartaction類的相應方法進行處理,cartaction類中的方法在收到請求后,根據具體的請求調用cartservice接口中的相應dao方法完成數據庫的訪問,并將檢索得到的結果返回給cartaction,cartaction則將最終的結果保存到request對象中,由相應的jsp頁面帶回并展示給用戶。/* 裝載指定會員的購物車 */public cart loadcart(member member) throws exception session session = mysessionfactory.getsession();transaction tx = null;cart cart
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 校園規范寵物管理制度
- 校園防控污染管理制度
- 住宅類:宜昌興山項目北地塊總承包工程技術標
- 生態安全格局構建-洞察及研究
- 慢性甲減合并糖尿病管理-洞察及研究
- 水體污染治理-第1篇-洞察及研究
- 骨水泥抗菌涂層-洞察及研究
- 教育資源整合表-教育資源優化配置
- 全面記錄出生與工作信息證明(5篇)
- 法律英語詞匯量及閱讀題匯編
- 高層建筑防火涂料施工標準方案
- 2024年重慶市初中學業水平考試生物試卷含答案
- 胎盤滯留病因介紹
- 機械類中職學業水平考試專業綜合理論考試題庫(含答案)
- 無人機在坦克戰中的火力支援研究-洞察分析
- 四川省樹德中學2025屆高三下學期一模考試數學試題含解析
- 王陽明讀書分享
- 2024年銀行考試-銀行間本幣市場交易員資格考試近5年真題集錦(頻考類試題)帶答案
- PC工法樁專項施工方案-
- 藝術與科學理論基礎智慧樹知到答案2024年北京交通大學
- 2024年金華市中考數學試卷
評論
0/150
提交評論