基于SSH電子商城畢業(yè)論文_第1頁
基于SSH電子商城畢業(yè)論文_第2頁
基于SSH電子商城畢業(yè)論文_第3頁
基于SSH電子商城畢業(yè)論文_第4頁
基于SSH電子商城畢業(yè)論文_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、 PAGE36 / NUMPAGES37 基于SSH電子商城的課程設(shè)計課程名稱:基于SSH電子商城課程代碼:題 目:基于SSH電子商城年級/專業(yè)/班:學(xué)生:學(xué)號 :指導(dǎo)老師:開題時間:年 月 日完成時間: 年 月 日摘要 電子商務(wù)是利用電子信息技術(shù)和網(wǎng)絡(luò)技術(shù)進行商務(wù)活動的一種先進手段。隨著網(wǎng)絡(luò)經(jīng)濟的迅猛發(fā)展,電子商務(wù)作為網(wǎng)絡(luò)化的新型經(jīng)濟活動,逐漸成為主要發(fā)達(dá)國家增強綜合競爭實力,贏得全球資源配置優(yōu)勢的有效手段。計算機和網(wǎng)絡(luò)技術(shù)的應(yīng)用推進了信息社會的進程,而電子商務(wù)則造就了全新的經(jīng)濟運行方式,將給社會經(jīng)濟帶來重大的變革。電子商務(wù)為中小型企業(yè)的經(jīng)營和管理打開新的局面。網(wǎng)絡(luò)購物作為電子商務(wù)一個重要的

2、應(yīng)用,在新的貿(mào)易經(jīng)濟體制中占據(jù)了重要的位置,對未來的電子商務(wù)的發(fā)展發(fā)揮著主導(dǎo)作用,越來越受到人們的重視。首先,本文簡述了電子商務(wù),尤其是網(wǎng)絡(luò)購物發(fā)展現(xiàn)狀,并根據(jù)一小型服裝企業(yè)實際需求提出了構(gòu)建基于SSH(Struts+Spring+Hibernate)整合框架的電子商務(wù)系統(tǒng)的項目計劃。其次,深入研究了輕量級Java EE應(yīng)用體系結(jié)構(gòu)。對所選框架分別進行分析和研究。Struts是一個實現(xiàn)了MVC模式的經(jīng)典的框架;Hibernate是輕量級Java EE應(yīng)用的持久層解決方案,以面向?qū)ο蟮姆绞教峁┝顺志没惖綌?shù)據(jù)表之間的映射,是優(yōu)秀的ORM框架;Spring為企業(yè)應(yīng)用提供了輕量級的解決方案:它的Io

3、c容器,AOP思想,以它為核心,整合持久層框架和Web MVC框架。通過三個框架的整合,可以構(gòu)建可擴展、可復(fù)用、可移植、可維護的軟件系統(tǒng)!最后,在此基礎(chǔ)上,嚴(yán)格按照軟件開發(fā)規(guī)設(shè)計本電子商務(wù)系統(tǒng),對系統(tǒng)進行詳細(xì)的需求分析、體系架構(gòu)設(shè)計、概要設(shè)計與詳細(xì)設(shè)計。最終實現(xiàn)了一個網(wǎng)上購物系統(tǒng),系統(tǒng)分為前臺和后臺,前臺主要功能包括注冊和登錄、商品瀏覽、個人信息管理、購物車、我的訂單和網(wǎng)上支付,后臺主要功能包括管理員信息管理、用戶信息管理、商品管理、商品分類管理、訂單管理。通過實踐,很好的整合了這三個框架,并將其應(yīng)用到實際的項目中,達(dá)到了預(yù)期效果,體現(xiàn)了較高的研究價值和應(yīng)用價值。此外,本電子商務(wù)系統(tǒng)的成功的研

4、發(fā),不僅為中小型企業(yè)未來的運營模式提供一個示,而且值得更多的傳統(tǒng)企業(yè)關(guān)注和借鑒。關(guān)鍵詞:電子商務(wù),Struts,Hibernate,Spring,Java EE,框架Abstract E-commerce is an advanced business activity through electronic information technology and network technologyWith the swift development of cybereconomy,E-commerce,as a brand-new new network economic activity w

5、hich is becoming all effective means of enhancing comprehensive competitive edge and gaining the advantage of global resource allocation for the major developed countriesCalculator with technical application in network propulsion social progress in information,but the electronic commerce then educat

6、ed the all new economy the movement the method,will bring the social economy graveness replaceE-commerce opens up a new situation for the management and administrmion of the small and medium enterprisesOnline shopping,as part of e。commerce,is very important in this new trade economic system,will dis

7、play the leading role to the future electronic commerce development,mote and more to be valuedThis paper first gives a brief introduction on e-commerce,focusing on the current status and trends of online shopping in particularAn e-commerce system project proposal for a small garment enterprise,based

8、 on all integrated SSH(Struts+Spring+Hibemate)framework,is also providedThe proposal is followed by an in-depth study Oil the lightweight Java EE application architectureStruts is a classical framework which implements the MVC modelHibernate is a lightweight Java persistence framework,it performs po

9、werful object relational mapping from persistence classes to database tablesSpring framework has all IoC container and provides Aspect-oriented programming,and it is the core in integrating with the persistence framework and the Web MVC frameworkThrough integrating the three frameworks,a scalable,re

10、usable,easy to migrate and easy to maintain software system Can be builtThe last part of this paper is a detailed design document of the e-commerce systemThe document follows strictly the development specifications,which includes detailed requirement analysis,system architecture design,a summarised

11、design and a detailed designFinally,this paper implements an online shopping system,which divides into the onstage and the backstageThe onstage includes the main function of registration and logiIl,the view of products,personal information management,the shopping cart,my order form and the net paysT

12、he backstage includes the main function of administrators information management,users information management,commodity management,classification of goods management,order management and announcement-information managementThe three frameworks are well integrated through practice,and expected effects

