基于-JSP和Hibernate電子商務(wù)網(wǎng)站設(shè)計實現(xiàn)_第1頁
基于-JSP和Hibernate電子商務(wù)網(wǎng)站設(shè)計實現(xiàn)_第2頁
基于-JSP和Hibernate電子商務(wù)網(wǎng)站設(shè)計實現(xiàn)_第3頁
基于-JSP和Hibernate電子商務(wù)網(wǎng)站設(shè)計實現(xiàn)_第4頁
基于-JSP和Hibernate電子商務(wù)網(wǎng)站設(shè)計實現(xiàn)_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、-. z第1章 前 言1.1 開發(fā)背景隨著Internet在中國的迅速開展,人們?nèi)粘I钪性絹碓蕉嗟厥褂肳eb技術(shù)來為自己的工作和學(xué)習(xí)效勞。由于Web頁面能把文本、圖像、聲音、動畫、視像等多種媒體信息集于一體,不但使信息的顯示更加生動,而且使信息的瀏覽更為方便,同時Web頁能實現(xiàn)網(wǎng)上交易平臺、客戶信息反應(yīng)等功能,方便了企業(yè)與客戶之間的信息交流,因此許多企業(yè)為增強知名度,以作為對外的展示窗口,進展外信息交流。這也是企業(yè)面臨的商機和挑戰(zhàn)。服裝廠正在擴大規(guī)模,而且涉及到了出口生意。服裝廠的客戶很多,分布于各地,甚至還有國外。每次有了新款式的服裝時,不是所有的客戶都能很方便的來到服裝廠看貨。所以通知客

2、戶的工作很繁瑣,因為要給每個客戶都發(fā)去新款式的數(shù)碼照片,這是個屢次重復(fù)而且復(fù)雜的工作。另外,客戶通知服裝廠訂貨大局部都是通過現(xiàn)場洽談或者是來確定的,很不方便,而且對于現(xiàn)在的時間就是商機的現(xiàn)狀,這樣的效率是應(yīng)該提高的。所以我設(shè)想開發(fā)這樣的一個。1.2 開發(fā)目標開發(fā)目標有如下7點:能夠在系統(tǒng)上展示產(chǎn)品,包括文字信息和圖片信息。能夠管理客戶的信息。能夠動態(tài)的給建立關(guān)系的客戶賦予幾種不同級別的權(quán)限,不同級別的客戶可以看到不同瀏覽級別的產(chǎn)品。客戶通過Internet瀏覽商品信息,可以在網(wǎng)上下訂單。能夠給產(chǎn)品設(shè)定不同的瀏覽級別。能夠?qū)Ξa(chǎn)品的訂貨次數(shù)進展統(tǒng)計,對服裝廠進展簡單的決策支持。要求系統(tǒng)運行平安穩(wěn)定

3、。1.3 工程意義工程的意義有如下5點:服裝企業(yè)有了自己的,可以將產(chǎn)品信息放在上,供所有瀏覽該的顧客瀏覽,可以起到宣傳和廣告的作用。任何人都可以注冊為的用戶,可以在網(wǎng)上下訂單,這樣可以增加客戶的數(shù)量,擴大銷售渠道,為客戶提供方便。固定客戶被賦予一定的權(quán)限之后統(tǒng)一到上瀏覽新產(chǎn)品的信息和下訂單。這樣可以省去服裝企業(yè)為每個客戶發(fā)送新款產(chǎn)品照片的這一繁瑣工作,提高了工作效率,減少了失誤。一些老款式的服裝信息可以長期保存,比方說*個客戶想要幾年前的*個款式或者是*種面料,開發(fā)了這個后既方便服裝廠又方便了客戶。通過留言板,及時了解顧客對企業(yè)的意見和產(chǎn)品信息的反應(yīng),為及時與顧客溝通信息提供了方便的平臺。使企

4、業(yè)及時地了解顧客的需求,及時地更新產(chǎn)品,更好的為顧客效勞,提高企業(yè)的市場競爭力??傊竟こ淘谔岣叻b廠工作效率的同時,也能起到廣告宣傳的作用,正所謂一舉多得。第2章 開發(fā)工具及運行環(huán)境本課題的開發(fā)工具有Java、MySQL數(shù)據(jù)庫、Hibernate中間件、Tomcat等,運行環(huán)境包括軟件環(huán)境和硬件環(huán)境。2.1 軟件環(huán)境1. Java Java能使軟件在很小的機器上運行,根底解釋和類庫支持的大小約為40KB,增加根本的標準庫和線程支持的存需要增加125KB。它的特性列舉如下:Simple And Familiar簡單熟悉。Distributed分布式。Object-Oriented面向?qū)ο?,O

5、O。強健特性。Secure平安。Architecture-Neutral構(gòu)造中立。Portable可移植性。Multi Threaded多線索、多線程。Somewhat Interpreted局部解釋。High Performance高性能。Dynamic動態(tài)。2. MySQL數(shù)據(jù)庫MySQL默認配置了許多不同的存儲引擎,可以預(yù)先設(shè)置或者在MySQL效勞器中啟用。可以選擇適用于效勞器、數(shù)據(jù)庫和表格的存儲引擎,以便在選擇如何存儲信息、如何檢索這些信息以及需要數(shù)據(jù)結(jié)合什么性能和功能的時候提供最大的靈活性。選擇如何存儲和檢索數(shù)據(jù)的這種靈活性是MySQL為什么如此受歡送的主要原因。其他數(shù)據(jù)庫系統(tǒng)包括大

