2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩46頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  數(shù)據(jù)庫課程設計報告</b></p><p>  在線食品銷售與管理系統(tǒng)</p><p><b>  摘要:</b></p><p>  本課程設計的選題是“在線食品銷售管理系統(tǒng)”,本文首先對該系統(tǒng)的可行性進行了分析,通過提出問題分析問題進而提出了系統(tǒng)設計的思想,使用B/S的結構完成在線銷售與管

2、理功能,在系統(tǒng)的實現(xiàn)上,使用用了JSP中流行的Struts2+Spring+Hibernate的經典框架結構,這樣系統(tǒng)分層清晰,便于維護,表示層由Struts2管理,業(yè)務邏輯層由Spring管理,數(shù)據(jù)持久層由Hibernate管理。報告從需求分析開始,對系統(tǒng)進行總體設計,包括系統(tǒng)功能模塊設計、流程分析以及架構總體設計等,然后進行了數(shù)據(jù)庫設計,并對數(shù)據(jù)庫的設計方案進行了詳細的闡述,包括數(shù)據(jù)庫概念設計、邏輯設計以及安全模式設計等。最后文檔給

3、出了系統(tǒng)的實現(xiàn)方法,包括程序模塊設計以及主要功能模塊的編碼及測試結果,最后進行了本次課程設計的總結和展望。</p><p>  關鍵字:在線食品銷售,JSP,Struts2,Spring,Hibernate,數(shù)據(jù)庫設計</p><p>  Abstracts:</p><p>  This course design theme is "online fo

4、od sales management system", this article first the feasibility of the system is analyzed, through analyzing problems and puts forward the question of the system design of thought, use B/S structure complete online

5、sales and management functions, the realization of the system with the JSP, use Struts2 + are popular in the classic frame structure + Hibernate, such systems, easy to maintain, stratified clear representation layer Stru

6、ts2 management, business by</p><p>  Keywords:Online food sales, JSP, Struts2,Spring, Hibernate, database design</p><p><b>  目錄</b></p><p>  系統(tǒng)可行性研究………………………………………………………

7、…………………….….…3</p><p>  1.1 問題的提出………………………………………………………………………………….……3</p><p>  1.2 分析問題…………………………………………………………………………………….……3</p><p>  1.3 系統(tǒng)設計思想……………………………………………………………………………….……3</p

8、><p>  需求分析……………………………………………………………………………………….…...3</p><p>  總體設計……………………………………………………………………………………….…...5</p><p>  3.1系統(tǒng)功能模塊設計及流程分析……………………………………………………………….….5</p><p>  3.1.

9、1用戶模塊:……………………………………………………………………………….…5</p><p>  3.1.2管理員模塊:…………………………………………………………………………….…6</p><p>  3.2 架構總體設計………………………………………………………………………………….…6</p><p>  3.2.1 Struts 2…………………………

10、……………………………………………………….….6</p><p>  3.2.2 Spring……………………………………………………………………………………....6</p><p>  3.2.3 Hibernate…………………………………………………………………………………..7</p><p>  3.3 系統(tǒng)開發(fā)環(huán)境與運行環(huán)境……………………………

11、………………………………………….7</p><p>  數(shù)據(jù)庫設計………………………………………………………………………………………...7</p><p>  4.1 數(shù)據(jù)庫概念設計………………………………………………………………………………….7</p><p>  4.1.1 數(shù)據(jù)庫分析………………………………………………………………………………..7&l

12、t;/p><p>  1)食品購物系統(tǒng)關系到的實體…………………………………………………………8</p><p>  2)實體屬性………………………………………………………………………………8</p><p>  3)實體之間的聯(lián)系………………………………………………………………………8</p><p>  4.1.2 E-R圖……………………

13、………………………………………………………………...8</p><p>  4.1.3 E-R圖轉換成關系模式…………………………………………………………………...9</p><p>  1)由實體得到關系模式…………………………………………………………………9</p><p>  2)由聯(lián)系得到關系模式…………………………………………………………………9&l

14、t;/p><p>  4.2 數(shù)據(jù)庫邏輯設計………………………………………………………………………………….9</p><p>  4.3 安全模式設計…………………………………………………………………………………….13</p><p>  4.3.1 數(shù)據(jù)庫完整性設計………………………………………………………………………..13</p><p&

15、gt;  4.3.2 數(shù)據(jù)庫權限控制…………………………………………………………………………..13</p><p>  系統(tǒng)實現(xiàn)……………………………………………………………………………………………13</p><p>  5.1 程序模塊設計…………………………………………………………………………………...13</p><p>  5.1.1 程序目錄結