13、 are achieved in applying them on real projectsThe overall results are satisfactoryIn addition,the SUCCESS of e,-commerce system research and development,not only proffers a show-how for the future operating model of the small and medium enterprises,also is worth noticing and learning by more and mo

14、re traditional enterprisesKeywords:E-commerce,Struts,Hibernate,Spring,Java EE,framework目錄TOC o 1-3 h u HYPERLINK l _Toc7941 目錄 PAGEREF _Toc7941 3 HYPERLINK l _Toc7858 前言 PAGEREF _Toc7858 4 HYPERLINK l _Toc8932 第1章 系統(tǒng)需求分析 PAGEREF _Toc8932 5 HYPERLINK l _Toc27156 1.1 系統(tǒng)設(shè)計目的 PAGEREF _Toc27156 5 HYPERLI

15、NK l _Toc16609 1.2 系統(tǒng)需求 PAGEREF _Toc16609 5 HYPERLINK l _Toc81 1.2.1 功能需求 PAGEREF _Toc81 5 HYPERLINK l _Toc23466 1.2.2 性能需求 PAGEREF _Toc23466 6 HYPERLINK l _Toc3348 1.3 運行環(huán)境 PAGEREF _Toc3348 6 HYPERLINK l _Toc15658 1.3.1 硬件環(huán)境 PAGEREF _Toc15658 6 HYPERLINK l _Toc29660 1.3.2 軟件環(huán)境 PAGEREF _Toc29660 7 H

16、YPERLINK l _Toc32539 第2章 系統(tǒng)設(shè)計 PAGEREF _Toc32539 7 HYPERLINK l _Toc715 2.1MVC模式分析 PAGEREF _Toc715 7 HYPERLINK l _Toc11554 2.1.1模型(Model) PAGEREF _Toc11554 7 HYPERLINK l _Toc23767 2.1.2視圖(View) PAGEREF _Toc23767 7 HYPERLINK l _Toc5304 2.1.3控制器(Controller) PAGEREF _Toc5304 7 HYPERLINK l _Toc24200 2.2SS

17、H分析 PAGEREF _Toc24200 8 HYPERLINK l _Toc6509 2.2.1Struts2框架: PAGEREF _Toc6509 8 HYPERLINK l _Toc6573 2.2.2Hibernate框架: PAGEREF _Toc6573 10 HYPERLINK l _Toc22609 2.2.3Spring框架: PAGEREF _Toc22609 12 HYPERLINK l _Toc10155 2.3Struts、Hibernate和Spring的整合 PAGEREF _Toc10155 14 HYPERLINK l _Toc31614 2.3.1Spr

18、ing整合Hibernate PAGEREF _Toc31614 14 HYPERLINK l _Toc20306 2.3.2Spring整合Struts2 PAGEREF _Toc20306 15 HYPERLINK l _Toc26395 2.3.3Struts2、Hibernate和Spring的整合開發(fā) PAGEREF _Toc26395 16 HYPERLINK l _Toc8804 2.4前臺分頁方法改進 PAGEREF _Toc8804 16 HYPERLINK l _Toc29520 2.5數(shù)據(jù)庫設(shè)計 PAGEREF _Toc29520 16 HYPERLINK l _Toc6

19、183 2.4.1數(shù)據(jù)庫字典 PAGEREF _Toc6183 17 HYPERLINK l _Toc17154 第3章 功能實現(xiàn) PAGEREF _Toc17154 19 HYPERLINK l _Toc5565 3.1前臺功能實現(xiàn) PAGEREF _Toc5565 19 HYPERLINK l _Toc1366 3.1.1前臺頁面效果圖 PAGEREF _Toc1366 19 HYPERLINK l _Toc6686 3.1.2前臺主要實現(xiàn)代碼 PAGEREF _Toc6686 24 HYPERLINK l _Toc8256 3.2后臺功能實現(xiàn) PAGEREF _Toc8256 33 HY

20、PERLINK l _Toc13019 3.2.1后臺頁面效果圖: PAGEREF _Toc13019 33 HYPERLINK l _Toc29876 3.2.2后臺主要實現(xiàn)代碼: PAGEREF _Toc29876 35 HYPERLINK l _Toc18462 第4章 結(jié)束語 PAGEREF _Toc18462 36 HYPERLINK l _Toc12591 4.1論文總結(jié) PAGEREF _Toc12591 36 HYPERLINK l _Toc384 4.2未來工作 PAGEREF _Toc384 36前言21世紀(jì)是信息的世界,隨著信息化的浪潮席卷全球,傳統(tǒng)的商務(wù)模式受到巨大的沖

21、擊。越來越多的企業(yè)和個人消費者,在 Internet 開放的網(wǎng)絡(luò)環(huán)境下,一種基于瀏覽器服務(wù)器應(yīng)用模式,實現(xiàn)消費者網(wǎng)上購物,商戶之間的網(wǎng)上交易和在線電子支付的新型的商業(yè)運營模式電子商務(wù)應(yīng)運而生。目前做得比較成功的電子商務(wù)平臺,國有:當(dāng)當(dāng)網(wǎng),阿里巴巴,淘寶,京東商城,慧聰網(wǎng)等,國外有:亞馬遜,eBuy等。電子商務(wù)在中國也發(fā)展了一段時間,目前在國也有很多電子商務(wù)的平臺,通過分析國的電子商務(wù)可知,目前國的電子商務(wù)做的都是集合型,一個平臺中各個方面的商務(wù)領(lǐng)域似乎都有涉與到。像比較有名的一些網(wǎng)購平臺,如:八點優(yōu)網(wǎng),郵樂網(wǎng),京東商城,易百,淘寶網(wǎng),拍拍網(wǎng),紅孩網(wǎng)等電子商務(wù),涉與的門類都很多,而且他們都有一個