6、多數(shù)商業(yè)選擇僅支持一種類型的數(shù)據(jù)存儲。遺憾的是,其他類型的數(shù)據(jù)庫解決方案采取的是一個尺碼滿足一切需求的方式,這就意味著要么犧牲一些性能,要么就用幾個小時甚至幾天的時間詳細調(diào)整數(shù)據(jù)庫。使用MySQL,僅需要修改使用的存儲引擎就可以了。MySQL中的數(shù)據(jù)用各種不同的技術(shù)存儲在文件或者存中。這些技術(shù)中的每一種都使用不同的存儲機制、索引技巧、鎖定水平并且最終提供廣泛的不同的功能和能力。通過選擇不同的技術(shù),能夠獲得額外的速度或者功能,從而改善應(yīng)用的整體功能。3. Hibernate中間件對象和關(guān)系數(shù)據(jù)其實是業(yè)務(wù)實體的兩種表現(xiàn)形式。業(yè)務(wù)實體在存中表現(xiàn)為對象,在數(shù)據(jù)庫中表現(xiàn)為關(guān)系數(shù)據(jù)。存中的對象之間存在關(guān)聯(lián)

7、和繼承的關(guān)系,而在數(shù)據(jù)庫中,關(guān)系數(shù)據(jù)無法直接表達多對多的關(guān)聯(lián)和繼承關(guān)系。因此把對象持久化到關(guān)系數(shù)據(jù)庫中,需要進展對象關(guān)系映射Object/Relation Mapping,簡稱ORM,這是一項繁瑣耗時的工作。選擇Hibernate作為中間件的原因如下:它可以對JDBC API進展封裝,負責(zé)Java對象的持久化,在分層的軟件架構(gòu)中它位于持久化層,封裝了所有數(shù)據(jù)的細節(jié),使業(yè)務(wù)邏輯層可以專注于實現(xiàn)業(yè)務(wù)邏輯。它可以方便地使用數(shù)據(jù)庫連接池。而且它是開放源代碼。4. TomcatTomcat是一個免費的開源的Servlet容器,它是Apache基金會的一個核心工程,由Apache、Sun和其他一些公司及個

8、人共同開發(fā)而成。由于有了Sun的參與和支持,最新的Servlet和JSP規(guī)總能在Tomcat中得到表達。Tomcat被JavaWorld雜志的編輯選為2001年度最具創(chuàng)新的Java產(chǎn)品,可見其在業(yè)界的地位。由于Java的跨平臺特性,基于Java的Tomcat也具有跨平臺性。很多中小應(yīng)用不需要采用E等技術(shù),JSP和Servlet已經(jīng)足夠,這時如果用應(yīng)用效勞器就有些浪費了。而Tomcat短小精悍,配置方便,能滿足我們的需求,這種情況下我們自然會選擇Tomcat。Tomcat也可以與其他一些軟件集成起來實現(xiàn)更多的功能?,F(xiàn)舉例如下。與oss集成起來開發(fā)E。與CocoonApache的另外一個工程集成起

9、來開發(fā)基于*ML的應(yīng)用。與OpenJMS集成起來開發(fā)JMS應(yīng)用。除了以上提到的這幾種,可以與Tomcat集成的軟件還有很多。Tomcat確實是一個很好的工具,不僅僅因為其免費,功能強大,更因為其開放性。如今,開源軟件越來越受到人們的重視,Linu*就是一個成功的典型。人們不再只限于使用軟件,而且已經(jīng)關(guān)心起軟件的具體實現(xiàn)。我們有理由相信Tomcat會走得更遠。5. 軟件環(huán)境的安裝與配置以上介紹的軟件安裝都很簡單,其中JDK和MySQL的安裝軟件是可運行程序。只需直接安裝即可。Tomcat、Hibernate的安裝文件是壓縮軟件包,只需把壓縮文件解壓到本地磁盤,安裝好后需在操作系統(tǒng)中設(shè)置環(huán)境變量。

10、2.2 硬件環(huán)境本系統(tǒng)開發(fā)的硬件環(huán)境如下:PentiumR4 CPU 2.80GHz。768 MB的存。操作系統(tǒng)為Windows *P。網(wǎng)絡(luò)連接速度為512KB。在本論文的性能測試局部中,會給出在這種硬件條件下的性能測試結(jié)果,以供服裝廠參考配置效勞器第3章 系統(tǒng)需求分析進展應(yīng)用軟件系統(tǒng)的研發(fā),首先必須準確了解與分析用戶的需求。需求分析是整個設(shè)計過程的根底,它將直接影響應(yīng)用程序的開發(fā)速度與質(zhì)量。3.1 功能需求分析經(jīng)過現(xiàn)場調(diào)研,下面給出用戶對系統(tǒng)的功能需求。1. 用戶管理用戶管理自然是每個必不可少的,在本系統(tǒng)中,要求這局部管理平安可靠,權(quán)限清楚,且其在前臺和后臺的表現(xiàn)不同,下面將分別進展介紹。1

11、前臺表現(xiàn)用戶注冊,此時要保證系統(tǒng)不受注冊機的攻擊,要采用驗證碼技術(shù)。要確保權(quán)限為普通用戶。要有密碼保護措施,保證用戶設(shè)定之后可以找回遺忘的密碼。2后臺表現(xiàn)系統(tǒng)管理員可以添加用戶。系統(tǒng)管理員可以動態(tài)的給用戶賦予權(quán)限,保證系統(tǒng)信息不外泄。系統(tǒng)管理員可以修改和刪除用戶信息。系統(tǒng)管理員可以給用戶建立備注信息,其僅對具有權(quán)限的用戶可見。2. 類別管理1前臺表現(xiàn)類別首先分為男裝、女裝、童裝三個大的固定類別。在每個大的類別之下,可以動態(tài)的添加或者刪除小類別。例如:短裙、長裙均屬于女裝,女裝為固定類別,而短裙、長裙則為小類別。產(chǎn)品按照類別來展示,用戶通過不同的類別進入不同的產(chǎn)品區(qū)。2后臺表現(xiàn)系統(tǒng)管理員可以動態(tài)