16、構……………………………………………………………………………..13</p><p>  5.1.2 JSP頁面分為會員頁面與管理員頁面…………………………………………………...14</p><p>  5.1.3 配置文件…………………………………………………………………………………..15</p><p>  5.1.4 類文件…………………………………

17、…………………………………………………..15</p><p>  5.2主要模塊及代碼…………………………………………………………………………………..17</p><p>  5.2.1 部分配置文件代碼………………………………………………………………………....17</p><p>  5.2.2 主要界面與代碼……………………………………………………………

18、………...…….21</p><p>  總結與展望………………………………………………………………………………………...45</p><p>  參考文獻…………………………………………………………………………………………....45</p><p><b>  系統(tǒng)可行性研究</b></p><p><b&

19、gt;  1.1問題的提出</b></p><p>  隨著信息化步伐的加快,Internet的應用也越來越廣泛,用戶對于Internet的應用需求也有了根本性的變化,基于Internet的電子商務正逐漸成為Internet商業(yè)化發(fā)展的重要內容。電子商務是指各種具有商業(yè)活動能力的實體利用網絡和先進的數(shù)字化傳媒技術進行的各項商業(yè)貿易活動。網上購物,就是電子商務所包含的三大種類之一。網上購物是將來最有希望

20、的網上事業(yè),因此,開發(fā)功能強大、性能完善的網上購物系統(tǒng)具有十分重要的意義和價值。與其他商品一樣,食品也很適合在網上銷售,雖然有運輸、時間的限制,但是對于現(xiàn)在的物流發(fā)展狀況而言,已經都不是問題。食品有地域的差異,消費者可能在本地不能買到相應的食品,網上購食品無疑打破了這種限制,而且對于不喜歡逛超市商場的人來說,網上購食品會是一種獨特的購物享受。而在商家方面,缺少一個集成的信息平臺和信息系統(tǒng),希望通過一個網站系統(tǒng)實現(xiàn)消費者網上購物,還有后臺

21、處理會員、貨物等一系列信息的管理操作。</p><p><b>  1.2 分析問題</b></p><p>  本網站是一個專營食品的銷售網。對于用戶可以查看貨物、加入購物車、購買食品、查看訂單等一系列基本的網上購物操作,實現(xiàn)輕松網上選購食品。對于管理員則可以完成食品信息的查看、添加、修改操作,訂單的查詢、狀態(tài)修改操作,會員管理、管理員管理等功能。</p>

22、;<p>  1.3 系統(tǒng)設計思想</p><p>  C/S模式和B/S是當今世界開發(fā)模式技術架構的兩大主流技術。C/S架構軟件的優(yōu)勢與劣勢:應用服務器運行數(shù)據(jù)負荷較輕,數(shù)據(jù)的存儲管理功能較為透明,C/S架構的劣勢是高昂的維護成本且投資大。B/S架構軟件的優(yōu)勢與劣勢:維護和升級方式簡單,成本降低,選擇更多,但應用服務器運行數(shù)據(jù)負荷較重。權衡這兩種模式的優(yōu)劣勢,我們選擇使用B/S模式,因為B/S架構

23、的軟件只需要管理服務器即可,所有的客戶端只是瀏覽器,根本不需要做任何的維護,所有的操作只需要針對服務器進行。</p><p>  男左女右食品網站采用SQL server 2005數(shù)據(jù)庫,從系統(tǒng)升級和維護方面考慮,采用Struts2,Spring,Hibernate三種開源框架,這樣系統(tǒng)分層清晰,便于維護,表示層由Struts2管理,業(yè)務邏輯層由Spring管理,數(shù)據(jù)持久層由Hibernate管理,網站信息層主要

24、只數(shù)據(jù)庫,用來存儲食品、訂單、會員、管理員等一系列的信息。</p><p><b>  需求分析</b></p><p>  系統(tǒng)的角色分為:游客、會員和管理員,各個角色需要完成的功能用用例圖說明:</p><p>  圖表 1 游客與會員</p><p><b>  圖表 2 管理員</b>&

25、lt;/p><p><b>  總體設計</b></p><p>  3.1系統(tǒng)功能模塊設計及流程分析</p><p>  系統(tǒng)功能主要分為兩大模塊:用戶模塊、管理員模塊。主要完成功能的流程如下所示:</p><p>  3.1.1用戶模塊:</p><p>  圖表 3 游客功能模塊</p&