22、共通的特點就是只有產(chǎn)品的展示與訂購,很少有廠家企業(yè)的介紹。目前中國能用上電子商務(wù)平臺的都是一些大中型的企業(yè),而大部分的中小型,特別是小型企業(yè)還是用著以前的生意模式,靠朋友,靠關(guān)系,靠老客戶來維持企業(yè),這種模式在過去的時代會有一定的優(yōu)勢,但在信息網(wǎng)絡(luò)時代這種模式缺乏主動性,往往會使企業(yè)處在被動的狀態(tài)。像阿里巴巴這樣的大型電子商務(wù)平臺是能很好地幫助企業(yè)做宣傳,聯(lián)系客戶,但是阿里巴巴基本上是面對大中型的企業(yè),每年的管理費用都非常高,對于一些中小企業(yè)要承受一筆高的資金是很困難的。為了能夠上中小型企業(yè)特別是小型企業(yè)能夠用上電子商務(wù)平臺,我們特地開發(fā)此系統(tǒng),使中小型企業(yè)也能做到生產(chǎn),宣傳,銷售一條龍。 本

23、系統(tǒng)采用SSH(Struts,Spring,Hibernate)框架來開發(fā)。SSH框架是目前J2EE領(lǐng)域里最熱門而且用得較為成熟的一套開源框架,它是基于MVC設(shè)計模式之上,在充分發(fā)揮MVC設(shè)計模式優(yōu)點的同時,也創(chuàng)造出了自己的開發(fā)特點,降低了應(yīng)用程序的耦合性,更進一步提高了應(yīng)用程序的復(fù)用性、移植性、靈活性、擴展性和應(yīng)用性能。SSH是一套輕量級的開發(fā)框架,相對于E重量級開發(fā)框架,SSH在繼承了它的優(yōu)點的同時,在開發(fā)和執(zhí)行效率上都有了相當(dāng)程度的提高,同時對于開發(fā)者而言,它比E更容易學(xué)習(xí)和撐握,開發(fā)速度也更快。目前Struts和Spring發(fā)展到2.0版本,Hibernate發(fā)展到3.0版本,SSH框

24、架也正在不斷地進行優(yōu)化和升級,運行也越來越穩(wěn)定。 系統(tǒng)需求分析系統(tǒng)設(shè)計目的本系統(tǒng)設(shè)計目的旨在建立一個以SSH框架為基礎(chǔ),結(jié)構(gòu)靈活、可復(fù)用、可擴展,開發(fā)快速且輕量的電子商務(wù)應(yīng)用平臺。系統(tǒng)框架和企業(yè)子系統(tǒng)為本人設(shè)計的主要目標(biāo),能夠根據(jù)業(yè)務(wù)需求變化可以靈活操作系統(tǒng)功能模塊,根據(jù)企業(yè)變化能夠自由添加、修改、刪除企業(yè)子系統(tǒng)是實現(xiàn)以上目標(biāo)的關(guān)鍵。 系統(tǒng)需求功能需求前臺功能首頁:為企業(yè)提供一個首頁,在上面顯示的重要信息包括企業(yè)LOGO,用戶的登錄,用戶的注冊,一級分類顯示,最新商品與熱門商品顯示等。用戶的注冊:主要針對未注冊的用戶,完成注冊功能使用,在注冊過程中,需要進行數(shù)據(jù)的前臺非空校驗,與使用AJAX完

25、成用戶名是否存在的異步校驗。在校驗通過后即可完成注冊,在后臺同樣需要進行數(shù)據(jù)校驗與發(fā)送一封激活。用戶的激活:已經(jīng)注冊的用戶,需要進入點擊激活進行用戶的激活。用戶的登錄:已經(jīng)注冊的用戶,并且該用戶已經(jīng)激活的情況下,輸入用戶名和密碼即可激活用戶。用戶的退出:針對已經(jīng)登錄的用戶,退出該系統(tǒng)使用。 首頁商品展示:顯示最新商品與熱門商品。方便用戶了解最新以與最熱門商品。分類頁面商品展示:根據(jù)某個分類的信息去展示商品??梢苑奖阌脩舨檎蚁鄳?yīng)分類商品。商品詳情展示:點擊某個具體商品的時候,可以顯示商品的詳情。以便用戶可以方便的了解商品的具體信息。購物車:此功能為用戶提供購物功能,用戶可以根據(jù)自己需要,將自己喜

26、歡的商品添加到購物車,也可以從購物車中移除商品,甚至清空購物車中的所有商品。訂單:登錄用戶可以將自己喜歡商品進行購買,產(chǎn)生訂單。可以對自己產(chǎn)生的訂單進行在線的付款。以與可以根據(jù)用戶信息,查詢自己的訂單。后臺功能管理員登錄:管理員根據(jù)用戶名和密碼完成登錄功能。 一級分類管理:管理員可以對前臺顯示的一級分類進行管理包括添加,修改,刪除,查詢的功能操作。二級分類管理:管理員可以對前臺顯示的二級分類進行管理包括添加,修改,刪除,查詢的功能操作。 商品管理:管理員可以對前臺上顯示的商品進行管理包括添加,修改,刪除,查詢的功能操作同時要可以上傳商品的圖片。 訂單管理:管理員可以對所有的用戶產(chǎn)生的訂單進行管

27、理包括未付款的,已經(jīng)付款的,已經(jīng)發(fā)貨的,交易完成的訂單??梢孕薷挠唵螤顟B(tài)與異步加載訂單項。用戶管理:管理員可以對注冊過的用戶進行管理包括修改用戶信息,刪除用戶,查詢用戶。 性能需求響應(yīng)時間與存使用量:忽略網(wǎng)絡(luò)環(huán)境因素、主題模板與功能插件運作的因素,以本地測試為準(zhǔn)。 數(shù)據(jù)庫安裝響應(yīng):時間2秒,存使用量最高上限8,000,000 bytes。 前臺瀏覽響應(yīng)時間:時間0.8秒,存使用量最高上限9,000,000 bytes。 后臺操作響應(yīng)時間:時間0.9秒,存使用量最高上限9,000,000 bytes。 安全性: 后臺的界面訪問、路徑訪問、操作執(zhí)行的前后,均受登陸會話管理和用戶權(quán)限管理的控制。運行