12、的添加或者刪除小類別。類別必須先于產(chǎn)品存在,換言之,每件產(chǎn)品必須屬于一個類別。3. 品牌管理品牌可以為企業(yè)起到廣告宣傳的作用。1前臺表現(xiàn)前臺表現(xiàn)為展示品牌文化,對該類品牌進展詳盡介紹,可以起到宣傳的作用。2后臺表現(xiàn)系統(tǒng)管理員可以動態(tài)添加和刪除品牌。品牌必須先于產(chǎn)品存在,換言之,每件產(chǎn)品必須屬于一個品牌。4. 產(chǎn)品管理產(chǎn)品管理是本系統(tǒng)的根本,平安可靠和按照權(quán)限展示是這局部的要求,要操作方便、展示美觀。1前臺表現(xiàn)產(chǎn)品展示中可以通過大類別小類別分級展示產(chǎn)品。要根據(jù)前臺的用戶級別不同而展示相應(yīng)級別的產(chǎn)品,以防廠家的商業(yè)秘密外泄。產(chǎn)品圖片要保證不失真。2后臺表現(xiàn)系統(tǒng)管理員可以動態(tài)添加、修改和刪除產(chǎn)品。必

13、須為產(chǎn)品指定產(chǎn)品小類別。必須為產(chǎn)品指定產(chǎn)品品牌。產(chǎn)品信息要包含一幅或者多幅圖片,圖片的格式為JPG格式,文件小于200K。上傳速度要快。對產(chǎn)品的訂貨次數(shù)進展統(tǒng)計,以便于對服裝廠進展簡單的決策支持。系統(tǒng)管理員可以動態(tài)調(diào)整產(chǎn)品的瀏覽級別。5. 網(wǎng)上訂單管理網(wǎng)上訂單能夠帶來的方便和快捷是服裝廠所期待的。1前臺表現(xiàn)用戶可以看到自己所有訂單的歷史記錄,以便用戶自己做一些統(tǒng)計或者備忘。和服裝廠建立業(yè)務(wù)往來的用戶,可以在網(wǎng)上下訂單,訂單信息包括產(chǎn)品型號和數(shù)量,且這兩項數(shù)據(jù)要求進展校驗。2后臺表現(xiàn)系統(tǒng)管理員可在后臺查看所有和服裝廠建立業(yè)務(wù)關(guān)系的用戶訂單,從而決定是留下或者是刪除。假設(shè)無特殊情況,要保證所有業(yè)務(wù)

14、的用戶訂單都能夠長久保存,這些歷史數(shù)據(jù)可以為服裝廠做統(tǒng)計或者做賬目提供依據(jù)。6. 新聞管理發(fā)布新聞或者公告雖然不是本系統(tǒng)的重要局部,卻是不能少的局部,倘假設(shè)這一局部利用好,帶來的商機也是不容小視的。1前臺表現(xiàn)前臺的表現(xiàn)是展示新聞,用戶可以查閱。2后臺表現(xiàn)后臺的表現(xiàn)是系統(tǒng)管理員可以動態(tài)添加和刪除新聞。7. 留言管理現(xiàn)在的企業(yè)都要有溝通的平臺。大規(guī)模的一般為論壇,中小規(guī)模的一般是留言板。在本系統(tǒng)中,留言板是服裝廠和用戶之間溝通的橋梁,也是用戶之間溝通的媒介。1前臺表現(xiàn)分頁顯示留言。用戶、服裝廠自身可以發(fā)表留言。2后臺表現(xiàn)后臺的表現(xiàn)為系統(tǒng)管理員可以查看所有留言,并且可以對留言進展審核,也可以刪除留言

15、。3.2 用例圖分析用例圖是對包括變量在的一組動作序列的描述,系統(tǒng)執(zhí)行這些動作并產(chǎn)生傳遞特定參與者的價值的可觀察結(jié)果。用例圖主要的作用有以下三個。獲取需求。指導(dǎo)測試。對其他工作流起到指導(dǎo)作用。1. 產(chǎn)品管理用例圖產(chǎn)品管理用例圖如圖3.1所示。用戶服裝廠瀏覽產(chǎn)品刪除產(chǎn)品修改產(chǎn)品發(fā)布產(chǎn)品圖3.1 產(chǎn)品管理用例圖提示:服裝廠發(fā)布產(chǎn)品信息,包括添加、修改、刪除等根本操作。用戶在產(chǎn)品展示模塊中可查看產(chǎn)品信息服裝廠發(fā)布產(chǎn)品信息,包括添加、修改、刪除等根本操作。用戶在產(chǎn)品展示模塊中可查看產(chǎn)品信息。2. 用戶管理用例圖用戶管理用例圖如圖3.2所示。圖3.2 用戶管理用例圖提示:系統(tǒng)管理員可以添加用戶、修改用戶

16、、刪除用戶、管理前臺注冊用戶信息、動態(tài)為前臺注冊的用戶賦予不同的權(quán)限。瀏覽者可以注冊。3. 訂單管理用例訂單管理用例圖如圖3.3所示。圖3.3 訂單管理用例圖管理員在后臺查看所有和服裝廠建立業(yè)務(wù)關(guān)系的用戶訂單,決定是留下或者刪除訂單。和服裝廠建立業(yè)務(wù)往來的用戶,可以在網(wǎng)上下訂單,也可以看到自己所有訂單的歷史記錄。3.3 性能需求分析性能需求有以下3個方面:平安可靠,權(quán)限機制完善,防止信息外泄??梢苑乐棺詸C的攻擊,要求采用驗證碼技術(shù)??蓾M足1000個用戶同時在線。第4章 系統(tǒng)總體設(shè)計在對開發(fā)系統(tǒng)進展全面分析調(diào)查的根底上,制定出應(yīng)用軟件的總體設(shè)計規(guī)劃,對建立一個大型的信息系統(tǒng)來說是必須的,也是全