26、gt;<p>  圖表 4 會員功能模塊</p><p>  3.1.2管理員模塊:</p><p>  圖表 5 管理員功能模塊</p><p>  3.2 架構總體設計</p><p>  本網站采用Struts、Spring、Hibernate組建輕量級聯(lián)合框架。SSH多層的架構模式,從上到下依次為表示層、業(yè)務層和數(shù)據(jù)

27、持久化層。通過分層處理使整個系統(tǒng)結構清晰,功能明確,各層次之間相互獨立,對某一層次的修改不會影響其他層次,使層次間的耦合性降到最低,為軟件的重用化和組件化創(chuàng)造了條件。</p><p>  3.2.1 Struts 2</p><p>  表示層是面向用戶的界面,是用戶與系統(tǒng)之間交互的媒介。如,用戶在界面發(fā)送請求,系統(tǒng)接收請求 ,進行處理,控制器代理負責處理用戶請求,處理用戶請求時回調業(yè)務

28、控制器的execute方法,該方法的返回值將決定了Struts2將怎樣的視圖資源呈現(xiàn)給用戶。這一過程包括了用戶動作、數(shù)據(jù)傳遞、界面顯示。MVC模式就是將這三者分離,減少三者耦合。表示層框架采用的是Struts 2。在本網站中的具體應用如下:當客戶端發(fā)出請求時,經過定義在web.xml中過濾器的攔截,接著FilterDispatcher被調用,F(xiàn)ilterDispatcher詢問Action映射器來決定這個請求是否需要調用某個Action

29、。如果Action映射器決定需要調用某個Action,F(xiàn)ilterDispatcher把請求的處理交給Action代理。Action代理器通過配置管理器詢問框架的配置文件,找到需要調用的Action類。Action代理器創(chuàng)建一個ActionInvocation的實例。Actionlnvocation實例使用命名模式來調用,在調用Action的過程前后,涉及到相關攔截器(Intercepter)的調用。一旦</p><

30、p>  3.2.2 Spring</p><p>  業(yè)務層主要負責管理業(yè)務層的邏輯對象,包括邏輯對象對于底層的事務管理,分布式管理,邏輯對象的生命周期管理等。Spring是非EJB的輕量級框架,它通過依賴注入、AOP應用、面向接口編程,來降低業(yè)務組件之間的耦合度,增強系統(tǒng)擴展性,作為業(yè)務邏輯層的框架。Spring模塊構建在核心容器之上,核心容器定義了創(chuàng)建、配置和管理bean的方式,組成Spring框架的

31、每個模塊(或組件)都可以單獨存在,或者與其他一個或多個模塊聯(lián)合實現(xiàn)。核心容器提供Spring框架的基本功能。核心容器的主要組件是BeanFactory,它是工廠模式的實現(xiàn)。BeanFactory使用控制反轉(IoC)模式將應用程序的配置和依賴性規(guī)范與實際的應用程序代碼分開。在本網站中的具體應用如下:通過讀取applicationContext-DAO.xml配置文件,Spring容器生成相應的Bean實例,DAO類作為Action的參數(shù)

32、。</p><p>  3.2.3 Hibernate</p><p>  數(shù)據(jù)持久層的設計目標是對各種數(shù)據(jù)進行低層的持久化的工作,持久化就是把數(shù)據(jù)保存到永久保存的存儲設備中,J2EE項目中的數(shù)據(jù)持久層的作用就是通過對象關系映射,使得開發(fā)者能夠以對象的方式訪問數(shù)據(jù),使程序員不用編寫詳細底層的程序訪問數(shù)據(jù)持久層代碼,把精力放在業(yè)務邏輯的開發(fā)。同時能夠在不同項目中重用映射框架,大大簡化了數(shù)據(jù)

33、增、刪、改、查等功能的開發(fā)過程。Hibernate在Java程序與數(shù)據(jù)庫之間進行轉換,Java程序員事先定義好對象與數(shù)據(jù)庫表格之間的對應。在實踐中采用以下數(shù)據(jù)持久方案,通過DAO和ORM組件來實現(xiàn)數(shù)據(jù)的持久化。ORM組件能完成java對象和數(shù)據(jù)庫中的數(shù)據(jù)間的相互的映射,同時ORM也能實現(xiàn)數(shù)據(jù)庫的連接,事務的管理功能。ORM作用是在關系型數(shù)據(jù)庫和對象之間產生一個自動的映射,這樣在具體的數(shù)據(jù)庫操作中就不需要再和復雜的 SQL語句打交道。OR