28、環(huán)境硬件環(huán)境服務(wù)器端: 服務(wù)器端的最低配置是由建立站點所需的軟件來決定的,本網(wǎng)絡(luò)系統(tǒng)服務(wù)器端的最低配置如下: 處理器:Inter Pentium(Celeron) 4 2.4GHz 或更高。 存:2G 硬盤空間:160G 顯卡:SVGA顯示適配器 b)客戶端: 因為客戶端主要用于瀏覽和操作數(shù)據(jù),所以對客戶端的硬件要求不高,不過現(xiàn)在的電腦有很高的性價比,因此需要的配置應(yīng)該高于下面的配置:處理器:Inter Pentium(Celeron) 4 1.6GHz 或更高。存:512MB 硬盤空間:160GB顯卡:SVGA顯示適配器 軟件環(huán)境服務(wù)器端: 操作系統(tǒng):Windows NT/2000/2003

29、 服務(wù)器:Tomcat7.x + jdk7.x 數(shù)據(jù)庫管理系統(tǒng):MySQL5.x b)用戶端: 操作系統(tǒng):Windows NT/2000/2003/XP professional/Windows Seven系統(tǒng)設(shè)計2.1MVC模式分析MVC是一種將應(yīng)用程序的邏輯層和表現(xiàn)層進行分離的方法。MVC 式的出現(xiàn)不僅實現(xiàn)了功能模塊和顯示模塊的分離,同時它還提高了應(yīng)用系統(tǒng)的可維護性、可擴展性、可移植性和組件的可復(fù)用性。 2.1.1模型(Model)模型是應(yīng)用程序的主體部分。模型表示業(yè)務(wù)數(shù)據(jù)。通常來說,你的模型類將包含取出、插入、更新、刪除你的數(shù)據(jù)庫信息的功能。 2.1.2視圖(View) 視圖是應(yīng)用程序中

30、用戶界面相關(guān)的部分,是用戶看到并與之交互的界面。一個視圖通常是一個網(wǎng)頁,但是在 CI中,一個視圖也可以是一個頁面片段,如頁頭、頁尾。 2.1.3控制器(Controller) 控制器工作就是根據(jù)用戶的輸入,控制用戶界面數(shù)據(jù)顯示和更新model對象狀態(tài)。是模型、視圖以與其它任何處理 請求所必須的資源之間的中介,并生成網(wǎng)頁。 由于運用MVC的應(yīng)用程序的三個部件是相互對立,改變其中一個不會影響其它兩個,所以依據(jù)這種設(shè)計思想你能構(gòu)造良好的松耦合的構(gòu)件。 本系統(tǒng)是在MVC模式基礎(chǔ)上來進行分層,由于本系統(tǒng)開發(fā)的工具是MyEclipse,在建立工程時開發(fā)工具就已經(jīng)初步把系統(tǒng)分成MVC三層結(jié)構(gòu)。模型層由Mod

31、els層來充當(dāng),該層主要是用來存實體Bean類和Hibernate影射文件。通過該層開發(fā)者很方便地對整個工程下的Bean進行管理,同時也非常方便地對Hibernate配置文件進行影射,極大的提高了開發(fā)的效率,同時對以后系統(tǒng)的維護也非常方便。V層在本系統(tǒng)中主要是用來數(shù)據(jù)展示,本系統(tǒng)中V層主要是采用JSP技術(shù)。通過JSP技術(shù)可以很方便地把數(shù)據(jù)展示在web瀏覽器上。在JSP技術(shù)基礎(chǔ)上,對其進行了改進,把html語言和java語言進行分離,這樣既達(dá)到了解耦的目的,也使后續(xù)系統(tǒng)的維護變得很方便。把流程控制都放到Action層,把業(yè)務(wù)邏輯處理放在service層中,充分利用Struts2技術(shù),在html頁

32、面中使用Struts2標(biāo)簽來展示數(shù)據(jù),盡量減少在html頁面上寫java語句。 C層主要是用來做流程和邏輯控制,也是整個系統(tǒng)的核心層。所有進出系統(tǒng)的訪問都要經(jīng)過這一層的控制。本系統(tǒng)對C層時行了一些改進,我們把控制層又細(xì)分為Action層,service層和Dao層。Action層只管流程控制,Service層只管邏輯控制,Dao層只管與數(shù)據(jù)打交道,各施其職,每個層次只管自己的事情,這樣能使整個系統(tǒng)的層次非常分明,不會出現(xiàn)功能的混淆。讓開發(fā)者和維護者在編寫代碼的時候非常清晰。MVC模型優(yōu)點顯然,但在實際開發(fā)過程中個人對采用MVC模式有一點點看法。馬克思主義哲學(xué)告訴我們,任何事物都有它的局限性,M

33、VC也不例外。MVC不是萬能藥,它并不能醫(yī)治所有的疾病,作為一名醫(yī)術(shù)高超的醫(yī)生應(yīng)該要能對癥下藥。MVC強制性地將業(yè)務(wù)邏輯層和表現(xiàn)層分開,在一定程度上是能很好地松耦合,但這種做法是會帶來開發(fā)和運行的開銷的。首先MVC采用多分層結(jié)構(gòu),這樣就給開發(fā)帶來了難度,增加了開發(fā)的時間,并且如果在層次設(shè)計的時候設(shè)計得不好,反而會降低程序運行的效率。另外多層次結(jié)構(gòu)在運行的時間沒有單層次結(jié)構(gòu)的程序運行的速度快,采用MVC模式如果分層太多,是會降低程序運行速度??鬃痈嬖V我們要因材施教,我們做開發(fā)的也要因物施用,大炮有大炮的威力,小步槍有小步槍的靈活,并不是說所有的系統(tǒng)都要采用MVC模式來開發(fā)。MVC模式它提出來的初