17、面展開開發(fā)工作的重要根底。系統(tǒng)總體設(shè)計包括:系統(tǒng)功能模塊圖設(shè)計、數(shù)據(jù)庫設(shè)計、系統(tǒng)類圖設(shè)計、軟件體系構(gòu)造設(shè)計等。4.1 系統(tǒng)功能模塊圖設(shè)計系統(tǒng)功能模塊圖如圖4.1所示。圖4.1 系統(tǒng)功能模塊圖4.2 數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫的設(shè)計是按照以下分析進展的。瀏覽級別:產(chǎn)品的屬性,用來設(shè)定產(chǎn)品提供應(yīng)何種級別的用戶瀏覽,分為所有瀏覽者、普通用戶、系統(tǒng)用戶、普通業(yè)務(wù)用戶、高級業(yè)務(wù)用戶5類。產(chǎn)品大類別:分為男裝、女裝、童裝3類。產(chǎn)品小類別:分屬于產(chǎn)品大類別,將產(chǎn)品大類別進一步分類。產(chǎn)品品牌:產(chǎn)品所屬的品牌。留言板:分為中文版、英文版兩類。用戶級別:分為普通用戶、系統(tǒng)用戶、普通業(yè)務(wù)用戶、高級業(yè)務(wù)用戶4類。1. clot

18、hes表clothes如表4.1所示。表4.1 clothes表字段名SQL類型說明IDLong主鍵,對象標識符CLOTHIDString產(chǎn)品編號,由用戶指定NAMEString產(chǎn)品名稱,由用戶指定TYPEChar產(chǎn)品的瀏覽級別BIGTYPEChar產(chǎn)品所屬的大類別DESCRIPTIONString產(chǎn)品的詳細信息DESCRIPTIONENGLISHString產(chǎn)品的英文詳細信息KIND_IDLong產(chǎn)品所屬的小類別TRADEMARK_IDLong產(chǎn)品所屬的品牌REGISTERED_TIMETimestamp入庫時間2. clothesorders表clothesorders如表4.2所示。表4

19、.2 clothesorders表字段名SQL類型說明IDLong主鍵,對象標識符CLOTH_IDLong產(chǎn)品的IDORDER_IDLong訂單的IDNUMBERInt訂貨數(shù)量3. kinds表kinds如表4.3所示。表4.3 kinds表字段名SQL類型說明IDLong主鍵,對象標識符NAMEString類別名稱NAMEENGLISHString類別英文名稱TYPEChar類別所屬產(chǎn)品大類4. messages表messages如表4.4所示。表4.4 messages表字段名SQL類型說明IDLong主鍵,對象標識符TITLEString留言標題DESCRIPTIONString留言容T

20、YPEChar留言板塊USER_IDLong留言者REGISTERED_TIMETimestamp留言時間5. news表news如表4.5所示。表4.5 news表字段名SQL類型說明IDLong主鍵,對象標識符TITLEString新聞標題TITLEENGLISHString新聞英文標題DESCRIPTIONString新聞容DESCRIPTIONENGLISHString新聞英文容REGISTERED_TIMETimestamp新聞發(fā)布時間6. orders表orders如表4.6所示。表4.6 orders表字段名SQL類型說明IDLong主鍵,對象標識符USER_IDLong下訂單用

21、戶REGISTERED_TIMETimestamp下訂單時間7. pictures表pictures如表4.7所示。表4.7 pictures表字段名SQL類型說明IDLong主鍵,對象標識符PATHString圖片存儲路徑CLOTH_IDLong圖片所屬的產(chǎn)品ID8. trademarks表trademarks如表4.8所示。表4.8 trademarks表字段名SQL類型說明IDLong主鍵,對象標識符NAMEString品牌名稱NAMEENGLISHString品牌英文名稱DESCRIPTIONString品牌詳細介紹DESCRIPTIONENGLISHString品牌英文詳細介紹PIC

22、TUREPATHString品牌商標圖片的存儲路徑9. users表users如表4.9所示。表4.9 users表字段名SQL類型說明IDLong主鍵,對象標識符NAMEString用戶名PASSWORDString密碼EMAILString電子TELEPHONEStringADDRESSString地址TYPEChar用戶級別REGISTERED_TIMETimestamp注冊時間DESCRIPTIONTe*t備注信息QUESTIONString密碼提示問題ANSWERString密碼提示問題答案4.3 系統(tǒng)類圖設(shè)計根據(jù)分析,本系統(tǒng)有以下8個類:產(chǎn)品類Clothes、類別類Kinds、留言

23、類Messages、新聞類News、訂單類Orders、圖片類Pictures、品牌類TradeMarks、用戶類Users,系統(tǒng)類圖如圖4.2所示。圖4.2 系統(tǒng)類圖4.4 軟件體系構(gòu)造設(shè)計本系統(tǒng)軟件層的構(gòu)造可分為以下4層。表示層:提供與用戶交互的界面。業(yè)務(wù)邏輯層:實現(xiàn)各種業(yè)務(wù)邏輯。持久化層Hibernate:封裝了數(shù)據(jù)的細節(jié),為業(yè)務(wù)邏輯層提供了面向?qū)ο蟮腁PI。數(shù)據(jù)庫層:負責(zé)存放和管理應(yīng)用的持久性業(yè)務(wù)數(shù)據(jù)。軟件體系構(gòu)造如圖4.3所示。表示層圖4.3 軟件體系構(gòu)造圖第5章 系統(tǒng)詳細設(shè)計詳細設(shè)計的工作包括輸入輸出設(shè)計和界面設(shè)計,即根據(jù)總體設(shè)計的每個功能模塊要求和數(shù)據(jù)庫的邏輯構(gòu)造,利用相應(yīng)的開發(fā)