34、M是通過使用描述對象和數(shù)據(jù)庫之間映射的元數(shù)據(jù)將java程序中的對象自動持久化到關系數(shù)據(jù)庫中。在本網站中的具體應用:將Java中的對象與對象的關系,對應到關系型數(shù)據(jù)庫中的表與表之間的關系,每張表對應一個對象,Hibernate提供了這個過程中自動對</p><p>  3.3 系統(tǒng)開發(fā)環(huán)境與運行環(huán)境</p><p><b>  數(shù)據(jù)庫設計</b></p>

35、<p>  4.1 數(shù)據(jù)庫概念設計</p><p>  4.1.1 數(shù)據(jù)庫分析</p><p>  根據(jù)對系統(tǒng)的可行性研究與需求分析以后,我們可以對系統(tǒng)的數(shù)據(jù)庫進行分析,得到如下結果:</p><p>  1)食品購物系統(tǒng)關系到的實體</p><p>  在食品購物系統(tǒng)中,若要完成購物,則必須為會員才能進行購物,所以有“會員”實體

36、;食品購物系統(tǒng)中的食品是必不可少的,所以有“食品”實體;會員需要購買食品,必須存在一個交易的記錄,所以有“訂單”實體;每一種食品都屬于一個種類,所以有“種類”實體。</p><p>  綜上所述食品購物系統(tǒng)涉及最主要實體:會員、食品、訂單、種類。</p><p><b>  2)實體屬性</b></p><p>  實體集“會員”的屬性包括:會

37、員的ID號、會員姓名、會員密碼、性別、年齡、郵箱、手機號和狀態(tài),狀態(tài)是用來標識會員在整個系統(tǒng)中所處的狀態(tài);</p><p>  實體集“食品”的屬性包括:食品編號、食品類別、食品價格、存貨數(shù)量、最新入庫、原產地、保質期、生產日期、重量;</p><p>  實體集“訂單”的屬性包括:訂單編號、會員ID、訂貨時間、訂貨狀態(tài)、付款狀態(tài)、總金額、收貨地址、收貨人聯(lián)系電話、郵政編碼、收貨人姓名、支

38、付方式、備注;</p><p>  實體集“類別”的屬性包括:類別名稱。</p><p><b>  3)實體之間的聯(lián)系</b></p><p>  會員在購買食品時都能對食品有個評論,每一位會員能對多個食品進行評論,每一個食品能被多個會員評論,所以會員與食品之間存在多對多的“評論”聯(lián)系;</p><p>  會員在訂購

39、食品后有一固定的訂單記錄,每位會員能擁有多個訂單,而一個訂單只能屬于一位會員,所以會員與訂單之間存在一對多的“訂購”聯(lián)系;</p><p>  訂單還需要指明擁有哪些食品,每個訂單包含有多個食品,而每個食品可以被多個食品所包含,所以訂單和食品之間存在多對多的“訂單包含”聯(lián)系;</p><p>  每種食品都必須屬于一個類別,所以存在食品與類別之間的多對一的“屬于”聯(lián)系。</p>

40、<p>  4.1.2 E-R圖</p><p>  由上邊的數(shù)據(jù)庫分析能得出系統(tǒng)數(shù)據(jù)庫的E-R圖</p><p><b>  圖表 6 ER圖</b></p><p>  4.1.3 E-R圖轉換成關系模式</p><p>  1)由實體得到關系模式</p><p>  會員

41、(會員ID、會員姓名、會員密碼、性別、年齡、郵箱、手機號、狀態(tài))</p><p>  食品(食品編號、食品類別、食品價格、存貨數(shù)量、最新入庫、原產地、保質期、生產日期、重量)</p><p>  訂單(訂單編號、會員ID、訂貨時間、訂貨狀態(tài)、付款狀態(tài)、總金額、收貨地址、收貨人聯(lián)系電話、郵政編碼、收貨人姓名、支付方式、備注)</p><p><b>  類別

42、(類別名稱)</b></p><p>  2)由聯(lián)系得到關系模式(已對一對多和多對一的聯(lián)系進行了合并處理)</p><p>  評論(食品編號、會員ID、評價內容)</p><p>  訂單包含(訂單編號、食品編號、訂貨時單價、數(shù)量)</p><p>  4.2 數(shù)據(jù)庫邏輯設計</p><p>  由以上數(shù)