34、衷就是為大型軟件設(shè)計而提出的,它對那些需要經(jīng)常復(fù)用,擴展的大型軟件是非常有好處,但對于那些復(fù)用性,擴展性很少的小軟件,特別是對于開發(fā)時間要求比較緊的情況下,采用MVC模式,其實不是一種明智的選擇。2.2SSH分析SSH即Struts+Spring+Hibernate,是典型的J2EE三層結(jié)構(gòu),分為表現(xiàn)層、中間層和數(shù)據(jù)訪問層。三層體系將數(shù)據(jù)表現(xiàn)、業(yè)務(wù)邏輯和數(shù)據(jù)訪問分開。業(yè)務(wù)邏輯、數(shù)據(jù)訪問、權(quán)限攔截與合法性校驗等工作放在中間層處理。客戶端不直接與數(shù)據(jù)庫交互,而是通過組件與中間層建立連接,再由中間層與數(shù)據(jù)庫打交道。2.2.1Struts2框架:Struts2體系結(jié)構(gòu)Struts2是一個具有很好實用價

35、值的Web MVC框架,它減少了直接運用MVC模式來開發(fā)Web應(yīng)用的周期。重要的是它是一個開源框架,方便開發(fā)者深入研究了解其機制,越來越廣泛的接受和應(yīng)用。而且它提供一個好的控制器和一套定制的標(biāo)簽庫Taglib,著力在控制器和視圖上的應(yīng)用,完美的體現(xiàn)了MVC設(shè)計思想。提供集中統(tǒng)一的權(quán)限控制、國際化提示和消息、輸入校驗和日志記錄等技術(shù)支持。另外,它對其他技術(shù)和框架具有良好的融合性。如能與E、JDBC和Hibernate等數(shù)據(jù)庫訪問技術(shù)相結(jié)合,利用集成技術(shù)減少數(shù)據(jù)庫的工作量。Struts2的體系結(jié)構(gòu)如圖所示:Struts2核心實現(xiàn):Struts2主要是用來控制整個系統(tǒng)流程。它由三個部分組成,核心控制

36、器FilterDispatcher、業(yè)務(wù)控制器和用戶實現(xiàn)的業(yè)務(wù)邏輯組件。本系統(tǒng)采用的核心控制器為2.3.15.3版本,該控制器作為一個Filter運行在Web應(yīng)用中,它負(fù)責(zé)攔截所有的用戶請求,當(dāng)用戶請求到達(dá)時,該Filter會過濾用戶請求。如果用戶請求以action結(jié)尾,該請求將被轉(zhuǎn)入Struts 2框架處理。Struts 2框架獲得了*.action請求后,將根據(jù)*.action請求的前面部分決定調(diào)用哪個業(yè)務(wù)邏輯組件,例如,對于login.action請求,Struts 2調(diào)用名為login的Action來處理該請求。 struts2 org.apache.struts2.dispatche