24、工具設(shè)計出應(yīng)用系統(tǒng)的過程。5.1 輸入輸出設(shè)計輸入輸出是系統(tǒng)與用戶的主要交互界面,其設(shè)計的好壞直接影響系統(tǒng)的性能,這里力求到達界面友好、信息直觀和操作方便。1. 后臺管理用戶管理添加用戶圖5.1所示為添加用戶的界面,包括全部用戶信息。其用戶級別為一下拉列表,用戶分為兩類,即系統(tǒng)用戶和普通用戶,可由用戶選擇;其他欄目由用戶輸入。圖5.1 添加用戶界面2. 后臺管理類別/品牌添加類別圖5.2所示為后臺管理的添加類別界面。類別的中文名和英文名由用戶輸入,例如:牛仔服、針織、西裝、裙裝等;類別所屬大類以下拉列表的形式供用戶選擇,包括女裝、男裝、童裝等。3. 后臺管理類別/品牌添加品牌圖5.3所示為后臺

25、管理的添加品牌界面,可通過該界面為經(jīng)營的服裝品牌添加信息。圖5.2 添加類別界面 圖5.3 添加品牌界面4. 后臺管理產(chǎn)品管理添加產(chǎn)品圖5.4所示為后臺管理的添加產(chǎn)品界面,可通過該界面為服裝的產(chǎn)品添加信息。查看級別規(guī)定了能查看該產(chǎn)品的用戶;產(chǎn)品類別包括產(chǎn)品所屬的大類和小類,小類在前,大類在后。圖5.4 添加產(chǎn)品界面5. 前臺展示用戶注冊圖5.5所示為用戶的注冊界面,用戶通過該界面輸入個人信息。圖5.5 用戶注冊界面6. 前臺展示生成訂單圖5.6所示為前臺用戶的生成訂單界面。當(dāng)用戶選擇了產(chǎn)品且輸入了數(shù)量后,單擊添加該產(chǎn)品按鈕即可生成一訂單條目,用戶確認訂單條目后,單擊提交該訂單信息按鈕即可提交訂

26、單。單擊去除該訂單信息按鈕將去除訂單信息。圖5.6 生成訂單界面5.2 界面設(shè)計界面是軟件的門面,應(yīng)到達美觀、舒適、操作方便、信息準確全面、構(gòu)造合理等標準。1. 后臺管理界面后臺管理界面采用傳統(tǒng)的菜單管理框架,如圖5.7所示。圖5.7 后臺管理界面2. 前臺系統(tǒng)首頁用戶一翻開該,就應(yīng)通過登錄首頁對該的功能一目了然,的背景采用精巧的時裝造型吸引顧客的注意力。用戶可以根據(jù)男裝、女裝、童裝等不同的類別瀏覽該企業(yè)的產(chǎn)品信息,也可以通過品牌的分類來瀏覽企業(yè)的產(chǎn)品信息。聯(lián)系我們提供了該企業(yè)的相關(guān)信息,留言板使用戶可以方便的留下意見和建議。前臺系統(tǒng)首頁如圖5.8所示。圖5.8 前臺系統(tǒng)首頁3. 前臺主要展示

27、界面產(chǎn)品展示界面為用戶瀏覽商品信息的主要界面。按不同的分類瀏覽女裝、男裝、童裝、品牌,不同的分類其商品信息也不同,但功能風(fēng)格一樣,在這里只給出女裝的展示界面。每種產(chǎn)品都以小圖片和簡介的形式展示,單擊查看詳情按鈕可以查看商品的詳細信息和放大圖片,以直觀的形式介紹產(chǎn)品。另外在該界面中,用戶可以直接注冊和登錄,還有企業(yè)的常用聯(lián)系方式、商品的類別,從而為用戶的操作提供了方便。產(chǎn)品展示界面如圖5.9所示。圖5.9 產(chǎn)品展示界面第6章 系統(tǒng)代碼設(shè)計6.1 軟件的體系構(gòu)造本系統(tǒng)軟件層構(gòu)造分為4層:即表示層、業(yè)務(wù)邏輯層、持久化層和數(shù)據(jù)庫層。各層實現(xiàn)的具體方法如下。1. 表示層表示層提供與用戶交互的界面,用We

28、b頁面實現(xiàn)。2. 業(yè)務(wù)邏輯層業(yè)務(wù)邏輯層實現(xiàn)各種業(yè)務(wù)邏輯。這一層在系統(tǒng)中的表達是分為兩個方面的: 封裝并且分層的純Java應(yīng)用程序,為提供API,相當(dāng)于做成組件的形式。 在Web頁面中實現(xiàn)各種業(yè)務(wù),在這里調(diào)用中提供的各種接口。其中,在里提到的純Java應(yīng)用程序又分為兩類:即持久化類和業(yè)務(wù)邏輯類,下面將分別進展介紹。1持久化類Hibernate提供了從映射文件到Java源代碼的轉(zhuǎn)換工具,名為hbm2java工具。執(zhí)行該任務(wù)的Java類為net.sf.hibernate.tool.hbm2java.CodeGenerator,可以用ANT工具來運行它,在build.*ml文件中定義codegen t

29、arget,代碼如下:運行codegen target,只需要在DOS命令下進入clothes根目錄,然后輸入如下命令:ant codegen以上命令會自動創(chuàng)立*.java和*Finder.java文件,如Clothes.java、ClothesFinder.java等,如圖6.1所示。圖6.1 創(chuàng)立文件2業(yè)務(wù)邏輯類業(yè)務(wù)邏輯類相當(dāng)于實現(xiàn)業(yè)務(wù)。它提供接口,以供調(diào)用,業(yè)務(wù)邏輯類分為兩層。FatherService.java是父類。ClothesService.java、ClothesOrdersService.java、KindsService.java、MessagesService.java、