43、據(jù)庫的分析,以及最后得出的關系模式可以設計出系統(tǒng)具體需要用到的表項,為了編程的需要與方便,為每個表項都加上了id屬性,此屬性是自增整數(shù),同時考慮到是一個購物網站,需要增強一定的交互,所以添加了一個公告表,及時通告網站的最新消息。下圖1為使用SQLserver2005導出的數(shù)據(jù)庫關系圖:</p><p>  圖表 7 邏輯數(shù)據(jù)庫關系圖</p><p>  以下列出各表項的詳細說明:<

44、/p><p>  4.3 安全模式設計</p><p>  4.3.1 數(shù)據(jù)庫完整性設計</p><p><b>  1)實體完整性:</b></p><p>  保證每個關系應該有一個主碼,主碼的任何屬性都不為空。</p><p>  以下列出個元組的對應的主碼關系(“→”右邊為主碼,左邊為關系名

45、稱):</p><p>  會員→會員ID、食品→食品編號、訂單→訂單編號、類別→類別名稱、評論→(食品編號+會員ID)、訂單包含→(訂單編號+食品編號)</p><p><b>  2)參照完整性:</b></p><p>  參照完整性要求,參照關系的任何元組在其外碼上的值,或者等于被參照關系的某個元組的主碼,或者為空值。以下列出個表項之間

46、的參照關系(“→”表示參照):</p><p>  食品→類別、訂單→會員、訂單包含→(食品+訂單)、評論→(食品+會員)</p><p>  同時,為了保證完整性,在此系統(tǒng)中使用級聯(lián)更新的方式,若一個被參照關系被刪除,則與之關聯(lián)的元組也會被級聯(lián)刪除。</p><p>  3)用戶定義的完整性:</p><p>  不同的關系數(shù)據(jù)庫根據(jù)其應用

47、環(huán)境的不同,往往還需要一些特殊的約束條件。</p><p>  屬性約束:根據(jù)具體的應用還設置其屬性為char或者是int;</p><p>  關系約束:檢查關系的合法取值,比如在此系統(tǒng)中年齡的取值被限定在一個合理的范圍之內。</p><p>  4.3.2 數(shù)據(jù)庫權限控制</p><p><b>  1)數(shù)據(jù)庫用戶權限<

48、/b></p><p>  在使用到具體數(shù)據(jù)庫時,必須分配一個合法的身份,在系統(tǒng)數(shù)據(jù)庫設計中,專門為此系統(tǒng)創(chuàng)建了一個新的用戶賬號,分配到的權限僅僅局限在本系統(tǒng)的食品數(shù)據(jù)庫中。</p><p><b>  2)會員權限</b></p><p>  會員并沒有對整個數(shù)據(jù)庫的操作權利,會員只能通過程序的一些有限權利的接口進行操作,如食品的瀏覽,

49、下訂單等。</p><p><b>  3)管理員權限</b></p><p>  高級管理員對整個系統(tǒng)有最高的權限,能查看任意表現(xiàn),并修改任意表現(xiàn)內容;普通管理員除了不具有對管理員的管理之外,基本與高級管理員職能相同。</p><p><b>  系統(tǒng)實現(xiàn)</b></p><p>  5.1 程

50、序模塊設計</p><p>  5.1.1 程序目錄結構</p><p>  5.1.2 JSP頁面分為會員頁面與管理員頁面</p><p><b>  會員頁面:</b></p><p><b>  管理員:</b></p><p>  5.1.3 配置文件</

51、p><p>  Struts配置文件:</p><p>  Spring配置文件:</p><p>  Hibernate配置文件:</p><p><b>  會員部分:</b></p><p><b>  管理員部分:</b></p><p>  5.

52、1.4 類文件</p><p>  Action類文件:</p><p><b>  會員部分:</b></p><p><b>  管理員部分:</b></p><p><b>  DAO類文件:</b></p><p><b>  會員部

53、分:</b></p><p><b>  管理員部分:</b></p><p><b>  ORM類文件:</b></p><p><b>  會員部分:</b></p><p><b>  管理員部分:</b></p><

54、p><b>  主要模塊及代碼</b></p><p><b>  部分配置文件代碼</b></p><p>  web.xml配置文件(Struts+Spring+Hibernate框架整合):</p><p>  <!-- 定義一個Listener,該Listener在應用啟動時創(chuàng)建Spring容器 --&

55、gt;</p><p>  <context-param></p><p>  <param-name>contextConfigLocation</param-name></p><p>  <param-value>/WEB-INF/applicationContext*.xml</param-value&g

56、t;</p><p>  </context-param></p><p>  <listener></p><p>  <listener-class></p><p>  org.springframework.web.context.ContextLoaderListener</p>&