37、r.ng.filter.StrutsPrepareAndExecuteFilter struts2 /* 攔截器也是本系統(tǒng)中使用的一個Struts2重要組件功能,該組件功能提供一個事件攔截的方法,讓你可以對某些動作進行攔截。例如本系統(tǒng)對所有后臺操作都有一個檢查是否登錄的功能,如果沒有登錄則對其操作進行攔截。public class PrivilegeInterceptor extends MethodFilterInterceptorOverrideprotected String doIntercept(ActionInvocation actionInvocation) throws Ex

38、ception / 獲得Session中存的后臺的用戶:AdminUser adminExistUser = (AdminUser) ServletActionContext.getRequest().getSession().getAttribute(adminExistUser);if(adminExistUser = null)/ 沒有登錄:ActionSupport support = (ActionSupport) actionInvocation.getAction();support.addActionError(您還沒有登錄!請先去登錄!);return support.LOG

39、IN;else/ 已經(jīng)登錄return actionInvocation.invoke();2.2.2Hibernate框架:ORM(對象關(guān)系數(shù)據(jù)庫映射)對象關(guān)系映射(Object Relational Mapping,簡稱ORM)是一種為了解決面向?qū)ο笈c關(guān)系數(shù)據(jù)庫存在的互不匹配的現(xiàn)象的技術(shù)。它完成了面向?qū)ο蟮木幊陶Z言到關(guān)系型數(shù)據(jù)庫的映射。ORM框架可以看成應(yīng)用程序和數(shù)據(jù)庫之間的橋梁,通過它,我們可以以面向?qū)ο蟮姆绞浇!⒉僮?,易用、易理解,同時也可以利用關(guān)系型數(shù)據(jù)庫系統(tǒng)對數(shù)據(jù)庫訪問操作的一些優(yōu)勢。以面向?qū)ο蟮姆绞讲僮鞒志没瘜ο螅鳲RM框架負(fù)責(zé)轉(zhuǎn)換成對應(yīng)的SQL(結(jié)構(gòu)化查詢語言)操作。Hib

40、ernate概述Hibernate是輕量級Java EE應(yīng)用的持久層解決方案,是流行的ORM框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以面向?qū)ο蟮姆绞絹聿倏v數(shù)據(jù)庫。Hibernate不僅管理Java類到數(shù)據(jù)庫表的映射,還提供數(shù)據(jù)查詢和獲取數(shù)據(jù)的操作,可以減少人工使用SQL和JDBC處理數(shù)據(jù)的時間。Hibernate體系結(jié)構(gòu)Hibernate實際上是一個提供數(shù)據(jù)庫服務(wù)的中間件。Hibernate的持久化解決方案將用戶從繁瑣的JDBC訪問中解脫出來,底層數(shù)據(jù)庫連接獲取,數(shù)據(jù)訪問的實現(xiàn)、事務(wù)控制都無須用戶關(guān)心,這種體系結(jié)構(gòu),將應(yīng)用層從底層的JDBCJTA API中抽象出來。H

41、ibernate體系結(jié)構(gòu)如圖(注:該圖來自于Hibernate官方參考文檔)所示。Hibernate有5個核心的接口、類,如下:(1)SessionFactory接口:它是單個數(shù)據(jù)庫映射關(guān)系經(jīng)過編譯后的存鏡像。所以,SessionFactory的初始化過程比較復(fù)雜,同時也耗費大量的資源。為了解決這個問題,Hibernate的設(shè)計人員對Hibernate采用了線程安全可以并發(fā)調(diào)用,實現(xiàn)SessionFactory的實例,多個線程可以并發(fā)調(diào)用,實現(xiàn)Hibernate實例共享。此外,它還是生成Session的工廠。(2)Session接口:應(yīng)用程序與持久儲存層之間交互操作的一個單線程對象。Sessi

42、on接口對象實例中提供了持久化操作相關(guān)的“增、刪、查、改(CRUD)方面的操作。所有的持久化操作都是在Session的基礎(chǔ)上完成的。通常將每一個Session對象實例和一個數(shù)據(jù)庫事務(wù)綁定。(3)事務(wù)Transaction接口:通過Transaction接口來達(dá)到允許應(yīng)用系統(tǒng)通過一組一致的事務(wù)API來控制事務(wù)邊界,從而可以封裝系統(tǒng)底層的事務(wù)操作和訪問的接口。將應(yīng)用系統(tǒng)中涉與事務(wù)功能實現(xiàn)代碼從底層的事務(wù)具體實現(xiàn)的技術(shù)細(xì)節(jié)中抽象出來,最終可以達(dá)到應(yīng)用系統(tǒng)在不同的運行環(huán)境平臺和Java EE容器之間方便的移植。(4)Query接口:Query接口能讓開發(fā)者方便的對數(shù)據(jù)庫表中的數(shù)據(jù)與與之對應(yīng)的持久化對象

43、進行查詢操作,利用它可以以面向?qū)ο蟮姆绞絹韺崿F(xiàn)對數(shù)據(jù)庫的各種查詢操作。(5)Configuration:通過Configuration獲取目前的配置(如數(shù)據(jù)源、數(shù)據(jù)庫的URL、連接用戶名與密碼、數(shù)據(jù)庫方言等)并將這些配置加載到存中,并預(yù)啟動Hibernate框架,最終達(dá)到創(chuàng)建SessionFactory對象的目的。2.2.3Spring框架:Spring框架介紹:Spring是從實際開發(fā)中抽取出來的開源框架,為企業(yè)的開發(fā)提供一個輕量級的解決方案。該解決方案包括:基于Ioc(控制反轉(zhuǎn))的核心機制,以與AOP(面向切面編程)的思想,能與多種持久層技術(shù)的整合,是優(yōu)秀的Web MVC框架等。Sprin

44、g致力于Java EE應(yīng)用各層的解決方案而不是僅僅專注于某一層的方案,它貫穿表現(xiàn)層、業(yè)務(wù)層、持久層,降低各層組件的耦合度,實現(xiàn)軟件各層的解耦.輕量級劃分一個應(yīng)用是否屬于輕量級還是重量級,主要看它使用了多少服務(wù),使用的服務(wù)越多,容器要為普通java對象做的工作就越多,必然會影響到應(yīng)用的發(fā)布時間或者是運行性能。對于Spring容器,它提供了很多服務(wù),但這些服務(wù)默認(rèn)是關(guān)閉的,應(yīng)用對需要的服務(wù)可以現(xiàn)用現(xiàn)拿。而且,Spring是無侵入性的可擴展框架,Spring應(yīng)用中的對象不依賴Spring具體的類。Ioc(控制反轉(zhuǎn))所謂的控制反轉(zhuǎn)就是應(yīng)用本身不負(fù)責(zé)依賴對象的創(chuàng)建與維護,依賴對象的創(chuàng)建與維護是由外部容器

45、負(fù)責(zé)的。這樣控制權(quán)就由應(yīng)用轉(zhuǎn)移到了外部容器,控制權(quán)的轉(zhuǎn)移就是所謂反轉(zhuǎn)。AOP(面向切面編程)AOP(Aspect Orient Programming),即面向方面編程。AOP技術(shù)給人們提供了一個嶄新的視角分析和設(shè)計軟件系統(tǒng)。AOP引入了分離關(guān)注點形成模塊化的機制來解決橫切關(guān)注點的問題。所謂的關(guān)注點指的是一個特定的概念、目標(biāo)或可實現(xiàn)域。系統(tǒng)正是由一組關(guān)注點組成,典型的軟件系統(tǒng)由多個系統(tǒng)級關(guān)注點和核心級關(guān)注點組成。核心關(guān)注點指業(yè)務(wù)處理的主要過程,而系統(tǒng)級關(guān)注點是與核心業(yè)務(wù)無關(guān),一般橫切多個核心關(guān)注點,為這些核心關(guān)注點提供服務(wù),如日志記錄,安全檢測、事務(wù)處理等。AOP和OOP互為補充,從兩種不同的

46、角度去認(rèn)識事物。傳統(tǒng)的OOP4lJ編程是以對象為核心,系統(tǒng)由一系列相互依賴的對象組成,抽象的封裝好這些對象的屬性和行為,使得這些對象可以相互協(xié)作的完成特定的業(yè)務(wù)邏輯,從而完成一個完整的應(yīng)用系統(tǒng)。但隨著軟件系統(tǒng)的不斷擴大,系列化分工越來越細(xì),對跨越多個模塊的行為進行建模是,OOP暴露出了一些無法很好解決的問題。OOP的核心是采用的縱向結(jié)構(gòu)去完成業(yè)務(wù)邏輯(也可理解為關(guān)注點),很多不同模塊可能具有一樣的關(guān)注點(橫切關(guān)注點),OOP處理起來較為繁瑣,模塊間的耦合度大,后期維護和擴展比較困難。AOP的核心是允許我們獨立的完成一個個關(guān)注點,然后以一種松耦合的方式把這些單獨的關(guān)注點編織成一個完整的系統(tǒng),形成

47、了一種模塊化橫切關(guān)注點的方式。與OOP相對,AOP采用的是橫向結(jié)構(gòu),例如,多個模塊具有某個一樣操作,這個操作就可以視為系統(tǒng)中的一個“橫切關(guān)注點”。簡單地說,AOP就是將那些與業(yè)務(wù)無關(guān),卻為業(yè)務(wù)處理模塊共同服務(wù)的諸如并發(fā)訪問控制的一些系統(tǒng)關(guān)注點(通用的功能需求),從不相關(guān)的的類之間分離出來,在某個地方集中編寫,組織和維護,并可以通過如AspectJ等工具將它們織入到系統(tǒng)出供業(yè)務(wù)對象使用。這是系統(tǒng)建模中抽象層次的進一步提升,可以得到結(jié)構(gòu)清晰、模塊化強、代碼問耦合度低、易于重用和維護的系統(tǒng)。Spring體系結(jié)構(gòu)Spring框架由7個定義良好的模塊(組件)組成,各個模塊可以獨立存在,也可以聯(lián)合使用。(

48、1)Spring Core:核心容器提供了Spring的基本功能。核心容器的核心功能是用Ioc容器來管理類的依賴關(guān)系Spring采用的模式是調(diào)用者不理會被調(diào)用者的實例的創(chuàng)建,由Spring容器負(fù)責(zé)被調(diào)用者實例的創(chuàng)建和維護,需要時注入給調(diào)用者。這是目前最優(yōu)秀的解耦模式。(2)Spring AOP:Spring的AOP模塊提供了面向切面編程的支持。SpringAOP采用的是純Java實現(xiàn)。Spring AOP采用基于代理的AOP實現(xiàn)方案,AOP代理由Ioc容器負(fù)責(zé)生成、管理,依賴關(guān)系也一并由Ioc容器管理,盡管如此,Spring Ioc容器并不依賴于AOP,這樣我們可以自由選擇是否使用AOP。(3

49、)Spring ORM:提供了與多個第三方持久層框架的良好整合。(4)Spring DAO: Spring進一步簡化DAO開發(fā)步驟,能以一致的方式使用數(shù)據(jù)庫訪問技術(shù),用統(tǒng)一的方式調(diào)用事務(wù)管理,避免具體的實現(xiàn)侵入業(yè)務(wù)邏輯層的代碼中。(5)Spring Context:它是一個配置文件,為Spring提供上下文信息,提供了框架式的對象訪問方法。Context為Spring提供了一些服務(wù)支持,如對國際化(i18n)、電子、校驗和調(diào)度功能。(6)Spring Web:提供了基礎(chǔ)的針對Web開發(fā)的集成特性,例如多方文件上傳,利用Servlet listeners進行IoC容器初始化和針對Web的appl

50、icationContext.(7)Spring MVC:提供了Web應(yīng)用的MVC實現(xiàn)。Spring的MVC框架并不是僅僅提供一種傳統(tǒng)的實現(xiàn),它提供了一種清晰的分離模型,在領(lǐng)域模型代碼和web form之間。并且,還可以借助Spring框架的其他特性。2.3Struts、Hibernate和Spring的整合本章的前部分,我們已經(jīng)了解了輕量級JAVA EE分層的設(shè)計模式,在Java界多種優(yōu)秀框架在對應(yīng)層找到了自己的位置。如表示層有:Struts、WebWork、Velocity、JSF、Tapestry等。持久層有:Hibernate、Entity E、iBATIS、TopLink、O等;將各

51、層的開源框架有機的整合在一起作為軟件系統(tǒng)的主體架構(gòu),使得系統(tǒng)具各高度的可擴展性、可維護性。在各種整合的方案中,struts+hibernate+spring已成為JAVAEE應(yīng)用開發(fā)的主流體系。2.3.1Spring整合HibernateSpring以其開放性,能與大部分ORM框架良好的整合這樣Spring就能輕松地使用ORM。Spring提供了DAO支持,DA0組件是應(yīng)用的持久層訪問的重要組件,我們把主要精力集中在數(shù)據(jù)的管理口上。此外,Spring還提供了一致的異常抽象,不需要在編碼時顯示的捕獲各種特定的異常。通過Bibernate進行數(shù)據(jù)持久層操作時,Hibernate的Session接口

52、提供了基本的數(shù)據(jù)訪問方法,獲得Hibernate Session對象方法是要實現(xiàn)Hibernate的SessionFactory接口,SessionFactory接口極為重要,它是單個數(shù)據(jù)庫映射關(guān)系編譯后的存鏡像,負(fù)責(zé)打開、關(guān)閉和管理Session。Hibernate訪問時,需要手動創(chuàng)建SessionFactory實例,這是繁瑣的工作,我們希望能以聲明式的方式管理SessionFactory實例。Spring的loc容器提供了這種方式,通過配置文件的配置管理SessionFactory實例,使用Spring管理Session對象,使用Spring實現(xiàn)聲明式的事務(wù)管理。下面是Spring對Hib

53、ernate的整合時的關(guān)鍵步驟。在Spring的配置文件ApplicationContextxml中配置Hibernate對SessionFactory的設(shè)置。如下面的示例代碼。org.hibernate.dialect.MySQLDialecttruetrueupdatecn/itcast/shop/user/vo/User.hbm.xml當(dāng)Spring的IoC容器配置了SessionFactory Bean,它隨應(yīng)用的部署啟動而加載,可以利用Spring依賴注入特性將該Bean注入其它Bean。我們由配置文件還可以看出,以聲明式的方式管理SessionFactory時,可以讓應(yīng)用在不同數(shù)據(jù)

54、源間切換,一旦持久層服務(wù)發(fā)生改變,程序代碼不需要改動,只需修改配置文件即可,使得系統(tǒng)的可維護性加強。2、使用Spring中的HibernateDaosupport和HibernateTemplate類簡化Hibernate DAO實現(xiàn)類的編寫,完成數(shù)據(jù)持久化的操作。3、通過Spring的事務(wù)機制進行統(tǒng)一的事務(wù)管理。Spring可以采用編程式和聲明式兩類事務(wù)管理。聲明式的事務(wù)管理更靈活??梢栽赟pring中使用注解式的聲明式事務(wù)管理:2.3.2Spring整合Struts2Spring也提供了MVC模式的支持,但Struts是比較單純的MVC框架,開發(fā)中更傾向Spring和Struts整合開發(fā)。

55、Struts和Spring的整合比較簡單順暢。整合關(guān)鍵點是:將Struts中的Action的實例生成不再由Struts負(fù)責(zé),而交給Spring容器管理,主要目的是讓控制器與業(yè)務(wù)邏輯組件實現(xiàn)分離?;谠撃康?,我們采用工廠模式策略,讓Spring容器管理Action,利用IoC的依賴注入特性為控制器注入業(yè)務(wù)邏輯組件。Struts只單純扮演控制器的角色。下面是Spring和Struts整合的關(guān)鍵步驟。Struts的核心控制器必須能裝載Spring的應(yīng)用程序環(huán)境。Spring和Struts整合有兩種方式Struts2的Action由Struts2框架自身創(chuàng)建.Struts2的Action交給Sprin

56、g框架創(chuàng)建.我們推薦使用第二種方式,因為第二種方式,Action類由Spring容器進行管理,可以方便的對Action類進行AOP的編程.但第二種有一個關(guān)鍵地方:就是在Struts2框架創(chuàng)建Action類的時候,默認(rèn)是多例的.而Spring容器在管理類的時候,默認(rèn)創(chuàng)建是單例的.單例的這種方式就容易產(chǎn)生線程安全問題.所以一定要配置類的scope屬性.在Spring的配置文件中:在Struts的配置文件中:2.3.3Struts2、Hibernate和Spring的整合開發(fā)將兩組整合放在一起進行開發(fā),就可以進行三者的組合開發(fā)。在進行三者整合開發(fā)時,一般可以采取由上往下和由下往上的分層開發(fā)的原則,多

57、數(shù)實際項目開發(fā),往往采用后者的開發(fā)模式,即:(1)從底層開發(fā),先開發(fā)領(lǐng)域?qū)ο?,即一些實體類,這些領(lǐng)域?qū)ο髸诟鲗又g進行傳遞,利用Hibernate做好領(lǐng)域?qū)ο蠛蛿?shù)據(jù)庫表的映射關(guān)系。(2)DAO層的開發(fā)。它是專門獨立出來對數(shù)據(jù)進行持久化,即處理數(shù)據(jù)的CRUD操作,也是利用Spring對Hibernate提供的DAO支持類HibernateDaoSupport來實現(xiàn)的。每個DAO組件對應(yīng)一個數(shù)據(jù)庫表。(3)Service層的開發(fā)。這層主要是具體業(yè)務(wù)組件開發(fā),主要用于處理各類業(yè)務(wù)邏輯,并且能隔離事務(wù)和對其他資源調(diào)度。(4)Action層開發(fā)。主要是處理Web請求,由Spring進行管理。2.4前臺

58、分頁方法改進目前java世界里分頁方法有很多,針對不同的用途分頁也不同,所采用的分頁原理也不一樣。有些分頁方法是一次性把所有數(shù)據(jù)都查詢出來,然后再根據(jù)當(dāng)前的ID號來確定要顯示哪一頁,此種方法是能實現(xiàn)數(shù)據(jù)分頁,但是每次取數(shù)據(jù)都要把所有的數(shù)據(jù)都查詢出來,這樣做不利于提高查詢的速度。有些分頁方法則是根據(jù)當(dāng)前頁的首ID和尾ID號來確定上一頁和下一頁的容,每次點擊上一頁或下一頁都去數(shù)據(jù)庫把相應(yīng)的數(shù)據(jù)查詢出來,這種做法是提高了查詢的速度,但是每次查詢都要訪問數(shù)據(jù)庫,增加了數(shù)據(jù)庫服務(wù)器的負(fù)擔(dān),運行效率不高。本系統(tǒng)前臺采用的分頁方法原理是,第一次查詢時把所有要查詢的數(shù)據(jù)都從數(shù)據(jù)庫里查詢出來,然后把這些數(shù)據(jù)放到

59、一個session中緩存起來,以后再查詢時就從session緩存中去取需要的數(shù)據(jù),這種做法的優(yōu)點在于,只訪問一次數(shù)據(jù)庫減少了對數(shù)據(jù)庫服務(wù)器的負(fù)擔(dān),把數(shù)據(jù)緩存在本地,每次查詢速度比去直接訪問數(shù)據(jù)庫查詢要快得多。采用此種分頁方法既減少于數(shù)據(jù)庫的訪問,又提高了數(shù)據(jù)查詢速度,可謂是一舉兩得。2.5數(shù)據(jù)庫設(shè)計本系統(tǒng)采用的數(shù)據(jù)庫為Mysql5.0,本系統(tǒng)所有與數(shù)據(jù)庫相關(guān)的開發(fā)都遵從Mysql5.0數(shù)據(jù)庫開發(fā)原則。本系統(tǒng)數(shù)據(jù)庫開發(fā)定義名詞如下: *:主關(guān)鍵字符號; PK:主關(guān)鍵字縮寫;+:外關(guān)鍵字符號; FK:外關(guān)鍵字縮寫; &:復(fù)合關(guān)鍵字符號; CPK:復(fù)合關(guān)鍵字縮寫; UNIQUE:唯一索引;各數(shù)據(jù)表描

60、述:數(shù)據(jù)表描述adminuser后臺管理員表category一級分類表categorysecond二級分類表orderitem訂單項表orders訂單表product商品表user前臺用戶表2.4.1數(shù)據(jù)庫字典表名:adminuser解釋:后臺管理員表ADMINUSER(adminuser)是否主鍵字段名字段描述數(shù)據(jù)類型長度可空約束缺省值備注是uid管理員編號INT(11)11username管理員名VARCHAR(50)50是password管理員密碼VARCHAR(30)20是表名:category解釋:一級分類表CATEGORY(category)是否主鍵字段名字段描述數(shù)據(jù)類型長度可空約

溫馨提示

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

最新文檔

評論

0/150

提交評論