30、NewsService.java、OrdersService.java、PicturesService.java、TradeMarksService.java、UsersService.java是其子類。下面為FatherService.java的源代碼:package mypack;import java*.servlet.*;import net.sf.hibernate.*;import net.sf.hibernate.cfg.Configuration;import java.io.*;import java.sql.Date;import java.sql.Timestamp;im

31、port java.util.*;public class FatherServicepublic static SessionFactory sessionFactory;staticTryConfiguration config=new Configuration();config.addClass(Users.class);config.addClass(Clothes.class);config.addClass(ClothesOrders.class);config.addClass(News.class);config.addClass(Orders.class);config.a

32、ddClass(Pictures.class);config.addClass(TradeMarks.class);config.addClass(Messages.class);config.addClass(Kinds.class);config.addClass(Caipiao.class);sessionFactory=config.buildSessionFactory();catch(E*ception e)e.printStackTrace();提示:一個SessionFactory實例對應(yīng)一個數(shù)據(jù)存儲源,應(yīng)用從SessionFactory中獲得session實例。它是線程平安的

33、,同一個實例可被多個線程共享,它是重量級的,意味著不能隨便創(chuàng)立和銷毀SessionFactory實例。3. 持久化層Hibernate封裝了數(shù)據(jù)的細節(jié),為業(yè)務(wù)邏輯層提供了面向?qū)ο蟮腁PI。本系統(tǒng)應(yīng)用的是Hibernate,如圖6.2所示。注意:此處只示意一個實體類對應(yīng)一個表的情況,其他情況依此類推。圖6.2 應(yīng)用Hibernate4. 數(shù)據(jù)庫層數(shù)據(jù)庫層負責(zé)存放和管理應(yīng)用的持久性業(yè)務(wù)數(shù)據(jù)。Hibernate提供了從映射文件到數(shù)據(jù)E*portTask。在本系統(tǒng)中是應(yīng)用ANT工具來運行它的,首先在build.*ml中定義schema target,代碼如下: 運行schema target 的步驟如

34、下。步驟1:啟動MySQL效勞器。步驟2:通過mysql.e*e客戶程序創(chuàng)立SAMPLEDB數(shù)據(jù)庫,SQL命令為:Create database SAMPLEDB;步驟3:在DOS命令下進入clothes根目錄,然后輸入如下命令:ant schema6.2 關(guān)鍵問題代碼設(shè)計1驗證碼技術(shù)為防止用戶利用機器自動注冊、登錄以及灌水,故而采用了驗證碼技術(shù)。所謂驗證碼,就是將一串隨機產(chǎn)生的數(shù)字或符號生成一幅圖片,圖片里加上一些干擾元素防止OCR,由用戶肉眼識別其中的驗證碼信息并輸入表單,再提交給驗證,驗證成功后才能使用*項功能。驗證碼的實現(xiàn)流程是:效勞器端隨機生成驗證碼字符串,保存在存中,并寫入圖片,發(fā)

35、送給瀏覽器端顯示。瀏覽器端輸入驗證碼圖片上的字符,然后提交效勞器端,提交的字符與效勞器端保存的字符進展比擬,假設(shè)一致就繼續(xù),不一致則返回提示。攻擊者編寫的robot程序很難識別驗證碼字符,所以不能順利的完成自動注冊、登錄以及其他操作。用戶可以識別填寫,這就實現(xiàn)了阻擋攻擊的作用。圖片的字符識別就是看圖片上的干擾強度了。就實際的效果來說,驗證碼只是增加攻擊者的難度,而不可能完全的防止。6.3 關(guān)鍵問題代碼設(shè)計2圖片等比例縮放這個技術(shù)在網(wǎng)絡(luò)上早就已經(jīng)不是秘密了,而且采用千篇一律的代碼,之所以會把這段程序放在這里,是因為在后期測試的時候發(fā)現(xiàn)原來展示的圖片都變了形,于是要想方法保證圖片不能失真,我通過查

36、找資料解決了這個問題,代碼如下:var flag=false;function DrawImage(ImgD,iwidth,iheight) /參數(shù)圖片、允許的寬度、允許的高度var image=new Image(); /創(chuàng)立一個圖片對象image.src=ImgD.src; /圖片對象的原路徑被設(shè)定為參數(shù)的原路徑if(image.width0 & image.height0)flag=true;if(image.width/image.height=iwidth/iheight)if(image.widthiwidth) ImgD.width=iwidth;ImgD.height=(ima

37、ge.height*iwidth)/image.width;elseImgD.width=image.width; ImgD.height=image.height;ImgD.alt=image.width+image.height;elseif(image.heightiheight) ImgD.height=iheight;ImgD.width=(image.width*iheight)/image.height; elseImgD.width=image.width; ImgD.height=image.height;ImgD.alt=image.width+image.height;

38、6.4 關(guān)鍵問題代碼設(shè)計3數(shù)據(jù)庫連接池Hibernate提供了默認的連接池實現(xiàn),它的實現(xiàn)類為DriverManagerConnectionProvider,如果在Hibernate的配置文件中沒有明確配置任何連接池,則Hibernate就會使用這個默認的連接池。如下代碼為Hibernate的配置文件。本系統(tǒng)在現(xiàn)階段只使用這個連接池。hibernate.connection.url=jdbc:mysql:/localhost:3306/sampledbhibernate.connection.username=roothibernate.connection.password=1234hiber