57、lt;p>  </listener-class></p><p>  </listener></p><p>  <!-- 定義過濾器鏈 --></p><p>  <!-- 定義ActionContextCleanUp過濾器 --></p><p><b>  <fil

58、ter></b></p><p>  <filter-name>struts-cleanup</filter-name></p><p>  <filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class></p>&

59、lt;p><b>  </filter></b></p><p>  <!-- 排在第一位的過濾器是:ActionContextCleanUp過濾器 --></p><p>  <filter-mapping></p><p>  <filter-name>struts-cleanup<

60、;/filter-name></p><p>  <url-pattern>/*</url-pattern></p><p>  </filter-mapping></p><p>  <!-- 定義SiteMesh的核心過濾器 --></p><p><b>  <fi

61、lter></b></p><p>  <filter-name>sitemesh</filter-name></p><p>  <filter-class>com.opensymphony.module.sitemesh.filter.PageFilter</filter-class></p><p&

62、gt;<b>  </filter></b></p><p>  <!-- 排在第二位的過濾器是:SiteMesh的核心過濾器 --></p><p>  <filter-mapping></p><p>  <filter-name>sitemesh</filter-name>&l

63、t;/p><p>  <url-pattern>/*</url-pattern></p><p>  </filter-mapping></p><p>  <!-- 定義Struts 2的核心過濾器 --></p><p><b>  <filter></b>&

64、lt;/p><p>  <filter-name>struts</filter-name></p><p>  <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class></p><p><b>  </filter

65、></b></p><p>  <!-- 排在第三位的過濾器是:FilterDispatcher過濾器 --></p><p>  <filter-mapping></p><p>  <filter-name>struts</filter-name></p><p>  &l

66、t;url-pattern>/*</url-pattern></p><p>  </filter-mapping></p><p>  <!-- 配置圖形驗證碼Servlet --></p><p><b>  <servlet></b></p><p>  <

67、;servlet-name>img</servlet-name></p><p>  <servlet-class>fs.web.AuthImg</servlet-class></p><p>  </servlet></p><p>  <!-- 為圖形驗證碼Servlet指定URL --><

68、/p><p>  <servlet-mapping></p><p>  <servlet-name>img</servlet-name></p><p>  <url-pattern>/authImg.jpg</url-pattern></p><p>  </servlet-m

69、apping></p><p>  <welcome-file-list></p><p>  <welcome-file>init.jsp</welcome-file></p><p>  </welcome-file-list></p><p>  struts.xml文件內容<

70、;/p><p><b>  <struts></b></p><p>  <constant name="struts.i18n.encoding" value="UTF-8"/></p><p>  <package name="foodsite" exte

71、nds="struts-default"></p><p>  <action name="indexAll" class="indexAllAction"></p><p>  <result name="success">/index.jsp</result><

72、;/p><p><b>  </action></b></p><p>  <action name="member" class="MemberAction"></p><p>  <result name="success">/init.jsp<

73、;/result></p><p>  <result name="loginerror">/member/login.jsp</result></p><p>  <result name="signinerror">/member/signin.jsp</result></p>

74、<p>  <result name="setinfoerror">/member/setinfo.jsp</result></p><p>  </action></p><p>  <action name="search" class="SearchAction">

75、;</p><p>  <result name="success">/member/search.jsp</result></p><p>  <result name="test">/member/test.jsp</result></p><p><b>  &l

76、t;/action></b></p><p>  <action name="foodDisplay" class="FoodDisplayAction"></p><p>  <result name="success">/member/fooddisplay.jsp</resul

77、t></p><p>  </action></p><p>  <action name="discuss" class="DiscussAction"></p><p>  <result name="success">/member/discuss.j

78、sp</result></p><p>  </action></p><p>  <action name="foodClass" class="FoodClassAction"></p><p>  <result name="success">/me

79、mber/foodclass.jsp</result></p><p>  </action></p><p>  <action name="shopping" class="ShoppingAction"></p><p>  <result name="succes

80、s">/member/shopping.jsp</result></p><p>  <result name="error">/member/login.jsp</result></p><p>  <result name="orderform">/member/orderform.

81、jsp</result></p><p>  </action></p><p>  <action name="dealClose" class="DealCloseAction"></p><p>  <result name="success">/m

82、ember/dealclose.jsp</result></p><p>  <result name="error">/member/orderform.jsp</result></p><p><b>  </action></b></p><p>  <action

83、 name="orderSearch" class="OrderSearchAction"></p><p>  <result name="success">/member/ordersearch.jsp</result></p><p><b>  </action><

84、/b></p><p>  <action name="quit" class="QuitAction"></p><p>  <result name="success">/init.jsp</result></p><p><b>  </act

85、ion></b></p><p>  </package></p><p>  <include file="struts-manager.xml"></include></p><p><b>  </struts></b></p><p

86、>  struts-manager.xml文件內容</p><p><b>  <struts></b></p><p>  <package name="dwfoodsite" extends="struts-default"></p><p>  <action n

87、ame="dwmanager" class="dwManagerAction"></p><p>  <result name="success">/manager/manager.jsp</result></p><p>  <result name="loginerror"

88、;>/manager/login.jsp</result></p><p>  <result name="showsuccess">/manager/managemana.jsp</result></p><p>  <result name="insertsuccess">/manager/m

89、anagemana.jsp</result></p><p>  <result name="inserterror">/manager/managemana.jsp</result></p><p>  </action></p><p>  <action name="dw

90、ordergoods" class="dwOrdergoodsAction"></p><p>  <result name="success">/manager/showorder.jsp</result></p><p>  </action></p><p>  &

91、lt;action name="dwmember" class="dwMemberAction"></p><p>  <result name="success">/manager/managememb.jsp</result></p><p>  <result name="err

92、or">/manager/manager.jsp</result></p><p>  </action></p><p>  <action name="dwfoodclass" class="dwFoodclassAction"></p><p>  <resu

93、lt name="success">/manager/adddelclass.jsp</result></p><p>  <result name="insertclasserror">/manager/adddelclass.jsp</result></p><p>  <result name=&

94、quot;insertnullerror">/manager/adddelclass.jsp</result></p><p>  </action></p><p>  <action name="dwfoodstuff" class="dwFoodstuffAction"></p>

95、;<p>  <param name="savePath">/picfood</param></p><p>  <result name="success">/manager/showfood.jsp</result></p><p>  </action></p&

96、gt;<p>  <action name="dwordergoods_food" class="dwOrdergoods_foodAction"></p><p>  <result name="success">/manager/showsingleorder.jsp</result></p&g

97、t;<p>  </action></p><p>  <action name="dwquit" class="dwQuitAction"></p><p>  <result name="success">/init.jsp</result></p>

98、<p><b>  </action></b></p><p>  </package></p><p><b>  </struts></b></p><p>  applicationContext.xml文件</p><p>  <bea

99、n id="dataSource"</p><p>  class="org.springframework.jdbc.datasource.DriverManagerDataSource"> </p><p>  <property name="driverClassName" </p><p&g

100、t;  value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/></p><p>  <property name="url"</p><p>  value="jdbc:sqlserver://localhost:1433;databaseName=foodsite"

101、;/> </p><p>  <property name="username" value="whl"/> </p><p>  <property name="password" value="whl"/> </p><p><b>  <

102、;/bean> </b></p><p>  <bean id="sessionFactory" </p><p>  class="org.springframework.orm.hibernate3.LocalSessionFactoryBean" > </p><p>  <prop

103、erty name="dataSource" ref="dataSource"/> </p><p>  <property name="mappingResources"> </p><p><b>  <list> </b></p><p>  <

104、;value>fs/orm/Member.hbm.xml</value></p><p>  <value>fs/orm/Notice.hbm.xml</value></p><p>  <value>fs/orm/Discuss.hbm.xml</value></p><p>  <value

105、>fs/orm/Foodclass.hbm.xml</value> </p><p>  <value>fs/orm/Foodstuff.hbm.xml</value> </p><p>  <value>fs/orm/Ordergoods.hbm.xml</value></p><p>  <

106、value>fs/orm/Ordergoods_food.hbm.xml</value></p><p>  <value>dwfs/orm/DwMember.hbm.xml</value></p><p>  <value>dwfs/orm/DwManager.hbm.xml</value></p><

107、p>  <value>dwfs/orm/DwFoodclass.hbm.xml</value> </p><p>  <value>dwfs/orm/DwFoodstuff.hbm.xml</value> </p><p>  <value>dwfs/orm/DwOrdergoods.hbm.xml</value>

108、;</p><p>  <value>dwfs/orm/DwOrdergoods_food.hbm.xml</value></p><p><b>  </list> </b></p><p>  </property> </p><p>  <property na

109、me="hibernateProperties"> </p><p><b>  <props> </b></p><p>  <prop key="hibernate.dialect"> </p><p>  org.hibernate.dialect.SQLServerD

110、ialect</p><p><b>  </prop> </b></p><p><b>  </props> </b></p><p>  </property> </p><p><b>  </bean></b></

111、p><p><b>  主要界面與代碼</b></p><p>  用戶界面與主要代碼:</p><p><b>  1) 食品網首頁:</b></p><p><b>  /*此類完成功能:</b></p><p>  *首頁需要顯示的所有信息從數(shù)據(jù)庫中讀

112、出</p><p>  *包括各類食品、公告內容及最熱銷食品。</p><p><b>  */</b></p><p>  public class IndexAllAction extends ActionSupport</p><p><b>  {</b></p><

113、p>  private INoticeDAO noticeDAO;</p><p>  private List notice;</p><p>  private IFoodstuffDAO foodstuffDAO;</p><p>  private IOrdergoods_foodDAO ordergoods_foodDAO;</p>&

114、lt;p>  private List hot;</p><p>  private List liefallow;</p><p>  private List pastry;</p><p>  private List chocolate;</p><p>  private List drink;</p><

115、p>  /*getter & setter*/</p><p>  public String execute() throws Exception</p><p><b>  {</b></p><p>  this.setNotice(noticeDAO.getAllNotice());</p><p>

116、;  List<Foodstuff> hot_l=new ArrayList();</p><p>  Iterator it=(Iterator) this.getOrdergoods_foodDAO().findHot(0, 5).iterator();</p><p>  while(it.hasNext()){</p><p>  Object[

117、] result=(Object[]) it.next();</p><p>  hot_l.add(foodstuffDAO.findById((Integer)result[0]));</p><p><b>  }</b></p><p>  this.setHot(hot_l);</p><p>  this.s

118、etLiefallow(foodstuffDAO.findByClass(1, 0, 14));</p><p>  this.setPastry(foodstuffDAO.findByClass(2, 0, 14));</p><p>  this.setChocolate(foodstuffDAO.findByClass(3, 0, 14));</p><p>

119、  this.setDrink(foodstuffDAO.findByClass(4, 0, 14));</p><p>  return SUCCESS;</p><p><b>  }</b></p><p><b>  }</b></p><p>  2) 食品分為四大類,如圖所示:<

