

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 目 錄</b></p><p><b> 摘要III</b></p><p> AbstractIV</p><p><b> 引 言V</b></p><p><b> 1 項(xiàng)目概述6</b><
2、/p><p> 1.1 現(xiàn)系統(tǒng)概述6</p><p> 1.2公司組織機(jī)構(gòu)6</p><p> 1.3 系統(tǒng)業(yè)務(wù)流程7</p><p> 1.4 系統(tǒng)功能模塊7</p><p> 2 系統(tǒng)需求分析9</p><p> 2.1 需求陳述9</p><p>
3、; 2.2 Use Case建模10</p><p> 2.2.1定義活動(dòng)者10</p><p> 2.2.2 Use Case圖10</p><p> 3 系統(tǒng)架構(gòu)設(shè)計(jì)11</p><p> 3.1架構(gòu)設(shè)計(jì)目標(biāo)11</p><p> 3.2 系統(tǒng)架構(gòu)設(shè)計(jì)11</p><p&
4、gt; 3.3 系統(tǒng)架構(gòu)類圖16</p><p> 4 系統(tǒng)詳細(xì)設(shè)計(jì)17</p><p> 4.1 系統(tǒng)模塊設(shè)計(jì)17</p><p> 4.1.1 登陸17</p><p> 4.1.2 產(chǎn)品信息管理17</p><p> 4.2 數(shù)據(jù)庫(kù)設(shè)計(jì)19</p><p> 4.
5、2.1 ER圖19</p><p> 4.3.2 物理表結(jié)構(gòu)圖19</p><p> 4.4 開發(fā)環(huán)境的選擇20</p><p> 4.4.1系統(tǒng)開發(fā)工具20</p><p> 4.4.2數(shù)據(jù)庫(kù)的選擇21</p><p> 4.4.3 系統(tǒng)網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)21</p><p>
6、<b> 5 編碼23</b></p><p> 5.1 概述開發(fā)工具及編程腳本23</p><p> 5.1.1 JSP技術(shù)23</p><p> 5.1.2 JavaBean技術(shù)23</p><p> 5.1.3 JDBC技術(shù)24</p><p> 5.1.4 用JDBC
7、訪問數(shù)據(jù)庫(kù)25</p><p> 5.2 腳本習(xí)慣說明27</p><p> 6 系統(tǒng)調(diào)試與測(cè)試29</p><p> 6.1 程序調(diào)試29</p><p> 6.2 程序的測(cè)試29</p><p> 6.2.1 測(cè)試的重要性及目的29</p><p> 6.2.2 測(cè)試
8、的步驟30</p><p> 6.2.3 測(cè)試的主要內(nèi)容31</p><p><b> 結(jié)束語32</b></p><p><b> 致謝33</b></p><p><b> 參考文獻(xiàn)34</b></p><p><b>
9、 附錄A 譯文35</b></p><p><b> 附錄B 原文36</b></p><p> 附錄C 程序清單37</p><p><b> 附錄D 其他38</b></p><p><b> 摘要</b></p><p>
10、; 課題目標(biāo)是設(shè)計(jì)并實(shí)現(xiàn)一個(gè)B/S體系結(jié)構(gòu)的企業(yè)客戶服務(wù)與產(chǎn)品管理系統(tǒng)。結(jié)合實(shí)踐,理解網(wǎng)頁(yè)開發(fā)技術(shù)和數(shù)據(jù)庫(kù)的基本知識(shí),學(xué)習(xí)相關(guān)開發(fā)工具和應(yīng)用軟件,熟悉系統(tǒng)設(shè)計(jì)的過程,熟練掌握網(wǎng)絡(luò)數(shù)據(jù)庫(kù)編程方法,本系統(tǒng)用JSP技術(shù)來編寫本系統(tǒng),數(shù)據(jù)庫(kù)用SQLSERVER 2000來連接系統(tǒng)。</p><p> 本論文主要是對(duì)客戶管理、加工管理、產(chǎn)品管理、投訴反饋、售后回訪、事務(wù)提醒等功能實(shí)現(xiàn),涵蓋知識(shí)面廣,可有效地提高學(xué)生綜合
11、運(yùn)用所學(xué)知識(shí)分析解決問題的能力,增強(qiáng)學(xué)生對(duì)事物的理解與掌握能力,培養(yǎng)學(xué)生掌握科學(xué)的研究方法,正確的設(shè)計(jì)思想,獨(dú)立思考,勇于進(jìn)取,探索創(chuàng)新,為今后進(jìn)一步學(xué)習(xí)與工作奠定了良好的基礎(chǔ)。</p><p> 關(guān)鍵詞:計(jì)算機(jī)技術(shù);企業(yè)客戶服務(wù)及產(chǎn)品管理系統(tǒng);JSP</p><p><b> Abstract</b></p><p> The topi
12、c goal is designs and realizes a B/S architecture enterprise customer service and the product management system. The union practice, understood that the homepage development technology and the database elementary knowled
13、ge, the study related development kit and the application software, the familiar system design's process, masters the network database programming method skilled. this system arranges the comp book system with the JS
14、P technology, the database uses the SQLSERVER 2000 conne</p><p> Key words: Computer technology; Enterprise customer service and product management system; JSP</p><p><b> 引 言</b>&
15、lt;/p><p> 在現(xiàn)在飛速發(fā)展的環(huán)境下,客戶與產(chǎn)品形成了密不可分的關(guān)系,客戶服務(wù)對(duì)于一個(gè)公司已經(jīng)是畢不可少的了,產(chǎn)品管理更是重中之重,產(chǎn)品管理業(yè)是對(duì)客戶負(fù)責(zé),也是公司生存的保障,現(xiàn)在的公司生產(chǎn)的產(chǎn)品是多元化的,所以產(chǎn)品管理也變的復(fù)雜,產(chǎn)品管理需要系統(tǒng)化的管理制度,給管理者方便明了的管理產(chǎn)品,一個(gè)嚴(yán)密的產(chǎn)品管理系統(tǒng)是必不可缺的。數(shù)以千萬的產(chǎn)品產(chǎn)出,售出,存放等,需要產(chǎn)品管理系統(tǒng)都能明了的表現(xiàn)出來,方便對(duì)產(chǎn)品的質(zhì)
16、量,數(shù)量的了解,以便把客戶最需要最好的產(chǎn)品售給客戶。</p><p> 客戶作為公司生存的對(duì)象,客戶服務(wù)就成了必需品,現(xiàn)在的公司以把客戶與產(chǎn)品連成線,有客戶才會(huì)生產(chǎn)產(chǎn)品,有客戶才能售出產(chǎn)品,同樣,也了解了生產(chǎn)什么樣產(chǎn)品,以便滿足客戶,產(chǎn)品數(shù)以千萬,客戶同樣數(shù)以千萬,并且賣出的產(chǎn)品也必須得到保障,首先對(duì)客戶就要有售后服務(wù),還要知道那些客戶要什么產(chǎn)品,都必須分出類別,客戶的一些方便對(duì)客戶服務(wù)。做出這個(gè)客戶服務(wù)和產(chǎn)品
17、管理系統(tǒng)就能方便公司管理人員管理。</p><p> 產(chǎn)品管理技術(shù)在全球的應(yīng)用領(lǐng)域十分廣泛,包括機(jī)械、電子、汽車、航空、航天以及非制造業(yè)等。目前,汽車工業(yè)已經(jīng)在全球范圍內(nèi)開始實(shí)施產(chǎn)品管理技術(shù)(如福特、通用等),航空/航天工業(yè)用管理技術(shù)對(duì)企業(yè)進(jìn)行重組(如波音、麥道等),非制造業(yè)(如交通、商業(yè)、電子出版等)應(yīng)用管理技術(shù)的增長(zhǎng)速度也十分迅速。產(chǎn)品管理系統(tǒng)在文檔管理、變更控制、配置管理與信息跟蹤等方面也得到廣泛的應(yīng)用,
18、并把它作為支持企業(yè)重組(如技術(shù)重組、產(chǎn)品重組、信息重組等)、并行工程、虛擬制造等的使能技術(shù)。</p><p> 企業(yè)客戶服務(wù)與產(chǎn)品管理系統(tǒng)是典型的信息管理系統(tǒng)(MIS),其開發(fā)主要包括后臺(tái)數(shù)據(jù)庫(kù)的建立和維護(hù)以及前端應(yīng)用程序的開發(fā)兩個(gè)方面。對(duì)于前者要求建立起數(shù)據(jù)一致性和完整性強(qiáng)、數(shù)據(jù)安全性好的庫(kù)。而對(duì)于后者則要求應(yīng)用程序功能完備,易使用等特點(diǎn)。系統(tǒng)主要完成對(duì)客戶管理、加工管理、產(chǎn)品管理、投訴反饋、售后回訪、事務(wù)提
19、醒等幾個(gè)方面的描述。</p><p> 本論文包括需求分析、系統(tǒng)功能、系統(tǒng)設(shè)計(jì)、程序設(shè)計(jì)、系統(tǒng)測(cè)試及存在問題等方面,較為系統(tǒng)地介紹了“企業(yè)信息管理信息系統(tǒng)”課題開發(fā)的整個(gè)過程。</p><p><b> 1 項(xiàng)目概述</b></p><p><b> 1.1 現(xiàn)系統(tǒng)概述</b></p><p>
20、; 產(chǎn)品管理技術(shù)在全球的應(yīng)用領(lǐng)域十分廣泛,包括機(jī)械、電子、汽車、航空、航天以及非制造業(yè)等。目前,汽車工業(yè)已經(jīng)在全球范圍內(nèi)開始實(shí)施產(chǎn)品管理技術(shù)(如福特、通用等),航空/航天工業(yè)用管理技術(shù)對(duì)企業(yè)進(jìn)行重組(如波音、麥道等),非制造業(yè)(如交通、商業(yè)、電子出版等)應(yīng)用管理技術(shù)的增長(zhǎng)速度也十分迅速。產(chǎn)品管理系統(tǒng)在文檔管理、變更控制、配置管理與信息跟蹤等方面也得到廣泛的應(yīng)用,并把它作為支持企業(yè)重組(如技術(shù)重組、產(chǎn)品重組、信息重組等)、并行工程、虛擬
21、制造等的使能技術(shù)。</p><p> 企業(yè)客戶服務(wù)與產(chǎn)品管理系統(tǒng)是典型的信息管理系統(tǒng)(MIS),其開發(fā)主要包括后臺(tái)數(shù)據(jù)庫(kù)的建立和維護(hù)以及前端應(yīng)用程序的開發(fā)兩個(gè)方面。對(duì)于前者要求建立起數(shù)據(jù)一致性和完整性強(qiáng)、數(shù)據(jù)安全性好的庫(kù)。而對(duì)于后者則要求應(yīng)用程序功能完備,易使用等特點(diǎn)。系統(tǒng)主要完成對(duì)客戶管理、加工管理、產(chǎn)品管理、投訴反饋、售后回訪、事務(wù)提醒等幾個(gè)方面的描述。</p><p><b&
22、gt; 1.2公司組織機(jī)構(gòu)</b></p><p> 圖1-1 公司組織機(jī)構(gòu)圖</p><p> Fig 1-1 Diagram of the Company's Organizational Structure</p><p> 1.3 系統(tǒng)業(yè)務(wù)流程</p><p> 經(jīng)過前期調(diào)研分析和綜合其它各方面相關(guān)理論知
23、識(shí),給出整個(gè)系統(tǒng)的業(yè)務(wù)流程圖如下圖1-2所示:</p><p> 整個(gè)系統(tǒng)的開發(fā)主要圍繞上述業(yè)務(wù)流程進(jìn)行開發(fā),開發(fā)過程采用面向?qū)ο蟮拈_發(fā)技術(shù),具體開發(fā)過程見下面的章節(jié)。</p><p><b> 圖1-2 系統(tǒng)流程</b></p><p> Fig 1-2 the Workflow of System</p><p&
24、gt; 1.4 系統(tǒng)功能模塊</p><p> 根據(jù)上述業(yè)務(wù)流程,整個(gè)系統(tǒng)抽象出以下幾個(gè)功能模塊,如圖1-3所示。</p><p> 下面模塊劃分只是抽象意義上的劃分,各模塊之間需要共享數(shù)據(jù),相互協(xié)作,完成整個(gè)系統(tǒng)流程,單一事物功能模塊間是相互獨(dú)立的。</p><p> 圖1-3 系統(tǒng)功能模塊</p><p> Fig 1-3 Fu
25、nction Models of System</p><p><b> 2 系統(tǒng)需求分析</b></p><p><b> 2.1 需求陳述</b></p><p> 通常,需求陳述的內(nèi)容包括:?jiǎn)栴}范圍,功能需求,性能需求,應(yīng)用環(huán)境及假設(shè)條件等??傊?,需求陳述應(yīng)該闡明“做什么”而不是“怎樣做”。它應(yīng)該描述用戶的需求
26、而不是提出解決問題的方法。應(yīng)該指出哪些是系統(tǒng)必要的性質(zhì),哪些是任選的性質(zhì)。應(yīng)該避免對(duì)設(shè)計(jì)策略施加過多的約束,也不要描述系統(tǒng)的內(nèi)部結(jié)構(gòu),因?yàn)檫@樣做將限制實(shí)現(xiàn)的靈活性。對(duì)系統(tǒng)性能及系統(tǒng)與外界環(huán)境交互協(xié)議的描述,是合適的需求。此外,對(duì)采用的軟件工程標(biāo)準(zhǔn)、模塊構(gòu)造準(zhǔn)則、將來可能做的擴(kuò)充以及可維護(hù)性要求等方面的描述,也都是適當(dāng)?shù)男枨?。下面以企業(yè)客戶服務(wù)及產(chǎn)品管理系統(tǒng)為例說明如何進(jìn)行系統(tǒng)需求陳述。</p><p> 本系統(tǒng)
27、需要具有以下功能:</p><p> (1)由于一項(xiàng)新的軟件在被使用之前,對(duì)于使用者來說是陌生和嶄新的,所以要求系統(tǒng)具有良好的人機(jī)界面。</p><p> (2)能夠?qū)崿F(xiàn)信息管理功能,能成功的對(duì)各種信息進(jìn)行查詢及管理。</p><p> (3)查詢數(shù)據(jù)方便,數(shù)據(jù)的穩(wěn)定性和可靠性好。</p><p> 系統(tǒng)采用B/S模式。整個(gè)系統(tǒng)最關(guān)鍵
28、的就是數(shù)據(jù)庫(kù)系統(tǒng),一個(gè)強(qiáng)大的數(shù)據(jù)庫(kù)可以支持完善一個(gè)優(yōu)秀的軟件設(shè)計(jì),通過軟件系統(tǒng)與數(shù)據(jù)庫(kù)系統(tǒng)的連接來實(shí)現(xiàn)通過軟件界面觀察和處理操作數(shù)據(jù)。</p><p> 系統(tǒng)任務(wù)確定之后,下面的工作就是進(jìn)行系統(tǒng)分析。</p><p> 面向?qū)ο蟮姆治龅闹饕蝿?wù)是分析問題領(lǐng)域,找出問題解決方案,發(fā)現(xiàn)對(duì)象,分析對(duì)象的內(nèi)部構(gòu)成和外部關(guān)系,建立軟件系統(tǒng)的對(duì)象模型。</p><p>
29、分析問題領(lǐng)域是軟件系統(tǒng)開發(fā)的一項(xiàng)基本工作,是項(xiàng)目開發(fā)之初必須首先進(jìn)行的重要工作。分析問題領(lǐng)域的結(jié)果是對(duì)問題領(lǐng)域的清晰,精確的定義,明確目標(biāo)系統(tǒng)將做什么。</p><p> 分析問題領(lǐng)域的主要任務(wù)是:對(duì)問題領(lǐng)域進(jìn)行抽象,提出解決方案;對(duì)未來的系統(tǒng)進(jìn)行需求分析,確定系統(tǒng)的職責(zé)范圍,功能需求,性能需求,應(yīng)用環(huán)境及假設(shè)條件等。</p><p> 實(shí)施面向?qū)ο蠓治龅囊话悴襟E如下:</p&g
30、t;<p> 1.分析用戶需求,建立Use Case 并通過用例圖來描述用戶的需求。</p><p> 2.通過建立域模型以識(shí)別類與對(duì)象,從而識(shí)別系統(tǒng)中的各種對(duì)象。</p><p> 3.確定對(duì)象的內(nèi)部特征,從而定義出各個(gè)屬性與服務(wù),以進(jìn)一步細(xì)化類的結(jié)構(gòu)。</p><p> 4.識(shí)別對(duì)象之間的關(guān)系并使用設(shè)計(jì)模式對(duì)類的結(jié)構(gòu)進(jìn)行優(yōu)化和改造。<
31、/p><p> 5.獲得對(duì)象之間的行為關(guān)系,繪制出各種動(dòng)態(tài)圖形(順序圖、協(xié)作圖、狀態(tài)圖等)。</p><p> 2.2 Use Case建模</p><p> 2.2.1定義活動(dòng)者</p><p> 根據(jù)的需求可以確定2個(gè)活動(dòng)者,即客戶及系統(tǒng)管理員。</p><p> 客戶可以進(jìn)行網(wǎng)上轉(zhuǎn)賬及余額查詢;</p
32、><p> 系統(tǒng)管理員可以管理客戶的賬戶。</p><p> 2.2.2 Use Case圖</p><p> 根據(jù)系統(tǒng)需求分析,結(jié)合上節(jié)系統(tǒng)活動(dòng)者的定義分析,得到系統(tǒng)的用例圖3-1如下:</p><p> 圖2-1客戶服務(wù)與產(chǎn)品管理系統(tǒng)Use Case 圖</p><p> Fig3-1 Use Case fo
33、r Sales Management</p><p><b> 3 系統(tǒng)架構(gòu)設(shè)計(jì)</b></p><p> 軟件的系統(tǒng)架構(gòu)是指通過某種特定的技術(shù)平臺(tái),完成軟件系統(tǒng)整體功能的開發(fā)過程。也可以通俗地理解為:總體設(shè)計(jì)和總體結(jié)構(gòu)布局。</p><p> 一般而言,軟件系統(tǒng)架構(gòu)有兩個(gè)要素:</p><p> 1.它是一個(gè)軟
34、件系統(tǒng)從整體到部分的最高層次的劃分。</p><p> 2.建造一個(gè)系統(tǒng)所做出的最高層次的,以后難以更改的,商業(yè)和技術(shù)的決定。</p><p><b> 3.1架構(gòu)設(shè)計(jì)目標(biāo)</b></p><p> 軟件架構(gòu)設(shè)計(jì)要達(dá)到如下的目標(biāo):</p><p> 1.可行性(Feasible)。架構(gòu)具有可行性是架構(gòu)設(shè)計(jì)的基石。
35、</p><p> 2.可靠性(Reliable)。軟件系統(tǒng)對(duì)于用戶的商業(yè)經(jīng)營(yíng)和管理來說極為重要,因此軟件系統(tǒng)必須非常可靠。</p><p> 3.安全行(Secure)。軟件系統(tǒng)所承擔(dān)的交易的商業(yè)價(jià)值極高,系統(tǒng)的安全性非常重要。</p><p> 4.可定制化(Customizable)。同樣的一套軟件,可以根據(jù)客戶群的不同和市場(chǎng)需求的變化進(jìn)行調(diào)整。<
36、/p><p> 5.可擴(kuò)展性(Extensible)。在新技術(shù)出現(xiàn)的時(shí)候,一個(gè)軟件系統(tǒng)應(yīng)當(dāng)允許導(dǎo)入新技術(shù),從而對(duì)現(xiàn)有系統(tǒng)進(jìn)行功能和性能的擴(kuò)展。</p><p> 6.可維護(hù)性(Maintainable)。軟件系統(tǒng)的維護(hù)包括兩方面,一是排除現(xiàn)有的錯(cuò)誤,二是將新的軟件需求反映到現(xiàn)有系統(tǒng)中去。一個(gè)易于維護(hù)的系統(tǒng)可以有效地降低技術(shù)支持的花費(fèi)。</p><p> 7.可升級(jí)
37、性(Scalable)。軟件必須能夠在用戶的使用率、用戶的數(shù)目增加很快的情況下,保持合理的性能。只有這樣,才能適應(yīng)用戶的市場(chǎng)擴(kuò)展得可能性。</p><p> 8.客戶體驗(yàn)(Customer Experience)。軟件系統(tǒng)必須易于使用。軟件的最終用戶很可能是不具有計(jì)算機(jī)專業(yè)技術(shù)的人員。</p><p> 3.2 系統(tǒng)架構(gòu)設(shè)計(jì)</p><p> 下面我們將根據(jù)架
38、構(gòu)設(shè)計(jì)原則和信息系統(tǒng)原理來建立系統(tǒng)的架構(gòu)設(shè)計(jì)模型。將信息系統(tǒng)中比較關(guān)心的對(duì)象分層,可分為三層:用戶界面層、業(yè)務(wù)層、數(shù)據(jù)訪問層(如下圖3-2所示),再把各層中的一些公共部分提出來:權(quán)限管理、異常處理,這樣得到包圖如圖3-2-1所示:</p><p> 圖3-2 系統(tǒng)體系架構(gòu)圖</p><p> Fig3-2 The Diagram of System Architecture</p
39、><p><b> 圖3-2-1 包圖</b></p><p> Fig3-2-1 Package Diagram of Sales Management Model</p><p><b> 1.用戶界面包</b></p><p> 用戶界面包的職責(zé)是:</p><p>
40、; ?。?)與用戶的交互,接收用戶的各種輸入以及輸出各種提示信息或處理結(jié)果。</p><p> ?。?)對(duì)于輸入的數(shù)據(jù)進(jìn)行數(shù)據(jù)校驗(yàn),過濾非法數(shù)據(jù)。</p><p> ?。?)向業(yè)務(wù)處理對(duì)象發(fā)送處理請(qǐng)求。</p><p> 用戶界面包圖展開如圖3-3所示:</p><p> 圖3-3 用戶界面包展開圖</p><p>
41、; Fig3-3 Package Diagram of Users Interface</p><p> 用戶界面包包含的類見圖2-4:</p><p> 圖3-4 用戶界面類圖</p><p> Fig3-4 Class Diagram of Users Interface</p><p><b> 2.業(yè)務(wù)邏輯包<
42、;/b></p><p> 業(yè)務(wù)邏輯包的職責(zé)是:</p><p> ?。?)實(shí)現(xiàn)各種業(yè)務(wù)處理邏輯或處理算法。</p><p> ?。?)驗(yàn)證請(qǐng)求者的權(quán)限。</p><p> (3)向數(shù)據(jù)訪問對(duì)象發(fā)送數(shù)據(jù)持久化操作的請(qǐng)求。</p><p> ?。?)向用戶界面層返回處理結(jié)果。</p><p&
43、gt; 業(yè)務(wù)邏輯包圖展開如圖3-5所示:</p><p> 圖3-5 業(yè)務(wù)邏輯包圖展開</p><p> Fig3-5 Package Diagram of Business</p><p> 業(yè)務(wù)邏輯包包含的類見圖3-6:</p><p> 圖3-6 業(yè)務(wù)邏輯類圖</p><p> Fig3-6 Clas
44、s Diagram of Business</p><p><b> 3.數(shù)據(jù)訪問包</b></p><p> 數(shù)據(jù)訪問層的職責(zé)是:</p><p> (1)實(shí)現(xiàn)數(shù)據(jù)的持久化操作。</p><p> ?。?)實(shí)現(xiàn)事務(wù)處理。</p><p> 數(shù)據(jù)訪問包圖展開如圖2-7所示:</p&g
45、t;<p> 圖3-7 數(shù)據(jù)訪問包圖展開</p><p> Fig3-7 Package Diagram of Data Access</p><p> 數(shù)據(jù)訪問包包含的類見圖3-8:</p><p> 圖3-8數(shù)據(jù)訪問類圖</p><p> Fig3-8 Class Diagram of Data Access<
46、;/p><p> 對(duì)于每一個(gè)業(yè)務(wù)處理中需要持久化操作的對(duì)象都可以對(duì)應(yīng)為一個(gè)數(shù)據(jù)庫(kù)訪問對(duì)象,在很多業(yè)務(wù)處理中需要請(qǐng)求多個(gè)數(shù)據(jù)庫(kù)訪問對(duì)象來進(jìn)行數(shù)據(jù)的讀寫操作,而這些操作又必須在同一個(gè)事務(wù)中,這時(shí)需要用同一個(gè)數(shù)據(jù)庫(kù)連接對(duì)象來進(jìn)行統(tǒng)一的事務(wù)處理。這里的數(shù)據(jù)庫(kù)連接類的創(chuàng)建用到了單件(Singleton)模式,保證一個(gè)類僅有一個(gè)實(shí)例,一個(gè)客戶在同一時(shí)刻只能用一個(gè)數(shù)據(jù)庫(kù)連接對(duì)象。</p><p><
47、b> 4.權(quán)限管理包</b></p><p> 權(quán)限管理的主要職責(zé)是:</p><p> (1)驗(yàn)證請(qǐng)求者的請(qǐng)求權(quán)限。</p><p> (2)提供請(qǐng)求者的權(quán)限列表。</p><p> 權(quán)限管理包圖展開如圖3-9所示:</p><p> 圖3-9權(quán)限管理包圖展開</p>&l
48、t;p> Fig3-9 Package Diagram of Access Authorization</p><p> 權(quán)限管理包包含的類見圖3-10:</p><p> 圖3-10權(quán)限管理類圖</p><p> Fig3-10 Class Diagram of Access Authorization</p><p><
49、;b> 5.異常處理包</b></p><p><b> 異常處理的職責(zé):</b></p><p> ?。?)匯報(bào)運(yùn)行時(shí)的詳細(xì)異常信息。</p><p> ?。?)記錄異常處理日志。</p><p> 異常處理包圖展開如圖3-11所示:</p><p> 圖3-11異常處
50、理包圖展開</p><p> Fig3-11 Package Diagram of Exception Processing</p><p> 異常處理包包含的類見圖3-12:</p><p> 圖3-12異常處理類圖</p><p> Fig3-12 Class Diagram of Exception Processing<
51、/p><p> 因?yàn)楫惓L幚眍愋捅容^多,如:系統(tǒng)異常、數(shù)據(jù)庫(kù)異常、業(yè)務(wù)邏輯異常等,針對(duì)不同類型的異常處理方式也容易變,如:顯示錯(cuò)誤,記錄文本日志,記錄數(shù)據(jù)庫(kù)日志等,所以這里使用了橋接(Bridge)模式來實(shí)現(xiàn),使各部分的變化比較獨(dú)立。</p><p> 3.3 系統(tǒng)架構(gòu)類圖</p><p> 將包圖展開,得到類圖,它是架構(gòu)的靜態(tài)結(jié)構(gòu)圖,表達(dá)了各個(gè)類之間的靜態(tài)聯(lián)系。
52、企業(yè)客戶服務(wù)及產(chǎn)品管理系統(tǒng)中的系統(tǒng)架構(gòu)類圖如下圖3-13所示。</p><p> 圖3-13 系統(tǒng)架構(gòu)類圖</p><p> Fig3-13 Class Diagram of System Architecture</p><p><b> 4 系統(tǒng)詳細(xì)設(shè)計(jì)</b></p><p> 4.1 系統(tǒng)模塊設(shè)計(jì)<
53、/p><p><b> 4.1.1 登陸</b></p><p> 在用戶登錄界面,在用戶名對(duì)應(yīng)的文本框中輸入用戶名,在密碼對(duì)應(yīng)的文本框中輸入密碼,如果用戶名和密碼同時(shí)與數(shù)據(jù)庫(kù)中的用戶名和密碼相對(duì)應(yīng),點(diǎn)擊“確定”后進(jìn)入系統(tǒng)的主界面。如果輸入的信息不正確,則給出提示。</p><p> 輸入:用戶名和密碼。</p><p&g
54、t; 處理:校檢字符的有效性。用戶要登錄本系統(tǒng)需要提供用戶名和密碼,在這里就是要檢驗(yàn)用戶是否滿足輸入的要求,即檢驗(yàn)用戶名和密碼文本框是否為空,若為空,則提示用戶輸入用戶名和密碼。檢驗(yàn)用戶名是否存在或密碼是否正確,即是否存在用戶輸入的用戶名,并且密碼是否正確。</p><p> 輸出:登錄成功,進(jìn)入用戶的系統(tǒng)使用資源頁(yè)面,不成功則顯示錯(cuò)誤信息頁(yè)面。</p><p><b>
55、界面如下圖所示:</b></p><p> 4.1.2 產(chǎn)品信息管理</p><p> 管理員進(jìn)入系統(tǒng)后可以對(duì)產(chǎn)品信息進(jìn)行管理,包括對(duì)產(chǎn)品信息的添加、修改、刪除的功能。</p><p> a) 添加產(chǎn)品的信息操作:</p><p> ?點(diǎn)擊添加產(chǎn)品信息按鈕。并輸入所需添加產(chǎn)品的內(nèi)容,內(nèi)容包括產(chǎn)品編號(hào),產(chǎn)品名稱,產(chǎn)品單位,
56、生產(chǎn)日期,生產(chǎn)數(shù)量,成本金額。</p><p> 檢測(cè)所輸入的內(nèi)容是否符合用戶數(shù)據(jù)庫(kù)表中字段定義。若不符合則提示輸入有誤。</p><p> ?提示信息添加成功。</p><p> ?更新產(chǎn)品數(shù)據(jù)庫(kù)表的信息。</p><p><b> b) 刪除產(chǎn)品信息</b></p><p> ?
57、點(diǎn)擊刪除按鈕來刪除產(chǎn)品的相關(guān)信息。</p><p> ?根據(jù)產(chǎn)品的表中的關(guān)鍵字產(chǎn)品編號(hào)刪除表中的一切以產(chǎn)品編號(hào)為主鍵的其他字段。執(zhí)行sql語句delete并且刪除相關(guān)屬性。</p><p> ?更新數(shù)據(jù)庫(kù)表的信息。</p><p><b> c)修改產(chǎn)品</b></p><p> ?點(diǎn)擊修改產(chǎn)品按鈕。并
58、輸入需要修改的內(nèi)容,內(nèi)容包括產(chǎn)品編號(hào),產(chǎn)品名稱,產(chǎn)品單位,生產(chǎn)日期,生產(chǎn)數(shù)量,成本金額。</p><p> ?檢驗(yàn)用戶輸入的內(nèi)容是否符合數(shù)據(jù)庫(kù)表中字段定義。若不符合則提示輸入有誤。</p><p> ?如果用記錄存在,進(jìn)行修改操作,輸入新的字段,并根據(jù)數(shù)據(jù)庫(kù)表中對(duì)應(yīng)字段的定義檢查輸入是否合法,如果輸入有錯(cuò)誤則進(jìn)行提示。</p><p> ?如果輸入正確,
59、執(zhí)行(UPDATE)SQL語句,更新數(shù)據(jù)庫(kù)表中該項(xiàng)目所對(duì)應(yīng)的記錄。</p><p> ?提示信息修改成功。</p><p> ?更新數(shù)據(jù)庫(kù)表的信息。</p><p><b> 界面如圖:</b></p><p><b> 4.2 數(shù)據(jù)庫(kù)設(shè)計(jì)</b></p><p>
60、; 關(guān)系型數(shù)據(jù)庫(kù)是目前應(yīng)用最廣泛的數(shù)據(jù)庫(kù)。既然是面向?qū)ο笙到y(tǒng)設(shè)計(jì),數(shù)據(jù)庫(kù)設(shè)計(jì)當(dāng)然也要是面向?qū)ο蟮摹,F(xiàn)在要考慮如何對(duì)類進(jìn)行持久化操作,即如何將對(duì)象類映射到關(guān)系數(shù)據(jù)庫(kù)的二維表。目前可以采用數(shù)據(jù)庫(kù)建模工具來實(shí)現(xiàn),象PowerDesigner、Rose 等。</p><p><b> 4.2.1 ER圖</b></p><p> 2. 操作員實(shí)體E-R圖如圖所示:<
61、;/p><p> 圖2-11 操作員實(shí)體E—R圖</p><p> 4.3.2 物理表結(jié)構(gòu)圖</p><p> 將ER模型中的實(shí)體轉(zhuǎn)換為物理表,得到物理表結(jié)構(gòu)如下:</p><p> 設(shè)計(jì)表“admin”</p><p> 設(shè)計(jì)表“system”</p><p> 設(shè)計(jì)表“member”
62、</p><p> 4.4 開發(fā)環(huán)境的選擇</p><p> 4.4.1系統(tǒng)開發(fā)工具</p><p> 本系統(tǒng)采用VisualStuido2005作為系統(tǒng)開發(fā)工具。Visual Studio 是微軟公司推出的開發(fā)環(huán)境,是目前最流行的 Windows 平臺(tái)應(yīng)用程序開發(fā)環(huán)境。使用Visual Studio 2005, 專業(yè)開發(fā)人員能夠:使用改進(jìn)后的可視化設(shè)計(jì)工具、
63、編程語言和代碼編輯器,享受高效率的開發(fā)環(huán)境 ,在統(tǒng)一的開發(fā)環(huán)境中開發(fā)并調(diào)試多層次的服務(wù)器應(yīng)用程序 使用集成的可視化數(shù)據(jù)庫(kù)設(shè)計(jì)和報(bào)告工具,創(chuàng)建SQL Server 2005解決方案</p><p> 4.4.2數(shù)據(jù)庫(kù)的選擇</p><p> SQL Server2000是一個(gè)具備完全Web支持的數(shù)據(jù)庫(kù)產(chǎn)品,其特點(diǎn)如下:</p><p> 真正的客戶機(jī)/服務(wù)器體系
64、結(jié)構(gòu)。</p><p> 1.圖形化用戶界面,使系統(tǒng)管理和數(shù)據(jù)庫(kù)管理更加直觀、簡(jiǎn)單。</p><p> 豐富的編程接口工具,為用戶進(jìn)行程序設(shè)計(jì)提供了更大的選擇余地。</p><p> 2.SQL Server與Windows NT完全集成,利用了NT的許多功能,如發(fā)送和接受消息,管理登錄安全性等。SQL Server也可以很好地與Microsoft BackO
65、ffice產(chǎn)品集成。</p><p> 3.很好的伸縮性,可跨越從運(yùn)行Windows 95/98的膝上型電腦Windows 2000的大型多處理器等多種平臺(tái)使用。</p><p> 4.對(duì)Web技術(shù)的支持,使用戶能夠很容易地將數(shù)據(jù)庫(kù)中的數(shù)據(jù)發(fā)布到Web頁(yè)面上。 </p><p> 5.SQL Server提供數(shù)據(jù)倉(cāng)庫(kù)功能,這個(gè)功能只在Oracle和其他更昂貴的
66、DBMS中才有。</p><p> 4.4.3 系統(tǒng)網(wǎng)絡(luò)架構(gòu)設(shè)計(jì)</p><p> 本系統(tǒng)采用B/S結(jié)構(gòu),系統(tǒng)網(wǎng)絡(luò)架構(gòu)圖見圖4-11。</p><p> 圖4-11系統(tǒng)網(wǎng)絡(luò)架構(gòu)圖</p><p> Fig4-11 Net Architecture Diagram of System</p><p> 客戶機(jī)配
67、置情況如下表4-8所示。</p><p> 表4-8 (Table 4-8)</p><p> 支持軟件安裝情況如下表4-9所示。</p><p> 表4-9 (Table 4-9)</p><p><b> 5 編碼</b></p><p> 5.1 概述開發(fā)工具及編程腳本</p
68、><p> 5.1.1 JSP技術(shù)</p><p> JSP是由Sun微系統(tǒng)公司于1999年6月推出的一項(xiàng)技術(shù),是基于JavaServlet以及整個(gè)Java體系的Web開發(fā)技術(shù),利用這一技術(shù)可以建立先進(jìn)、安全和跨平臺(tái)的動(dòng)態(tài)網(wǎng)站。JSP技術(shù)在多個(gè)方面加速了動(dòng)態(tài)Web頁(yè)面的開發(fā)。</p><p> 與微軟公司的ASP技術(shù)相比,JSP具有如下優(yōu)點(diǎn):</p>
69、<p> (1) 開放的技術(shù):JSP技術(shù)基于平臺(tái)和服務(wù)器的相互獨(dú)立,技術(shù)支持來自廣泛的、專門的、各種工具包,有服務(wù)器的組件和數(shù)據(jù)庫(kù)產(chǎn)品開發(fā)商提供。相比之下,ASP技術(shù)主要依賴MICROSOFT支持。</p><p> (2) 平臺(tái)和服務(wù)器的獨(dú)立性:JSP編寫的代碼可運(yùn)行在任何符合JAVA語法結(jié)構(gòu)的環(huán)境中。這樣JSP就能夠運(yùn)行在多種WEB服務(wù)器上并支持來自多家開發(fā)商提供的各種工具包。</p&g
70、t;<p> (3) 開放的開發(fā)過程,開放的源碼:自1995年以來,SUN用開放過程方法同國(guó)際JAVA組織合作開發(fā)和修改JAVA技術(shù)和規(guī)范。</p><p> (4) JSP標(biāo)記可擴(kuò)充性:JSP技術(shù)能夠?yàn)殚_發(fā)者擴(kuò)展JSP標(biāo)記,充分利用與XML兼容的標(biāo)記技術(shù)強(qiáng)大的功能,大大減少對(duì)腳本語言的依賴。</p><p> (5)JSP跨平臺(tái)的可重用性:JSP組件(EJB,Java
71、Bean或定制的JSP標(biāo)記)都是跨平臺(tái)可重用的。</p><p> 5.1.2 JavaBean技術(shù)</p><p> JSP作為一個(gè)很好的動(dòng)態(tài)網(wǎng)站開發(fā)語言得到了越來越廣泛的應(yīng)用,在各類JSP應(yīng)用程序中,JSP + JavaBean的組合成為了一種事實(shí)上最常見的JSP程序的標(biāo)準(zhǔn). JavaBean是描述Java的軟件組件模型,有點(diǎn)類似于Microsoft的COM組件概念。在Java模型
72、中,通過JavaBean可以無限擴(kuò)充Java程序的功能,通過JavaBean的組合可以快速的生成新的應(yīng)用程序。對(duì)于程序員來說,最好的一點(diǎn)就是JavaBean可以實(shí)現(xiàn)代碼的重復(fù)利用,另外對(duì)于程序的易維護(hù)性等等也有很重大的意義。JavaBean通過Java虛擬機(jī)(Java Virtual Machine)可以得到正確的執(zhí)行,具有平臺(tái)無關(guān)性。</p><p> 一個(gè)JavaBean有三個(gè)部分組成:</p>
73、<p> 屬性(Property)</p><p> Bean的屬性就是對(duì)象的屬性,但提供了屬性讀取和設(shè)置的接口支持。例如一個(gè)時(shí)鐘Bean可以有時(shí)區(qū)和鎮(zhèn)鈴屬性,日歷Bean可以有年份和月份屬性。每個(gè)屬性通常遵守簡(jiǎn)單的方法命名規(guī)則。這樣可以很方便的找出Bean提供的屬性,然后查詢屬性值或改變屬性值,對(duì)Bean進(jìn)行操作。</p><p> 方法(Method)</p&
74、gt;<p> 由于Bean本身是Java對(duì)象,調(diào)用這個(gè)對(duì)象的方法是與其交互作用的唯一途徑。JavaBean嚴(yán)格遵守面向?qū)ο蟮念愒O(shè)計(jì)邏輯,不讓外界訪問其任何實(shí)例字段(沒有Public字段)。這樣,方法調(diào)用的是接觸Bean的唯一途徑。</p><p><b> 事件(Event)</b></p><p> Bean與其他軟件組件交流信息的主要方式是發(fā)
75、送和接收事件。這與對(duì)象之間通過消息通信類似。</p><p> JavaBean傳統(tǒng)的應(yīng)用在于可視化的領(lǐng)域,如AWT下的應(yīng)用。自從JSP誕生后,JavaBean更多的應(yīng)用在非可視化領(lǐng)域,在服務(wù)器端應(yīng)用方面表現(xiàn)出來了越來越強(qiáng)的生命力。利用非可視化JavaBean, 來封裝事務(wù)邏輯、數(shù)據(jù)庫(kù)操作等等,可以很好地實(shí)現(xiàn)業(yè)務(wù)邏輯和前臺(tái)程序(如JSP)的分離,使得系統(tǒng)具有更好的健壯性和靈活性。</p><
76、p> 5.1.3 JDBC技術(shù)</p><p> JDBC是Java的開發(fā)者——Sun的JavaSoft公司制定的Java數(shù)據(jù)庫(kù)連接JavaDataBaseConnectivity技術(shù)的簡(jiǎn)稱,是為各種常用數(shù)據(jù)庫(kù)提供無縫聯(lián)接的技術(shù)。JDBC在Web和Internet應(yīng)用程序中的作用和ODBC在Windows系列平臺(tái)應(yīng)用程序中的作用類似。JDBC有一個(gè)非常獨(dú)特的動(dòng)態(tài)連接結(jié)構(gòu),它使得系統(tǒng)模塊化。使用JDBC來
77、完成對(duì)數(shù)據(jù)庫(kù)的訪問包括以下四個(gè)主要組件:Java的應(yīng)用程序、JDBC驅(qū)動(dòng)器管理器、驅(qū)動(dòng)器和數(shù)據(jù)源。簡(jiǎn)單地說,JDBC能完成下列三件事: </p><p> ?。?)同一個(gè)數(shù)據(jù)庫(kù)建立連接; </p><p> ?。?)向數(shù)據(jù)庫(kù)發(fā)送SQL語句; </p><p> ?。?)處理數(shù)據(jù)庫(kù)返回的結(jié)果。</p><p> JDBC是一種可用于執(zhí)行SQL
78、語句的JavaAPI(ApplicationProgrammingInterface,應(yīng)用程序設(shè)計(jì)接口)。它由一些Java語言寫的類、界面組成。JDBC給數(shù)據(jù)庫(kù)應(yīng)用開發(fā)人員、數(shù)據(jù)庫(kù)前臺(tái)工具開發(fā)人員提供了一種標(biāo)準(zhǔn)的應(yīng)用程序設(shè)計(jì)接口,使開發(fā)人員可以用純Java語言編寫完整的數(shù)據(jù)庫(kù)應(yīng)用程序。 </p><p> 通過使用JDBC,開發(fā)人員可以很方便地將SQL語句傳送給幾乎任何一種數(shù)據(jù)庫(kù)。也就是說,開發(fā)人員可以不必寫一
79、個(gè)程序訪問Sybase,寫另一個(gè)程序訪問Oracle,再寫一個(gè)程序訪問Microsoft的SQLServer。用JDBC寫的程序能夠自動(dòng)地將SQL語句傳送給相應(yīng)的數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)。不但如此,使用Java編寫的應(yīng)用程序可以在任何支持Java的平臺(tái)上運(yùn)行,不必在不同的平臺(tái)上編寫不同的應(yīng)用。Java和JDBC的結(jié)合可以讓開發(fā)人員在開發(fā)數(shù)據(jù)庫(kù)應(yīng)用時(shí)真正實(shí)現(xiàn)“WriteOnce,RunEverywhere!” </p>&
80、lt;p> Java具有健壯、安全、易用等特性,而且支持自動(dòng)網(wǎng)上下載,是一種很好的與數(shù)據(jù)庫(kù)線連接而使用的編程語言。它所需要的是Java應(yīng)用如何同各種各樣的數(shù)據(jù)庫(kù)連接,JDBC正是實(shí)現(xiàn)這種連接的關(guān)鍵。 </p><p> JDBC擴(kuò)展了Java的能力,如使用Java和JDBCAPI就可以公布一個(gè)Web頁(yè),頁(yè)中帶有能訪問遠(yuǎn)端數(shù)據(jù)庫(kù)的Applet?;蛘咂髽I(yè)可以通過JDBC讓全部的職工(他們可以使用不同的操作系
81、統(tǒng),如Windwos,Machintosh或UNIX)在Intranet上連接到幾個(gè)全球數(shù)據(jù)庫(kù)上,而這幾個(gè)全球數(shù)據(jù)庫(kù)可以是不相同的。</p><p> 5.1.4 用JDBC訪問數(shù)據(jù)庫(kù)</p><p> 所有的數(shù)據(jù)庫(kù)的對(duì)象和方法都在java.sql.* 里面,所以首先要import java.sql.*,要想連接數(shù)據(jù)庫(kù),首先要將驅(qū)動(dòng)程序調(diào)入。</p><p>
82、 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");這是JDBC-ODBC 的驅(qū)動(dòng)程序。 </p><p> 要想連接一個(gè)指定的數(shù)據(jù)庫(kù),必須創(chuàng)建Connection類的一個(gè)實(shí)例。 </p><p> String url = "jdbc:odbc:Grocery prices"; </p>
83、<p> Connection con = DriverManager.getConnection(url); </p><p> 注意在此用到的數(shù)據(jù)庫(kù)名稱是在ODBC設(shè)置控制面板中輸入的數(shù)據(jù)資源名。URL語法對(duì)于不同類型的數(shù)據(jù)庫(kù)會(huì)很不一樣。 語法是這樣的: jdbc:subprotocol:subname 開頭都是JDBC,后面是子協(xié)議,然后是ODBC名稱。 </p><p&g
84、t; 若要使用純JDBC驅(qū)動(dòng)程序,必須安裝第三方軟件提供的驅(qū)動(dòng)程序,一般在數(shù)據(jù)庫(kù)的官方網(wǎng)站上可以找到這里不做討論。</p><p> 本系統(tǒng)采用JDBC-ODBC的驅(qū)動(dòng)程序連接數(shù)據(jù)庫(kù),并使用JavaBean組件,有效的避免了代碼的重復(fù),具體過程如下:</p><p> package exam; </p><p> import java.sql.*;
85、</p><p> public class ExamBean {</p><p> String strDBDriver="sun.jdbc.odbc.JdbcOdbcDriver";//JDBC-ODBC驅(qū)動(dòng)程序</p><p> String strDBUrl="jdbc:odbc:exam";</p>
86、;<p> private Connection conn=null;</p><p> private Statement stmt=null;</p><p> ResultSet rs=null;</p><p> //<!--注冊(cè)數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序--></p><p> public ExamBean
87、() {</p><p><b> try {</b></p><p> Class.forName(strDBDriver);</p><p><b> }</b></p><p> //<!—異常處理--></p><p> catch(java.l
88、ang.ClassNotFoundException e){</p><p> System.err.println("exam():"+e.getMessage());</p><p><b> }</b></p><p><b> }</b></p><p> //&
89、lt;!—建立數(shù)據(jù)庫(kù)連接及定義數(shù)據(jù)查詢--></p><p> public ResultSet executeQuery(String sql){</p><p><b> rs=null;</b></p><p><b> try{</b></p><p> conn=Driver
90、Manager.getConnection(strDBDriver);//創(chuàng)建數(shù)據(jù)庫(kù)連接對(duì)象 stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);//支持?jǐn)?shù)據(jù)回滾</p><p> rs=stmt.executeQuery(sql);</p><p> }
91、catch(SQLException ex){</p><p> System.err.println("aq.executeQuery:"+ex.getMessage());</p><p><b> }</b></p><p> return rs;</p><p><b> }
92、</b></p><p> //<!—定義數(shù)據(jù)更新操作--></p><p> public void executeUpdate(String sql){</p><p> stmt=null;</p><p><b> try{</b></p><p> co
93、nn=DriverManager.getConnection(strDBDriver);</p><p> stmt=conn.createStatement();</p><p> stmt.executeUpdate(sql);</p><p> stmt.close();</p><p> }catch(SQLException
94、 ex){</p><p> System.err.println("aq.executeQuery:"+ex.getMessage());</p><p><b> }</b></p><p><b> }</b></p><p> //<!—關(guān)閉數(shù)據(jù)庫(kù)連接--&
95、gt;</p><p> public void closeStmt(){</p><p><b> try{</b></p><p> stmt.close();</p><p> }catch(SQLException e){</p><p> e.printStackTrace()
96、;</p><p><b> }</b></p><p><b> }</b></p><p> public void closeConn(){</p><p><b> try{</b></p><p> conn.close();<
97、/p><p> }catch(SQLException e){</p><p> e.printStackTrace();</p><p><b> }</b></p><p><b> }</b></p><p> 5.2 腳本習(xí)慣說明</p><
98、p> 無論是哪一種JSP實(shí)現(xiàn),在一定 的階段,它們的某些版本都會(huì)出現(xiàn)給系統(tǒng)帶來危險(xiǎn)的安全隱患,即使 JSP開發(fā)者遵從了安全編程慣例也無濟(jì)于事。例如,在Allai re的JRun的一個(gè)版本中,如果請(qǐng)求URL包含字符串“.js p%00”作為JSP腳本擴(kuò)展名的一部分,服務(wù)器不會(huì)忽略nul l字節(jié),它會(huì)把頁(yè)面視為一個(gè)靜態(tài)的非JSP頁(yè)面之類的東西。這樣 ,服務(wù)器會(huì)請(qǐng)求操作系統(tǒng)打開該頁(yè)面,而這時(shí)null字節(jié)卻被忽略 ,結(jié)果提供給用戶的是J
99、SP頁(yè)面的源代碼而不是頁(yè)面的執(zhí)行結(jié)果。 </p><p> 類似地,Tom cat的一個(gè)版本也有一個(gè)安全隱患。只要請(qǐng)求類如下面的格式,它 會(huì)讓攻擊者看到JSP頁(yè)面的源代碼: </p><p> http://server/page.j s%2570 </p><p> 這 里的騙局在于,%25是URL編碼的“%”,而70是“p”的十 六進(jìn)制值。Web服務(wù)器不會(huì)
100、調(diào)用JSP處理器(因?yàn)閁RL沒有以 “.jsp”結(jié)尾),但靜態(tài)文件處理器會(huì)設(shè)法把URL映射到正確 的文件名字(再一次解碼URL)。 </p><p> 另外,許多Web服務(wù)器和JSP實(shí)現(xiàn)都帶有示 范腳本,這些示范腳本常常包含安全隱患。在把服務(wù)器部署到一個(gè)不 無惡意的環(huán)境(即Internet)之前,禁止對(duì)所有這些腳本的 訪問有利于安全。 </p><p> 簡(jiǎn)而言之,JSP開發(fā)者應(yīng)該清楚
101、:在自己正在開發(fā)的平臺(tái)上,當(dāng) 前有哪些安全隱患。訂閱BUGTRAQ和所有供應(yīng)商提供的郵件列 表是跟蹤這類信息的好方法。</p><p><b> 6 系統(tǒng)調(diào)試與測(cè)試</b></p><p><b> 6.1 程序調(diào)試</b></p><p> 在設(shè)計(jì)系統(tǒng)的過程中,存在一些錯(cuò)誤是必然的。對(duì)于語句的語法錯(cuò)誤,在程序運(yùn)行時(shí)
102、自動(dòng)提示,并請(qǐng)求立即糾正,因此,這類錯(cuò)誤比較容易發(fā)現(xiàn)和糾正。但另一類錯(cuò)誤是在程序執(zhí)行時(shí)由于不正確的操作或?qū)δ承?shù)據(jù)的計(jì)算公式的邏輯錯(cuò)誤導(dǎo)致的錯(cuò)誤結(jié)果。這類錯(cuò)誤隱蔽性強(qiáng),有時(shí)會(huì)出現(xiàn),有時(shí)又不出現(xiàn),因此,對(duì)這一類動(dòng)態(tài)發(fā)生的錯(cuò)誤的排查是耗時(shí)費(fèi)力的。</p><p><b> 6.2 程序的測(cè)試</b></p><p> 6.2.1 測(cè)試的重要性及目的</p>
103、<p><b> (1)測(cè)試的重要性</b></p><p> 軟件的測(cè)試在軟件生命周期中占據(jù)重要的地位,在傳統(tǒng)的瀑布模型中,軟件測(cè)試學(xué)僅處于運(yùn)行維護(hù)階段之前,是軟件產(chǎn)品交付用戶使用之前保證軟件質(zhì)量的重要手段。近來,軟件工程界趨向于一種新的觀點(diǎn),即認(rèn)為軟件生命周期每一階段中都應(yīng)包含測(cè)試,從而檢驗(yàn)本階段的成果是否接近預(yù)期的目標(biāo),盡可能早的發(fā)現(xiàn)錯(cuò)誤并加以修正,如果不在早期階段進(jìn)
104、行測(cè)試,錯(cuò)誤的延時(shí)擴(kuò)散常常會(huì)導(dǎo)致最后成品測(cè)試的巨大困難。 </p><p> 事實(shí)上,對(duì)于軟件來講,不論采用什么技術(shù)和什么方法,軟件中仍然會(huì)有錯(cuò)。采用新的語言、先進(jìn)的開發(fā)方式、完善的開發(fā)過程,可以減少錯(cuò)誤的引入,但是不可能完全杜絕軟件中的錯(cuò)誤,這些引入的錯(cuò)誤需要測(cè)試來找出,軟件中的錯(cuò)誤密度也需要測(cè)試來進(jìn)行估計(jì)。測(cè)試是所有工程學(xué)科的基本組成單元,是軟件開發(fā)的重要部分。自有程序設(shè)計(jì)的那天起測(cè)試就一直伴隨著。統(tǒng)計(jì)表明
105、,在典型的軟件開發(fā)項(xiàng)目中,軟件測(cè)試工作量往往占軟件開發(fā)總工作量的40%以上。而在軟件開發(fā)的總成本中,用在測(cè)試上的開銷要占30%到50%。如果把維護(hù)階段也考慮在內(nèi),討論整個(gè)軟件生存期時(shí),測(cè)試的成本比例也許會(huì)有所降低,但實(shí)際上維護(hù)工作相當(dāng)于二次開發(fā),乃至多次開發(fā),其中必定還包含有許多測(cè)試工作。 </p><p> 在實(shí)踐中,軟件測(cè)試的困難常常使人望而卻步或敷衍了事,這是由于對(duì)測(cè)試仍然存在一些不正確的看法和錯(cuò)誤的態(tài)度
106、,這包括: </p><p> ?、?認(rèn)為測(cè)試工作不如設(shè)計(jì)和編碼那樣容易取得進(jìn)展難以給測(cè)試人員某種成就感; </p><p> ?、?以發(fā)現(xiàn)軟件錯(cuò)誤為目標(biāo)的測(cè)試是非建設(shè)性的,甚至是破壞性的,測(cè)試中發(fā)現(xiàn)錯(cuò)位是對(duì)責(zé)任者工作的一種否定; </p><p> ③ 測(cè)試工作枯燥無味,不能引起人們的興趣; </p><p> ?、?測(cè)試工作是艱苦而細(xì)致
107、的工作; </p><p> ⑤ 對(duì)自己編寫的程序盲目自信,在發(fā)現(xiàn)錯(cuò)誤后,顧慮別人對(duì)自己的開發(fā)能力的看法。 </p><p> 這些觀點(diǎn)對(duì)軟件測(cè)試工作是極為不利的,必須澄清認(rèn)識(shí)、端正態(tài)度,才可能提高軟件產(chǎn)品的質(zhì)量。 </p><p><b> ?。?)測(cè)試的目的 </b></p><p> 如果測(cè)試的目的是為了盡可
108、能多地找出錯(cuò)誤,那么測(cè)試就應(yīng)該直接針對(duì)軟件比較復(fù)雜的部分或是以前出錯(cuò)比較多的位置。 </p><p> ?、?軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程; </p><p> ?、?測(cè)試是為了證明程序有錯(cuò),而不是證明程序無錯(cuò)誤; </p><p> ?、?一個(gè)好的測(cè)試用例是在于它能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯(cuò)誤; </p><p> ?、?一個(gè)成功的測(cè)試是
109、發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試。 </p><p> 這種觀點(diǎn)可以提醒人們測(cè)試要以查找錯(cuò)誤為中心,而不是為了演示軟件的正確功能。但是僅憑字面意思理解這一觀點(diǎn)可能會(huì)產(chǎn)生誤導(dǎo),認(rèn)為發(fā)現(xiàn)錯(cuò)誤是軟件測(cè)試的唯一目,查找不出錯(cuò)誤的測(cè)試就是沒有價(jià)值的,事實(shí)并非如此。 </p><p> 首先,測(cè)試并不僅僅是為了要找出錯(cuò)誤。通過分析錯(cuò)誤產(chǎn)生的原因和錯(cuò)誤的分布特征,可以幫助項(xiàng)目管理者發(fā)現(xiàn)當(dāng)前所采用的軟件過
110、程的缺陷,以便改進(jìn)。同時(shí),這種分析也能幫助我們?cè)O(shè)計(jì)出有針對(duì)性地檢測(cè)方法,改善測(cè)試的有效性。其次,沒有發(fā)現(xiàn)錯(cuò)誤的測(cè)試也是有價(jià)值的,完整的測(cè)試是評(píng)定測(cè)試質(zhì)量的一種方法。</p><p> 6.2.2 測(cè)試的步驟</p><p> 與開發(fā)過程類似,測(cè)試過程也必須分步驟進(jìn)行,每個(gè)步驟在邏輯上是前一個(gè)步驟的繼續(xù)。大型軟件系統(tǒng)通常由若干個(gè)子系統(tǒng)組成,每個(gè)子系統(tǒng)又由若干個(gè)模塊組成。因此,大型軟件系統(tǒng)
111、的測(cè)試基本上由下述幾個(gè)步驟組成:</p><p> ?。?)模塊測(cè)試 在這個(gè)測(cè)試步驟中所發(fā)現(xiàn)的往往是編碼和詳細(xì)設(shè)計(jì)的錯(cuò)誤。</p><p> ?。?)系統(tǒng)測(cè)試 在這個(gè)測(cè)試步驟中發(fā)現(xiàn)的往往是軟件設(shè)計(jì)中的錯(cuò)誤,也可能發(fā)現(xiàn)需求說明中的錯(cuò)誤。</p><p> (3)驗(yàn)收測(cè)試 在這個(gè)測(cè)試步驟中發(fā)現(xiàn)的往往是系統(tǒng)需求說明書中的錯(cuò)誤。</p><p>
112、 6.2.3 測(cè)試的主要內(nèi)容</p><p> 為了保證測(cè)試的質(zhì)量,將測(cè)試過程分成幾個(gè)階段,即:代碼審查、單元測(cè)試、集成測(cè)試、確認(rèn)測(cè)試和系統(tǒng)測(cè)試。 </p><p><b> ?。?)單元測(cè)試 </b></p><p> 單元測(cè)試集中在檢查軟件設(shè)計(jì)的最小單位—模塊上,通過測(cè)試發(fā)現(xiàn)實(shí)現(xiàn)該模塊的實(shí)際功能與定義該模塊的功能說明不符合的情況,以及編
113、碼的錯(cuò)誤。 </p><p><b> ?。?)集成測(cè)試 </b></p><p> 集成測(cè)試是將模塊按照設(shè)計(jì)要求組裝起來同時(shí)進(jìn)行測(cè)試,主要目標(biāo)是發(fā)現(xiàn)與接口有關(guān)的問題。如一個(gè)模塊與另一個(gè)模塊可能有由于疏忽的問題而造成有害影響;把子功能組合起來可能不產(chǎn)生預(yù)期的主功能;個(gè)別看起來是可以接受的誤差可能積累到不能接受的程度;全程數(shù)據(jù)結(jié)構(gòu)可能有錯(cuò)誤等。 </p>
114、<p><b> ?。?)確認(rèn)測(cè)試 </b></p><p> 確認(rèn)測(cè)試的目的是向未來的用戶表明系統(tǒng)能夠像預(yù)定要求那樣工作。經(jīng)集成測(cè)試后,已經(jīng)按照設(shè)計(jì)把所有的模塊組裝成一個(gè)完整的軟件系統(tǒng),接口錯(cuò)誤也已經(jīng)基本排除了,接著就應(yīng)該進(jìn)一步驗(yàn)證軟件的有效性,這就是確認(rèn)測(cè)試的任務(wù),即軟件的功能和性能如同用戶所合理期待的那樣。 </p><p><b>
115、(4)系統(tǒng)測(cè)試 </b></p><p> 軟件開發(fā)完成以后,最終還要與系統(tǒng)中其他部分配套運(yùn)行,進(jìn)行系統(tǒng)測(cè)試。包括恢復(fù)測(cè)試、安全測(cè)試、強(qiáng)度測(cè)試和性能測(cè)試等。 </p><p> 單獨(dú)對(duì)系統(tǒng)的測(cè)試主要從以下幾方面入手:</p><p> ?、?功能測(cè)試:測(cè)試是否滿足開發(fā)要求,是否提供設(shè)計(jì)所描述的功能,是否用戶的需求都得到滿足。功能測(cè)試是系統(tǒng)測(cè)試最常用和
116、必須的測(cè)試,通常還會(huì)以正式的軟件說明書為測(cè)試標(biāo)準(zhǔn)。</p><p> ② 強(qiáng)度測(cè)試及性能測(cè)試:測(cè)試系統(tǒng)能力最高實(shí)際限度,即軟件在一些超負(fù)荷情況下功能實(shí)現(xiàn)的情況。</p><p> ?、?安全測(cè)試:驗(yàn)證安裝在系統(tǒng)內(nèi)的保護(hù)機(jī)構(gòu)確實(shí)能夠?qū)ο到y(tǒng)進(jìn)行保護(hù),使之不受各種非常的干擾。針對(duì)本系統(tǒng)主要是對(duì)權(quán)限系統(tǒng)的測(cè)試和對(duì)無效數(shù)據(jù)、錯(cuò)數(shù)據(jù)、和非法數(shù)據(jù)干擾的能力的測(cè)試。</p><p&g
117、t; 經(jīng)過上述的測(cè)試過程對(duì)軟件進(jìn)行測(cè)試后,軟件基本滿足開發(fā)的要求,測(cè)試宣告結(jié)束。 </p><p><b> 結(jié)束語</b></p><p> 本文通過本系統(tǒng)設(shè)計(jì)與開發(fā),從而得出下列結(jié)論: </p><p> (1)學(xué)習(xí)一門新技術(shù),最重要的是實(shí)踐,只有多動(dòng)手才能盡快掌握它。</p><p> (2)一個(gè)系
118、統(tǒng)的開發(fā),經(jīng)驗(yàn)是最重要的,經(jīng)驗(yàn)不足,就難免會(huì)有許多考慮不周之處。</p><p> ?。?)要想吸引更多的用戶,系統(tǒng)的界面必須要美觀、有特色、友好,功能要健全。不過由于經(jīng)驗(yàn)不足,我設(shè)計(jì)的圖形界面比較簡(jiǎn)單。只是對(duì)基本功能進(jìn)行了開發(fā)。</p><p> (4)本次開發(fā),我參考了很多本系統(tǒng)的例子,吸取了一些別的本系統(tǒng)的長(zhǎng)處,對(duì)自己的畢業(yè)設(shè)計(jì)進(jìn)行了完善,但是還有很多的不足之處,有待以后進(jìn)一步學(xué)習(xí)
119、。</p><p> 實(shí)踐證明,本系統(tǒng)有著很好的發(fā)展前景,經(jīng)測(cè)試運(yùn)行。本文所制作的系統(tǒng)界面友好、使用靈活、操作簡(jiǎn)單、功能齊全、表現(xiàn)方式獨(dú)特,已基本具備了成熟的技術(shù)理論。</p><p> 由于時(shí)間倉(cāng)促,本次設(shè)計(jì)由我完成本系統(tǒng)的制作,對(duì)我這樣一個(gè)JSP新手而言所制作的模塊還有不完善的地方。數(shù)據(jù)庫(kù)的設(shè)計(jì)也比較簡(jiǎn)單。還有很多畢業(yè)設(shè)計(jì)中用到JSP語言的知識(shí)也不夠全面,還有很多地方不能夠作到完全
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 269jsp 物流中心倉(cāng)儲(chǔ)信息管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)sqlserver
- 基于JSP的企業(yè)產(chǎn)品材料數(shù)據(jù)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于MVC和ExtJS的產(chǎn)品管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 運(yùn)動(dòng)產(chǎn)品管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 老鄉(xiāng)雞產(chǎn)品管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn).pdf
- 統(tǒng)一產(chǎn)品管理系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn).pdf
- 家電企業(yè)客戶服務(wù)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于.net和sqlserver的鋼瓶管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- PRM系統(tǒng)中產(chǎn)品管理子系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 圣勞倫斯生物產(chǎn)品管理系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn).pdf
- 基于J2EE和SQLServer的客戶存款系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- jsp企業(yè)快信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- jsp企業(yè)快信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 上饒聯(lián)通客戶維系禮品管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 雙合焊機(jī)產(chǎn)品管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于條碼技術(shù)的產(chǎn)品管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于JSP實(shí)現(xiàn)的體育用品管理系統(tǒng).pdf
- 基于.net平臺(tái)的液晶產(chǎn)品管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 債權(quán)交易系統(tǒng)產(chǎn)品管理模塊的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 農(nóng)信社客戶服務(wù)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
評(píng)論
0/150
提交評(píng)論