39、nate.show_sql=true6.5 關(guān)鍵問題代碼設(shè)計4圖片文件上傳文件上傳在JSP教程上都有現(xiàn)成的代碼,但是源代碼缺乏之處在于要生成臨時文件,這樣要寫磁盤,速度會很慢,而下面的代碼是直接讀取輸入流,沒有生成臨時文件,故而上傳速度有顯著的提高。try if(request.getContentLength()(1024*1024) % alert(上傳的圖片太大了!請更換!); 0 )session.setAttribute(iuploadspeed,String.valueOf(itotal-ipretotal)/1024.0)*1000.0/(System.currentTimeMi

40、llis()-stime);stime=System.currentTimeMillis();ipretotal=itotal;s=new String(b,0,a); if( istep =0 )if ( s.length()=0 ) random2.close();/random3.close();sis.close();response.sendRedirect(./error/error.jsperrorS=3); /無上傳視頻文件錯誤頁面if( s.equals(split)a=sis.readLine(b,0,b.length);itotal=itotal+a;a=sis.read

41、Line(b,0,b.length);itotal=itotal+a;istep+;elserandom2.write( b, 0, a ); random2.close();/random3.close();sis.close();String path=picture/+fileName;if(fileName=null)&(fileName.length()=0)f2.delete();out.print(出錯了!);picture.setPath(path);picture.setClothes(cloth);ps.savePicture(picture);%alert(上傳圖片成功!

42、點擊確定返回!);window.location=update.jspid=;%catch(E*ception e)第7章 系 統(tǒng) 測 試7.1 軟件測試常識軟件測試應(yīng)該跨越整個軟件開發(fā)流程。需求驗證自檢和設(shè)計驗證自檢也可以算作軟件測試建議稱為需求測試和設(shè)計測試的一種。軟件測試應(yīng)該是一個泛型概念,涵蓋整個軟件生命周期,這樣才能確保周期的每個階段都禁得起考驗。同時測試本身也需要有第三者進展評估信息系統(tǒng)審計和軟件工程監(jiān)理,即測試本身也應(yīng)當(dāng)被測試,從而確保測試自身的可靠性和高效性。否則自身不正,難以服人。軟件開發(fā)和使用的歷史已經(jīng)留給了我們很多由于軟件缺陷而導(dǎo)致巨大財力、物力損失的經(jīng)歷教訓(xùn)。這些經(jīng)歷教

43、訓(xùn)迫使我們必須采取強有力的檢測措施來檢測未發(fā)現(xiàn)的隱藏軟件缺陷。生產(chǎn)軟件的最終目的是為了滿足客戶需求,我們以客戶需求作為評判軟件質(zhì)量的標準,認為軟件缺陷Software Bug的具體含義包括下面幾個因素: 軟件未到達客戶需求的功能和性能。軟件超出客戶需求的圍。軟件出現(xiàn)客戶需求不能容忍的錯誤。軟件的使用未能符合客戶的習(xí)慣和工作環(huán)境??紤]到設(shè)計等方面的因素,我們還可以認為軟件缺陷包括軟件設(shè)計不符合規(guī)、未能在特定的條件資金、圍等到達最正確等??上У氖?,很多人更傾向于把軟件缺陷看成運行時出現(xiàn)的問題,認為軟件測試僅限于程序提交之后。在目前的國環(huán)境下,幾乎看不到完整準確的客戶需求說明書,再加上客戶的需求時時

44、在變,追求完美的測試變得不太可能。但是明確軟件測試現(xiàn)實與理想的差距,在軟件測試中學(xué)會取舍和讓步,對軟件測試是有百益而無一弊的。7.2 系統(tǒng)功能測試方案軟件測試并不單純等同于程序測試。軟件測試應(yīng)該貫穿整個軟件定義與整個開發(fā)周期。因此需求分析、概要設(shè)計、詳細設(shè)計以及程序編碼等各階段所得到的文檔,包括需求規(guī)格說明、概要設(shè)計規(guī)格說明、詳細設(shè)計規(guī)格說明以及源程序,都應(yīng)該是軟件測試評審的對象。在對需求理解與表達的正確性、設(shè)計與表達的正確性、實現(xiàn)的正確性以及運行的正確性的驗證中,任何一個環(huán)節(jié)發(fā)生了問題都可能在軟件測試中表現(xiàn)出來。在這局部中,我個人確保每個階段功能的實現(xiàn),在系統(tǒng)完成后,每個分支都走過一遍,也有

45、發(fā)現(xiàn)的問題,但都通過查閱資料將其解決了。7.3 性能測試測量Web效勞器的性能是一項讓人感到畏縮的任務(wù),它不像一些簡單的任務(wù),如測量CPU的速率或者是測量程序占用CPU的比例,Web效勞器的性能優(yōu)化中包括調(diào)整許多變量來到達目標。許多的測量策略中都包含了一個看似簡單的瀏覽,實際上是在向效勞器發(fā)送大量的請求,這稱之為客戶端的程序,它用來測量響應(yīng)時間。常見的問題有如下幾個:客戶端和效勞器端是在同一臺機器上嗎.效勞器在測試的時候還運行著其他的程序嗎.客戶端和效勞器端的通信是通過局域網(wǎng)100baseT、10baseT還是使用調(diào)制解調(diào)器.客戶端是否一直重復(fù)請求一樣的頁面,還是隨機地不同的頁面.客戶端發(fā)送請

46、有規(guī)律的還是突發(fā)的.是在最終的配置環(huán)境下運行效勞的.還是在調(diào)試的配置環(huán)境下運行效勞的.客戶端的請求中包含圖片還是只有HTML頁面.所有這些都是要關(guān)心的問題,并且?guī)缀醪豢赡軠蚀_地把所有的問題都列出來。一般衡量Web性能的重要指標有以下幾個:HTTP每秒交易數(shù)Transaction Per Second。每秒會話數(shù)Sessions Per Second:每秒到達Web效勞器的用戶。并發(fā)用戶數(shù)Concurrent Users:特定時間在Web站點上的用戶數(shù)。吞吐量Throughput:在特定時間由Web站點發(fā)出的數(shù)據(jù)流量帶寬,它與效勞器提供效勞的容和交易數(shù)相關(guān)?;谝陨系囊?,最適宜的測試方法無非是