120、/p><p>  3)點擊某一種類則進入按大類的食品顯示頁面:</p><p><b>  /*此類完成功能:</b></p><p>  *在分類顯示各類食品時,將各類食品從數(shù)據(jù)庫中讀出;</p><p>  *因為每類食品都比較多,所以設置了分類顯示的功能。</p><p><b>  

121、*/</b></p><p>  public class FoodClassAction extends ActionSupport {</p><p>  private IFoodstuffDAO foodstuffDAO;</p><p>  private List foodList;</p><p>  private

122、 int foodClass;</p><p>  private String foodClassName;</p><p>  private int newsearch;</p><p>  private int total;</p><p>  private int pageNo;</p><p>  

123、private int pre;</p><p>  private int next;</p><p>  /*getter & setter*/</p><p>  public String execute() throws Exception {</p><p>  this.setMax(3);</p><

124、;p>  if(this.getNewsearch()!=0){</p><p>  if(this.getPre()==1)pageNo--;</p><p>  else if(this.getNext()==1)pageNo++;</p><p>  }else this.setPageNo(0);</p><p>  this.

125、setNewsearch(1);</p><p>  this.setFoodList(foodstuffDAO.findByClass(this.getFoodClass(), </p><p>  this.getPageNo()*this.getMax(),this.getMax()));</p><p>  this.setTotal(foodstuffD

126、AO.countByClass(this.getFoodClass()));</p><p>  if(this.getPageNo()==0)this.setPre(0);</p><p>  else this.setPre(1);</p><p>  if((this.getPageNo()+1)*this.getMax()>=this.getTotal

127、())this.setNext(0);</p><p>  else this.setNext(1);</p><p>  if(this.getFoodList().size()!=0){</p><p>  Foodstuff fs=(Foodstuff)this.getFoodList().get(0);</p><p>  this.

128、setFoodClassName(fs.getFoodClass().getClassName());</p><p><b>  }</b></p><p>  return SUCCESS;</p><p><b>  }</b></p><p><b>  }</b>

129、</p><p>  4)具有翻頁功能,可以修改購買數(shù)量并點擊“加入購物車”將進入購物車界面,但是如果會員沒有登錄則轉向登錄界面:</p><p><b>  5)會員注冊頁面:</b></p><p><b>  /*此類完成功能:</b></p><p>  *完成用戶的注冊,登錄及修改信息。&

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論