47、通過一定的量來實現(xiàn),但是這樣的工作談何容易,這種思路的測試就是壓力測試。俗話說:工欲善其事,必先利其器,壓力測試只有借助于一些工具才可得以實施。大多數(shù)Web壓力測試工具的實現(xiàn)原理都是通過重復(fù)的大量頁面請求來模擬多用戶對被測系統(tǒng)的并發(fā),以此到達產(chǎn)生壓力的目的。產(chǎn)生壓力的手段都是通過錄制或者是編寫壓力腳本,這些腳本以多個進程或者線程的形式在客戶端運行,這樣通過人為制造各種類型的壓力,可以觀察被測系統(tǒng)在各種壓力狀況下的表現(xiàn),從而定位系統(tǒng)瓶頸,作為系統(tǒng)調(diào)優(yōu)的根底。目前已經(jīng)存在的性能測試工具林林總總,數(shù)量不下一百種,從單一的開放源碼的免費小工具,如Apache自帶的Web性能測試工具Apache Ben

48、chmark、開源的JMeter到大而全的商業(yè)性能測試軟件,如Mercury的LoadRunner、Siege等。Apache JMeter是一個專門為運行和效勞器裝載測試而設(shè)計的100的純Java桌面運行程序。最早它是為Web/HTTP測試而設(shè)計的,但是現(xiàn)在它已經(jīng)擴展,從而支持各種各樣的測試模塊。它和用于HTTP和SQL數(shù)據(jù)庫使用JDBC的模塊一起運送。它的功能舉例如下:用來測試靜止資料庫或者活動資料庫中的效勞器的運行情況。用來模擬對效勞器或者網(wǎng)絡(luò)系統(tǒng)加以重負荷,以測試它的抵抗力。用來分析不同負荷類型下的所有運行情況。它還提供了一個可替換的界面用來定制數(shù)據(jù)顯示,測試同步及測試的創(chuàng)立和執(zhí)行。用

49、于測試靜態(tài)或者動態(tài)資源的性能如文件、Servlets、Perl腳本、Java對象、數(shù)據(jù)庫和查詢、ftp效勞器或者其他的資源。用于模擬在效勞器、網(wǎng)絡(luò)或者其他對象上的附加高負載以測試它們提供效勞的受壓能力。總之,你可以用JMeter提供的圖形化界面分析性能指標或者在高負載情況下測試效勞器、腳本、對象的行為。下面是我模擬的幾組測試數(shù)據(jù),測試頁面:前臺產(chǎn)品展示女裝,假定該頁的量為10次/秒,測試報告如表7.1所示。表7.1 測試報告1模擬用戶數(shù)次數(shù)樣本數(shù)目平均響應(yīng)時間并發(fā)Bytes111297否1340912020335否1340915050311否134091100100326否1340911000

50、1000328否134095151484否134095151443是13409201204375否13409201206094是13409100110021330否13409測試頁面:前臺產(chǎn)品展示女裝,假定該頁的量為1次/秒,測試報告如表7.2所示。表7.2 測試報告2模擬用戶數(shù)次數(shù)樣本數(shù)目平均響應(yīng)時間并發(fā)Bytes111297否1340912020297否1340915050312否134091100100295否13409110001000313134095151453是1340920120235否13409201205737是134091001100260否13

51、409100011000320否13409通過測試,可得以下結(jié)論:現(xiàn)在我們把所有的信息都歸結(jié)到平均響應(yīng)時間的需求上來,根據(jù)上面測試得到的數(shù)據(jù),發(fā)現(xiàn)幾個非常大的響應(yīng)時間都是并發(fā)情況下得到的,在并發(fā)情況下JMeter將會在測試的開場就建立全部線程并立即發(fā)送請求,這樣一來就很容易使效勞器飽和,更重要的是會隱性地增加了負載,效勞器將可能過載,不是因為平均率高而是因為所有線程的第一次并發(fā)而引起的不正常的初始峰值,可以通過JMeter的聚合報告監(jiān)聽器看到這種現(xiàn)象。這種異常,雖然不是我們測試所需要的,但是這提示了我們一個問題,可能會面對這樣的效勞器攻擊。平均響應(yīng)時間會隨著每秒次數(shù)的增大而增大,所以能夠模擬到

52、的平均點擊率,對于這個壓力測試是很有幫助的。在1次/秒的量下,平均響應(yīng)時間大約在260ms。第8章 系統(tǒng)運行與維護本節(jié)將從系統(tǒng)應(yīng)用的目錄構(gòu)造、系統(tǒng)安裝及使用說明、數(shù)據(jù)備份3個方面進展介紹。8.1 系統(tǒng)應(yīng)用的目錄構(gòu)造系統(tǒng)應(yīng)用目錄的構(gòu)造如圖8.1所示。圖8.1 系統(tǒng)應(yīng)用目錄構(gòu)造圖通過上圖可以看出以下幾點:clothes:為本系統(tǒng)的根目錄,它包含的目錄有clothShow、picture、軟件工具、manageBack、src、Web-INF、schema、lib、build.*ml、web.*ml等。clothShow:前臺JSP頁面的根目錄。picture:存放產(chǎn)品的圖片。軟件工具:存放該系統(tǒng)軟件所用到的軟件工具。manageBack:存放該系統(tǒng)后臺JSP頁面的根目錄。src:為了應(yīng)用Hibernate設(shè)定的目錄,其中的mypack存放對象關(guān)系的映射文件。WEB-INF:為該系統(tǒng)作為一個獨立的Web發(fā)布系統(tǒng)而設(shè)定的目錄。schema:存放數(shù)據(jù)庫方案。lib:存放所有需要用到的jar文件。8.

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論