

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 摘 要</b></p><p> 本論文論述的是一個(gè)簡(jiǎn)化的Web應(yīng)用程序模型,是一個(gè)B/S結(jié)構(gòu)的 JSP+Javabean+SQL Server2000的應(yīng)用。主要介紹了采用的JSP技術(shù)和JAVABEAN技術(shù)結(jié)合的特點(diǎn),系統(tǒng)功能非常的完善,而且選擇開(kāi)放的應(yīng)用平臺(tái),建設(shè)了一套與平臺(tái)無(wú)關(guān),以統(tǒng)一的服務(wù)接口規(guī)范和與數(shù)據(jù)庫(kù)相連的網(wǎng)站應(yīng)用。以及怎樣使Web程序設(shè)
2、計(jì)模塊化和面向?qū)ο蠡?,即將表現(xiàn)和邏輯剝離。還介紹了采用的編程模型和特點(diǎn)。JSP技術(shù)以其獨(dú)特的優(yōu)勢(shì)成為開(kāi)發(fā)網(wǎng)站系統(tǒng)的首選工具,論文中以一種簡(jiǎn)化的方式介紹了JSP開(kāi)發(fā)網(wǎng)站系統(tǒng)的方法和特點(diǎn),即使用JBUILDER開(kāi)發(fā)工具,使用本機(jī)做服務(wù)器模擬實(shí)現(xiàn)客戶端登錄,最終能夠?qū)崿F(xiàn)客戶端的所有操作。由于JSP具有一次編寫(xiě),各處運(yùn)行、豐富而且高質(zhì)量的工具支持、通過(guò)構(gòu)件和標(biāo)簽實(shí)現(xiàn)重用、通過(guò)指令和標(biāo)簽庫(kù)增強(qiáng)與面開(kāi)發(fā)能力等優(yōu)點(diǎn),開(kāi)發(fā)的系統(tǒng)可以在任何平臺(tái)上編寫(xiě)、運(yùn)
3、行在任意平臺(tái)上的JAVA服務(wù)器構(gòu)件。</p><p><b> 關(guān)鍵字:</b></p><p> JavaBeans;JAVA;JSP</p><p><b> Abstract</b></p><p> This what thesis discuss is the Web applic
4、ation of a simplification procedure model, is a B/ S the construction's JSP+ Javabean+ SQL Server2000application.</p><p> Primarilyintroduced the adoption's JSP technique with the JAVABEAN technique
5、 characteristics, system function that join together very of perfect, and applied terrace, developments that open of choice an electronic commerce application for and terraceirrelevantly, with united service connecting f
6、irst norm with with database connect with each othering.And how make the Web procedure the design the molderation piece the with face to the objective , will soon express with the logic removal.Still int</p><
7、p><b> Key: </b></p><p> JavaBeans;JAVA;JSP</p><p><b> 目 錄</b></p><p><b> 摘 要I</b></p><p> AbstractII</p><p>
8、;<b> 第1章 緒論1</b></p><p><b> 1.1問(wèn)題提出1</b></p><p> 1.2文本研究(軟件開(kāi)發(fā))的整體框架1</p><p> 1.3 研究(軟件開(kāi)發(fā))的內(nèi)容和意義2</p><p> 第2章軟件開(kāi)發(fā)平臺(tái)分析3</p><
9、p> 2.1 課題的可行性分析3</p><p> 2.2 可行性分析3</p><p> 2.2.1 JAVA的特點(diǎn)3</p><p> 2.2.2 技術(shù)可行性分析4</p><p> 2.2.3可靠性和安全性特點(diǎn)4</p><p> 2.3 JSP技術(shù)介紹5</p>&
10、lt;p> 2.3.1 什么是JSP5</p><p> 2.3.2 JSP技術(shù)特點(diǎn)5</p><p> 2.3.3 JSP開(kāi)發(fā)WEB的幾種方式6</p><p> 2.4 JAVABEAN技術(shù)介紹7</p><p> 2.4.1 什么是JAVABEAN7</p><p> 2.4.2 JA
11、VABEAN的特點(diǎn)8</p><p> 2.5 JDBC技術(shù)8</p><p> 2.5.1 JDBC簡(jiǎn)介8</p><p> 2.5.2 JDBC類定義8</p><p> 第3章軟件需求分析10</p><p> 3.1功能需求10</p><p> 3.1.1功能
12、劃分10</p><p> 3.1.2功能描述10</p><p> 3.2外部接口需求10</p><p> 3.2.1用戶界面10</p><p> 3.2.2軟件接口11</p><p> 3.2.3通訊接口11</p><p> 3.2.4故障處理11</
13、p><p> 3.3性能需求11</p><p> 3.3.1時(shí)間特性11</p><p> 3.3.2適應(yīng)性11</p><p> 3.4軟件屬性需求12</p><p> 3.4.1正確性12</p><p> 3.4.2可靠性12</p><p>
14、; 3.4.3效率12</p><p> 3.4.4完整性12</p><p> 3.4.5易實(shí)用性12</p><p> 3.4.6可維護(hù)性12</p><p> 3.4.7可測(cè)試性12</p><p> 3.4.8復(fù)用性13</p><p> 3.4.9安全保密性
15、13</p><p> 3.4.10可移植性13</p><p> 第4章軟件概要設(shè)計(jì)14</p><p> 4.1總體設(shè)計(jì)14</p><p> 4.1.1處理流程14</p><p> 4.1.2總體結(jié)構(gòu)與模塊外部設(shè)計(jì)14</p><p> 4.1.3功能分配14&
16、lt;/p><p> 4.2接口設(shè)計(jì)15</p><p> 4.2.1外部接口15</p><p> 4.2.2內(nèi)部接口15</p><p> 4.3出錯(cuò)處理設(shè)計(jì)15</p><p> 4.3.1出錯(cuò)輸出信息15</p><p> 4.3.2出錯(cuò)處理對(duì)策15</p>
17、;<p> 4.4安全保密設(shè)計(jì)16</p><p> 4.5維護(hù)設(shè)計(jì)16</p><p> 第5章軟件詳細(xì)設(shè)計(jì)17</p><p> 5.1程序設(shè)計(jì)說(shuō)明17</p><p> 5.1.1總體設(shè)計(jì)17</p><p> 5.1.2功能模塊描述17</p><p&
18、gt; 第6章編碼與測(cè)試24</p><p> 6.1特色代碼24</p><p> 6.1.1 系統(tǒng)JSP程序部分24</p><p> 6.1.2系統(tǒng)javabean程序部分36</p><p><b> 第7章安裝43</b></p><p> 7.1服務(wù)器的安裝
19、43</p><p> 7.2 web server 安裝過(guò)程43</p><p> 7.3 DB系統(tǒng)安裝44</p><p><b> 結(jié)論45</b></p><p><b> 參考文獻(xiàn)46</b></p><p><b> 第1章 緒論<
20、;/b></p><p><b> 1.1問(wèn)題提出</b></p><p> 網(wǎng)站是通過(guò)電子信息技術(shù)、網(wǎng)絡(luò)互聯(lián)技術(shù)和現(xiàn)代通訊技術(shù),使得交易涉及的各方當(dāng)事人借助電子方式聯(lián)系,實(shí)現(xiàn)整個(gè)交易的電子化。由于信息技術(shù)的逐漸完善和網(wǎng)絡(luò)貿(mào)易的日益發(fā)展,網(wǎng)站應(yīng)運(yùn)而生。自其產(chǎn)生之日起,就一直被人們所重視,并不斷發(fā)展完善,將逐漸成為網(wǎng)絡(luò)貿(mào)易發(fā)展的重要形式,具其發(fā)展趨勢(shì)表明它將成
21、為未來(lái)網(wǎng)絡(luò)貿(mào)易等交流領(lǐng)域唯一的方式。</p><p> 對(duì)于網(wǎng)站除了選取有優(yōu)勢(shì)的語(yǔ)言和開(kāi)發(fā)工具外,還有如網(wǎng)絡(luò)基礎(chǔ)設(shè)施、支付手段、安全認(rèn)證、電子物流配送等諸多問(wèn)題。雖然當(dāng)今開(kāi)發(fā)網(wǎng)站系統(tǒng)的開(kāi)發(fā)工具很多,但是如何開(kāi)發(fā)出一種同時(shí)具有耗費(fèi)系統(tǒng)較少資源、具有較快的運(yùn)行速度、較高的安全性、低成本的系統(tǒng)成了問(wèn)題的關(guān)鍵。用JSP開(kāi)發(fā)的網(wǎng)站系統(tǒng)無(wú)疑具有眾多優(yōu)點(diǎn),因此本系統(tǒng)就是一個(gè)高性能的網(wǎng)站系統(tǒng)雛形,經(jīng)過(guò)擴(kuò)展和優(yōu)化即可以用做商務(wù)用
22、途。</p><p> 1.2文本研究(軟件開(kāi)發(fā))的整體框架</p><p> 該網(wǎng)站系統(tǒng)應(yīng)用了JAVA領(lǐng)域中的JSP技術(shù)、JDBC和JAVABEAN等技術(shù)。該網(wǎng)站系統(tǒng)具有一個(gè)完整網(wǎng)站系統(tǒng)的基本功能。該系統(tǒng)對(duì)應(yīng)一個(gè)WEB應(yīng)用系統(tǒng)的3個(gè)層次,使用了JAVA平臺(tái)分別提供的不同的技術(shù)支持,這些技術(shù)同其他WEB技術(shù)結(jié)合共同實(shí)現(xiàn)完整的JAVA WEB技術(shù)平臺(tái)。</p><p&
23、gt; 在瀏覽器一端,支持標(biāo)準(zhǔn)的基于HTML/HTTP協(xié)議的瀏覽器作為前端,通過(guò)XML還可以支持更加豐富的瀏覽器前端系統(tǒng),如WAP設(shè)備。對(duì)于瀏覽器端的編程開(kāi)發(fā),則可以使用JAVASCRIPT腳本語(yǔ)言,對(duì)于復(fù)雜的客戶端程序還可以通過(guò)JAVA APPLET實(shí)現(xiàn)。</p><p> 在WEB服務(wù)器上,JAVA通過(guò)SERVLET、JSP、JAVABEAN、TAGLIB以及XML技術(shù)提供了充分的動(dòng)態(tài)WEB應(yīng)用開(kāi)發(fā)功能。
24、</p><p> 在后臺(tái)系統(tǒng)的連接(如數(shù)據(jù)庫(kù))方面,則可以通過(guò)JDBC等技術(shù)實(shí)現(xiàn)連接。</p><p> 整個(gè)技術(shù)體制建立在J2SE平臺(tái)基礎(chǔ)之上,既JAVA 2標(biāo)準(zhǔn)環(huán)境。也就是說(shuō),在使用JAVA技術(shù)開(kāi)發(fā)WEB應(yīng)用程序的過(guò)程中,可以充分使用J2SE平臺(tái)提供的平臺(tái)支持,J2SE包括了豐富的基本應(yīng)用功能支持和類庫(kù),如圖形處理、復(fù)雜數(shù)據(jù)類型等等,這就使得當(dāng)使用JSP/SERVLET等技術(shù)開(kāi)發(fā)
25、動(dòng)態(tài)WEB程序時(shí)可以充分利用J2SE類庫(kù)提供的功能支持,實(shí)現(xiàn)所需的復(fù)雜功能,禰補(bǔ)基本語(yǔ)言功能的不足。</p><p> 該網(wǎng)站系統(tǒng)運(yùn)用了上述框架中的一部分技術(shù),既IE瀏覽器、JSP、JAVABEAN、JDBC等基礎(chǔ)技術(shù),用JBULIDER開(kāi)發(fā)工具,TOMCAT4.0作為服務(wù)器,在WINDOWS2000系統(tǒng)中運(yùn)行,配置了本地服務(wù)器進(jìn)行本機(jī)訪問(wèn),能夠?qū)崿F(xiàn)基本的操作功能,如果有網(wǎng)絡(luò)環(huán)境,能夠在發(fā)布到網(wǎng)絡(luò)上訪問(wèn)運(yùn)行。&
26、lt;/p><p> 1.3 研究(軟件開(kāi)發(fā))的內(nèi)容和意義</p><p> 該系統(tǒng)實(shí)現(xiàn)了一個(gè)網(wǎng)上圖書(shū)超市,其包含了一個(gè)網(wǎng)上BtoC銷售系統(tǒng)的WEB前臺(tái)和后臺(tái)所需的所有核心功能:軟件分類、軟件列表、軟件內(nèi)容介紹、會(huì)員登錄、購(gòu)物推車、會(huì)員注冊(cè)、發(fā)送郵件、留言板、書(shū)籍查詢、以及一個(gè)示意性的定單提交功能。系統(tǒng)運(yùn)用了JSP與JAVABEAN技術(shù)相結(jié)合,使程序更加模塊化。雖然該系統(tǒng)的功能相對(duì)來(lái)說(shuō)比較
27、簡(jiǎn)單,但是具備了一個(gè)網(wǎng)站系統(tǒng)的基本流程,體現(xiàn)了一個(gè)網(wǎng)站系統(tǒng)的基礎(chǔ)模型。經(jīng)過(guò)一些擴(kuò)展和優(yōu)化能夠適合一些企業(yè)作為商業(yè)用途的網(wǎng)站。</p><p> 網(wǎng)站應(yīng)用后的經(jīng)濟(jì)效益是可觀的。其應(yīng)用發(fā)展的趨勢(shì)也是不可低估的。它的未來(lái)必將更加完善,并更好地為我國(guó)的各個(gè)商務(wù)領(lǐng)域服務(wù)。</p><p><b> 軟件開(kāi)發(fā)平臺(tái)分析</b></p><p> 2.1
28、 課題的可行性分析</p><p> 隨著計(jì)算機(jī)網(wǎng)絡(luò)和通訊技術(shù)的飛快發(fā)展,特別是Internet的普及應(yīng)用,人們傳統(tǒng)的行為、觀念和管理模式正在經(jīng)受著強(qiáng)烈的沖擊。Internet以其開(kāi)放性、先進(jìn)性、方便性和低成本的優(yōu)勢(shì)迅速向世界各個(gè)角落延伸,引起了一場(chǎng)新技術(shù)的革命和社會(huì)生活方式的變革。而基于Internet技術(shù)的網(wǎng)站,則是Internet帶給人類社會(huì)的新的經(jīng)濟(jì)模式與管理手段,它打破了傳統(tǒng)媒體在時(shí)間、空間等方面的
29、限制,通過(guò)網(wǎng)絡(luò)提供全時(shí)(7X24小時(shí))、全方位(企業(yè)內(nèi)部、相關(guān)部門、社會(huì)公眾等)的服務(wù)。</p><p> 信息技術(shù)的快速發(fā)展,為網(wǎng)站系統(tǒng)盡快實(shí)現(xiàn)網(wǎng)上商務(wù)交流提供了有力支撐。隨著技術(shù)水平的提高,建設(shè)統(tǒng)一的商務(wù)平臺(tái),整合各業(yè)務(wù)系統(tǒng),建立各商務(wù)部門的商務(wù)信息,實(shí)現(xiàn)信息共享、網(wǎng)上商務(wù)交流,是深入開(kāi)展信息化應(yīng)用的必然要求。經(jīng)過(guò)充分調(diào)研論證,我決定參考原有的商務(wù)系統(tǒng),開(kāi)發(fā)網(wǎng)站系統(tǒng)——山東新世紀(jì)網(wǎng)站。</p>
30、<p> 我的課題《學(xué)深網(wǎng)上圖書(shū)超市》,是一個(gè)B/S結(jié)構(gòu)的 JSP+SQL Server2000的應(yīng)用。采用技術(shù)成熟的三層結(jié)構(gòu)體系。按照不同的功能來(lái)劃分,降低系統(tǒng)模塊與模塊之間的耦合性,提高不同模塊的獨(dú)立性,從而保證了系統(tǒng)的穩(wěn)定性、安全性、可擴(kuò)展性和可移植性。</p><p><b> 2.2 可行性分析</b></p><p> 2.2.1 J
31、AVA的特點(diǎn)</p><p> Java是全新的計(jì)算機(jī)技術(shù),它是建立在基于強(qiáng)大的網(wǎng)絡(luò)和同樣的軟件應(yīng)該在不同的計(jì)算機(jī)系統(tǒng)上運(yùn)行的思想上的。這些計(jì)算機(jī)系統(tǒng)包括消費(fèi)型器件和其他一些設(shè)備。利用Java技術(shù),您能令人信服的讓同一種應(yīng)用在各種各樣機(jī)器如:PC、Macintosh系統(tǒng)、計(jì)算機(jī)網(wǎng)絡(luò)或者像Internet可視電話一樣的新技術(shù)上運(yùn)行。</p><p> Java可以既可以看作是一種真正的程
32、序設(shè)計(jì)語(yǔ)言,也可以看作是一個(gè)完整的平臺(tái)。作為一種程序語(yǔ)言,它簡(jiǎn)潔、面向?qū)ο蟆踩?、健壯以及適用于Internet技術(shù)。而作為一個(gè)平臺(tái),它通過(guò)那些符合Sun公司發(fā)布的標(biāo)準(zhǔn)APIs 開(kāi)發(fā)的應(yīng)用,在操作系統(tǒng)、數(shù)據(jù)庫(kù)、中間件和其他第三方廠商提供的服務(wù)。</p><p> 2.2.2 技術(shù)可行性分析</p><p> 根據(jù)系統(tǒng)目標(biāo)來(lái)衡量所需的技術(shù)是否具備,從硬件、軟件的性能要求、環(huán)境條件等方面去
33、考慮和分析?!毒W(wǎng)站系統(tǒng)——學(xué)深網(wǎng)絡(luò)書(shū)店》是采用B/S結(jié)構(gòu)的JSP+SQL Server 2000的應(yīng)用。</p><p> B/S是Brower/Server的縮寫(xiě),客戶機(jī)上只要安裝一個(gè)瀏覽器(Browser),如Netscape Navigator或Internet Explorer,服務(wù)器安裝Oracle、Sybase、Informix或 SQL Server等數(shù)據(jù)庫(kù)。瀏覽器通過(guò)Web Server 同數(shù)據(jù)
34、庫(kù)進(jìn)行數(shù)據(jù)交互。</p><p> B/S最大的優(yōu)點(diǎn)就是可以在任何地方進(jìn)行操作而不用安裝任何專門的軟件。只要有一臺(tái)能上網(wǎng)的電腦就能使用,客戶端零維護(hù)。系統(tǒng)的擴(kuò)展非常容易,只要能上網(wǎng),再由系統(tǒng)管理員分配一個(gè)用戶名和密碼,就可以使用了。甚至可以在線申請(qǐng),通過(guò)公司內(nèi)部的安全認(rèn)證后,不需要人的參與,系統(tǒng)可以自動(dòng)分配給用戶一個(gè)賬號(hào)進(jìn)入系統(tǒng)。</p><p> 客戶端實(shí)現(xiàn)與服務(wù)器的直接相連,沒(méi)有中
35、間環(huán)節(jié),因此響應(yīng)速度快。客戶操作界面設(shè)計(jì)個(gè)性化,具有直觀、簡(jiǎn)單、方便的特點(diǎn),可以滿足客戶個(gè)性化的操作要求。同時(shí)由于開(kāi)發(fā)是針對(duì)性的,因此,操作界面漂亮、形式多樣,可以充分滿足客戶自身的個(gè)性化要求。</p><p> B/S與C/S處理模式相比,則大大簡(jiǎn)化了客戶端,只要客戶端機(jī)器能上網(wǎng)就可以。對(duì)于B/S而言,開(kāi)發(fā)、維護(hù)等幾乎所有工作也都集中在服務(wù)器端,當(dāng)企業(yè)對(duì)網(wǎng)絡(luò)應(yīng)用進(jìn)行升級(jí)時(shí),只需更新服務(wù)器端的軟件就可以,這減輕
36、了異地用戶系統(tǒng)維護(hù)與升級(jí)的成本。如果客戶端的軟件系統(tǒng)升級(jí)比較頻繁,那么B/S架構(gòu)的產(chǎn)品優(yōu)勢(shì)明顯——所有的升級(jí)操作只需要針對(duì)服務(wù)器進(jìn)行。 </p><p> 2.2.3可靠性和安全性特點(diǎn)</p><p> Java最初設(shè)計(jì)目的是應(yīng)用于電子類消費(fèi)產(chǎn)品因此要求較高的可靠性。Java雖然源于C++,但它消除了許多C++不可靠因素,可以防止許多編程錯(cuò) 誤。首先,Java是強(qiáng)類型的語(yǔ)言,要求顯式的
37、方法聲明,這保證了編譯器可以發(fā)現(xiàn)方法調(diào)用錯(cuò)誤,保證程序更加可靠;其次,Java不支持指針,這杜絕了內(nèi)存的非法訪問(wèn);第三,Java的自動(dòng)單元收集防止了內(nèi)存丟失動(dòng)態(tài) 內(nèi)存分配導(dǎo)致的問(wèn)題;第四,Java解釋器運(yùn)行時(shí)實(shí)施檢查,可以發(fā)現(xiàn)數(shù)組和字符串訪問(wèn)的越界,最后,Java 提供了異常處理機(jī)制,程序員可以把一 組錯(cuò)誤代碼放在一個(gè)地方,這樣可以簡(jiǎn)化錯(cuò)誤處理任務(wù)便于恢復(fù)。 </p><p> 由于Java 主要用于網(wǎng)絡(luò)應(yīng)用程
38、序開(kāi)發(fā),因此對(duì)安全性有較高的要求。 如果沒(méi)有安全保證,用戶從網(wǎng)絡(luò)下載程序執(zhí)行就非常危險(xiǎn)。Java 通過(guò)自己 的安全機(jī)制防止了病毒程序的產(chǎn)生和下載程序?qū)Ρ镜叵到y(tǒng)的威脅破壞。當(dāng)Java 字節(jié)碼進(jìn)入解釋器時(shí),首先必須經(jīng)過(guò)字節(jié)碼校驗(yàn)器的檢查,然后,Java 解釋器將決定程序中類的內(nèi)存布局,隨后,類裝載器負(fù)責(zé)把來(lái)自網(wǎng)絡(luò)的類 裝載到單獨(dú)的內(nèi)存區(qū)域,避免應(yīng)用程序之間相互干擾破壞。最后,客戶端用戶還可以限制從網(wǎng)絡(luò)上裝載的類只能訪問(wèn)某些文件系統(tǒng)。上述幾種
39、機(jī)制 結(jié)合起來(lái),使得Java 成為安全的編程語(yǔ)言。</p><p> 2.3 JSP技術(shù)介紹</p><p> 2.3.1 什么是JSP</p><p> JSP(IAVA SERVER PAGES)是由Sun 公司在java語(yǔ)言上開(kāi)發(fā)出來(lái)的一種動(dòng)態(tài)網(wǎng)頁(yè)制作技術(shù),其可使您可以將網(wǎng)頁(yè)中的動(dòng)態(tài)部分和靜態(tài)的HTML相分離</p><p>
40、2.3.2 JSP技術(shù)特點(diǎn)</p><p> 按照腳本語(yǔ)言是服務(wù)于某一個(gè)子系統(tǒng)的語(yǔ)言這種論述, J S P應(yīng)當(dāng)被看作是一種腳本語(yǔ)言,然而,作為一種腳本語(yǔ)言, J S P又顯得過(guò)于強(qiáng)大了,在J S P中幾乎可以使用全部的J a v a類。作為一種基于文本的、以顯示為中心的開(kāi)發(fā)技術(shù),J S P提供了Java Servlet 的所有好處,并且,當(dāng)與一個(gè)JavaBeans 類結(jié)合在一起時(shí),提供了一種使內(nèi)容和顯示邏輯分開(kāi)
41、的簡(jiǎn)單方式。分開(kāi)內(nèi)容和顯示邏輯的好處是,更新頁(yè)面外觀的人員不必懂得Java 代碼,而更新J a v a B e a n s類的人員也不必是設(shè)計(jì)網(wǎng)頁(yè)的行家里手,就可以用帶JavaBeans 類的JSP 頁(yè)面來(lái)定義Web 模板,以建立一個(gè)由具有相似的外觀的頁(yè)面組成的網(wǎng)站。JavaBeans 類完成數(shù)據(jù)提供,這樣在模板中就沒(méi)有Java 代碼,這意味著這些模板可以由一個(gè)HTML 編寫(xiě)人員來(lái)維護(hù)。當(dāng)然,也可以利用Java Servlet來(lái)控制網(wǎng)站
42、的邏輯,通過(guò)Java Servlet調(diào)用J S P文件的方式來(lái)將網(wǎng)站的邏輯和內(nèi)容分離。這種分離網(wǎng)站的邏輯和內(nèi)容的設(shè)計(jì)方法做一些更深入的描述。在選擇使用一個(gè)Java Servlet,還是一個(gè)JS</p><p> 在J S P文件轉(zhuǎn)譯為S e r v l e t以后,每次客戶機(jī)(通常是用戶的We b瀏覽器)向服務(wù)器請(qǐng)求這一個(gè)J S P文件的時(shí)候,服務(wù)器將檢查自上次編譯后J S P文件是否有改變,如果沒(méi)有改變,就直
43、接執(zhí)行S e r v l e t,而不用再重新編譯,其效率是相當(dāng)高的。一般來(lái)說(shuō), J S P文件的編譯是在第一個(gè)用戶訪問(wèn)到這個(gè)J S P頁(yè)面時(shí)發(fā)生,而這第一個(gè)用戶通常是開(kāi)發(fā)人員自己,這樣,正式放在服務(wù)器上讓用戶訪問(wèn)的J S P文件一般都已經(jīng)有了對(duì)應(yīng)的編譯好的S e r v l e t了。許多服務(wù)器都有設(shè)置,可以使J S P文件在第一個(gè)用戶訪問(wèn)之前就預(yù)先編譯好,這樣看來(lái),效率就更高了。</p><p> 在J S
44、 P規(guī)范書(shū)中,并沒(méi)有明確要求J S P中的程序代碼部分(稱為S c r i p t l e t)一定要用J a v a來(lái)寫(xiě),實(shí)際上,有一些J S P引擎就是采用的其他腳本語(yǔ)言,如:E M A C - S c r i p t、We b L等等,但實(shí)際上這幾</p><p> 種腳本語(yǔ)言也是構(gòu)建在J a v a上面,編譯為S e r v l e t來(lái)實(shí)現(xiàn)的。按照J(rèn) S P規(guī)范書(shū),完全和J a v a沒(méi)有任何關(guān)系的S
45、 c r i p t l e t也是可以的,不過(guò),由于J S P的強(qiáng)大功能主要在于能和J a v a B e a n s、Enterprise JavaBeans一起工作,所以即使是Scriptlet部分不使用Java,編譯成的執(zhí)行代碼也應(yīng)該是與Java相關(guān)的</p><p> 2.3.3 JSP開(kāi)發(fā)WEB的幾種方式</p><p> J S P作為J 2 E E的一部分,既可以用于開(kāi)
46、發(fā)小型的We b站點(diǎn)、也可以用于開(kāi)發(fā)大型的、企業(yè)級(jí)</p><p> 的應(yīng)用程序,本節(jié)將講述對(duì)于不同規(guī)模的We b系統(tǒng),使用J S P進(jìn)行開(kāi)發(fā)的不同方式。</p><p> ?。?) 直接使用J S P</p><p> 對(duì)于最小型的We b站點(diǎn),可以直接使用J S P來(lái)構(gòu)建動(dòng)態(tài)網(wǎng)頁(yè),這種站點(diǎn)最為簡(jiǎn)單,所需要的僅僅是簡(jiǎn)單的留言板、動(dòng)態(tài)日期等基本的功能。對(duì)于這種開(kāi)
47、發(fā)模式,一般可以將所有的動(dòng)態(tài)處理部分都放置在J S P的S c r i p t l e t中,就像一般使用P H P或A S P開(kāi)發(fā)動(dòng)態(tài)網(wǎng)頁(yè)一樣。</p><p> (2) JSP+JavaBeans</p><p> 中型站點(diǎn)面對(duì)的是數(shù)據(jù)庫(kù)查詢、用戶管理和小量的商業(yè)業(yè)務(wù)邏輯。對(duì)于這種站點(diǎn),不能將所有的東西全部交給J S P頁(yè)面來(lái)處理。在單純的J S P中加入J a v a B e a
48、 n s技術(shù)將有助于這種中型網(wǎng)站</p><p> 的開(kāi)發(fā)。利用J a v a B e a n s,將很容易完成如數(shù)據(jù)庫(kù)連接、用戶登錄與注銷、商業(yè)業(yè)務(wù)邏輯封裝的任務(wù)。如:將常用的數(shù)據(jù)庫(kù)連接寫(xiě)為一個(gè)Java Beans,既方便了使用,又可以使J S P文件簡(jiǎn)單而清晰,通過(guò)封裝,還可以防止一般的開(kāi)發(fā)人員直接獲得數(shù)據(jù)庫(kù)的控制權(quán)。</p><p> ?。?)JSP+JavaBeans+Servl
49、et</p><p> 無(wú)論用A S P還是P H P開(kāi)發(fā)動(dòng)態(tài)網(wǎng)站,長(zhǎng)期以來(lái)都有一個(gè)比較重要的問(wèn)題,就是網(wǎng)站的邏輯關(guān)系和網(wǎng)站的顯示頁(yè)面不容易分開(kāi)。常??梢钥匆?jiàn)一些夾雜著i f . . . . . . t h e n . . . . . .、case select或是i f{ . . . . . . }和大量顯示用的H T M L代碼的A S P、P H P頁(yè)面,即使是有著良好的程序?qū)懽髁?xí)慣的程序員,其作品也幾乎
50、無(wú)法閱讀。另一方面,動(dòng)態(tài)We b的開(kāi)發(fā)人員也在抱怨,將網(wǎng)站美工設(shè)計(jì)的靜態(tài)頁(yè)面和動(dòng)態(tài)程序和并的過(guò)程是一個(gè)異常痛苦的過(guò)程。如何解決這個(gè)問(wèn)題呢?在J S P問(wèn)世以后, S e r v l e t已經(jīng)完全可以被J S P代替,然而,事實(shí)是S e r v l e t在不再擔(dān)負(fù)動(dòng)態(tài)頁(yè)面生成的任務(wù)以后,開(kāi)始擔(dān)負(fù)起決定整個(gè)網(wǎng)站邏輯流程的任務(wù)。在邏輯關(guān)系異常復(fù)雜的網(wǎng)站中,借助于S e r v l e t和J S P良好的交互關(guān)系和J a v a B e
51、a n s的協(xié)助,完全可以將網(wǎng)站的整個(gè)邏輯結(jié)構(gòu)放在S e r v l e t中,而將動(dòng)態(tài)頁(yè)面的輸出放在J S P頁(yè)面中來(lái)完成。在這種開(kāi)發(fā)方式中,一個(gè)網(wǎng)站可以有一個(gè)或幾個(gè)核</p><p> ?。?) J2EE開(kāi)發(fā)模型</p><p> 在J 2 E E開(kāi)發(fā)模型中,整個(gè)系統(tǒng)可以分為三個(gè)主要的部分:</p><p><b> 1. 視圖</b>
52、</p><p> 視圖就是用戶界面部分,在We b應(yīng)用程序中也就是H T M L、X M L、J S P頁(yè)面。這個(gè)部分主要處理用戶看到的東西,動(dòng)態(tài)的J S P部分處理了用戶可以看見(jiàn)的動(dòng)態(tài)網(wǎng)頁(yè),而靜態(tài)的網(wǎng)頁(yè)則由H T M L、X M L輸出。</p><p><b> 2. 控制器。</b></p><p> 控制器負(fù)責(zé)網(wǎng)站的整個(gè)邏輯。它
53、用于管理用戶與視圖發(fā)生的交互。可以將控制器想象成處在視圖和數(shù)據(jù)之間,對(duì)視圖如何與模型交互進(jìn)行管理。通過(guò)使視圖完全獨(dú)立于控制器和模型,就可以輕松替換前端客戶程序,就是說(shuō),網(wǎng)頁(yè)制作人員將可以獨(dú)立自由地改變We b頁(yè)面而不用擔(dān)</p><p> 心影響這個(gè)基于We b的應(yīng)用程序的功能。在J 2 E E中,控制器的功能一般是由S e r v l e t、J a v a B e a n s、Enterprise Java
54、Beans 中的S e s s i o n B e a n來(lái)?yè)?dān)當(dāng)?shù)摹?lt;/p><p><b> 3. 模型</b></p><p> 模型就是應(yīng)用業(yè)務(wù)邏輯部分,這一部分的主要角色是Enterprise JavaBeans,借助于E J B強(qiáng)大的組件技術(shù)和企業(yè)級(jí)的管理控制,開(kāi)發(fā)人員可以輕松形創(chuàng)建出可重用的業(yè)務(wù)邏輯模塊。</p><p> 2
55、.4 JAVABEAN技術(shù)介紹</p><p> 2.4.1 什么是JAVABEAN</p><p> JavaBean是描述Java的軟件組件模型,有點(diǎn)類似于Microsoft的COM組件概念。在Java模型中,通過(guò)JavaBean可以無(wú)限擴(kuò)充Java程序的功能,通過(guò)JavaBean的組合可以快速的生成新的應(yīng)用程序。對(duì)于程序員來(lái)說(shuō),最好的一點(diǎn)就是JavaBean可以實(shí)現(xiàn)代碼的重復(fù)利用
56、,另外對(duì)于程序的易維護(hù)性等等也有很重大的意義?! avaBean通過(guò)Java虛擬機(jī)(Java Virtual Machine)可以得到正確的執(zhí)行,運(yùn)行JavaBean最小的需求是JDK1.1或者以上的版本。 JavaBean傳統(tǒng)的應(yīng)用在于可視化的領(lǐng)域,如AWT下的應(yīng)用。自從Jsp誕生后,JavaBean更多的應(yīng)用在了非可視化領(lǐng)域,在服務(wù)器端應(yīng)用方面表現(xiàn)出來(lái)了越來(lái)越強(qiáng)的生命力。</p><p> 2.
57、4.2 JAVABEAN的特點(diǎn)</p><p> JavaBean 是與平臺(tái)無(wú)關(guān)的,所以對(duì)于將來(lái)的解決方案,供應(yīng)商可以輕易向不同用戶推出其客戶機(jī)方的 JavaBean,而不必創(chuàng)建或維護(hù)不同的版本。這些 JavaBean 可以與執(zhí)行商業(yè)功能(例如訂購(gòu)、信用卡處理、電子匯款、存貨分配、運(yùn)輸?shù)龋┑?EJB 配合使用。這里有巨大潛力,而這正是組件代理(WebSphere Application Server 企業(yè)版)設(shè)
58、計(jì)提供的那種潛力。 JavaBean 是一種組件,它在內(nèi)部有接口或有與其相關(guān)的屬性,以便不同人在不同時(shí)間開(kāi)發(fā)的 bean 可以詢問(wèn)和集成。可以構(gòu)建一個(gè) bean,而在以后構(gòu)造時(shí)將其與其它 bean 綁定。這種過(guò)程提供了先構(gòu)建,然后重復(fù)使用的方法,這就是組件的概念。可以將這種單一應(yīng)用程序部署成獨(dú)立程序、ActiveX 組件或在瀏覽器中。 JavaBean 因其外部接口(即屬性接口)而與純對(duì)象不同。這種接口允許工具讀取組件要執(zhí)行的
59、功能,將其與其它 bean 掛鉤,以及將其插入其它環(huán)境。JavaBean 設(shè)計(jì)成對(duì)單一進(jìn)程而言是本地的,它們?cè)谶\(yùn)行時(shí)通??梢?。這種可視組件可能是按鈕、列表框、圖形或圖表 - 但這不是必需的。</p><p> 2.5 JDBC技術(shù)</p><p> 2.5.1 JDBC簡(jiǎn)介</p><p> JDBC API由java編寫(xiě)的一組接口和類組成,為開(kāi)發(fā)者提供通過(guò)應(yīng)
60、用開(kāi)發(fā)訪問(wèn)數(shù)據(jù)庫(kù)的工具/接口。作為低端接口,JDBC需要直接使用SQL命令語(yǔ)句對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作。此外,通過(guò)JMS、EJB以及容器持續(xù)等方式,JDBC可以實(shí)現(xiàn)高層調(diào)用,即不直接通過(guò)SQL操作數(shù)據(jù)庫(kù)。 BEA提供兩種JDBC連接方式,即兩層方式和多次驅(qū)動(dòng)方式。所謂兩層方式即java應(yīng)用客戶端直接訪問(wèn)數(shù)據(jù)庫(kù),多層則通過(guò)jdbcpool、rmi-driver或者JTS實(shí)現(xiàn)。</p><p> 2.5.2 JDBC類定義
61、</p><p> 下面是在weblogic中常用的JDBC類: </p><p> JDBC 類描述 Driver每個(gè)驅(qū)動(dòng)程序包都必須提供,用于創(chuàng)建driver和database之間的連接,并提供數(shù)據(jù)庫(kù)連接相關(guān)信息。 </p><p> DataSource描述DBMS或其它數(shù)據(jù)源細(xì)節(jié),用于和數(shù)據(jù)源創(chuàng)建連接。 </p><p> S
62、tatement向數(shù)據(jù)庫(kù)系統(tǒng)發(fā)送簡(jiǎn)單的SQL語(yǔ)句。 </p><p> PreparedStatement繼承Statement,用于執(zhí)行pre-compiled SQL 語(yǔ)句。 </p><p> CallableStatement繼承PreparedStatement,用于對(duì)數(shù)據(jù)庫(kù)存儲(chǔ)過(guò)程進(jìn)行調(diào)用(可帶參數(shù))。 </p><p> ResultSet結(jié)果集
63、,包含SQL查詢語(yǔ)句執(zhí)行結(jié)果,提供結(jié)果查詢方法。 </p><p> ResultSetMetaData體統(tǒng)結(jié)果集中行列對(duì)象的類型、屬性等信息。 </p><p> DataBaseMetaData提供數(shù)據(jù)庫(kù)系統(tǒng)整體信息,返回單值或結(jié)果集。 </p><p> Clobsbuilt-in 類型, 在行中存儲(chǔ)列字符型大對(duì)象。 </p><p&
64、gt; Blobsbuilt-in 類型,在數(shù)據(jù)庫(kù)表中存儲(chǔ)列二進(jìn)制大對(duì)象。 </p><p> JDBC 2.0支持 </p><p> WebLogic Server使用JDK 1.3,支持JDBC 2.0。 </p><p><b> 平臺(tái)支持: </b></p><p> 具體平臺(tái)支持取決于不同數(shù)據(jù)庫(kù)廠商
65、提供的數(shù)據(jù)庫(kù)(DBMS)及其驅(qū)動(dòng)。</p><p><b> 軟件需求分析</b></p><p><b> 3.1功能需求</b></p><p><b> 3.1.1功能劃分</b></p><p> 該網(wǎng)上軟件超市雖然規(guī)模較小,但是應(yīng)該具備如下功能模塊:前端顯示的
66、JSP頁(yè)面應(yīng)有軟件分類目錄、軟件內(nèi)容介紹、會(huì)員登錄、會(huì)員注冊(cè)、留言板、幫助信息、以及一個(gè)示意性的定單提交功能。按照前臺(tái)與后臺(tái)的區(qū)別,還應(yīng)該細(xì)分為業(yè)務(wù)邏輯和表現(xiàn)邏輯。即前端的JSP頁(yè)面調(diào)用JAVABEAN來(lái)時(shí)間數(shù)據(jù)庫(kù)操作等功能。對(duì)于JAVABEAN部分,就因該表現(xiàn)業(yè)務(wù)實(shí)體的一些主要功能操作,例如增加、刪除和修改購(gòu)物信息、清空所有信息、登錄認(rèn)證、定單提交及一些存儲(chǔ)信息的數(shù)據(jù)實(shí)體。</p><p><b>
67、 3.1.2功能描述</b></p><p> 該網(wǎng)站系統(tǒng)首先對(duì)于為登錄會(huì)員允許進(jìn)行書(shū)籍瀏覽,可以查看軟件詳細(xì)內(nèi)容及圖片的顯示。如果想進(jìn)行商品購(gòu)買必須進(jìn)行登錄,如果沒(méi)有會(huì)員號(hào)和密碼,可以首先進(jìn)行注冊(cè),登錄后可以查看軟件分類目錄,軟件分類目錄包含一個(gè)層次,每個(gè)目錄下保存具體的軟件詳細(xì)信息,用戶可以按照分類載瀏覽器中查找相應(yīng)的軟件商品信息,當(dāng)需要該書(shū)籍時(shí)可以通過(guò)購(gòu)物推車功能進(jìn)行購(gòu)買,并查看自己的購(gòu)買信息
68、并提交定單,如果有需要聯(lián)系書(shū)店管理員,可以發(fā)送電子郵件給管理員,也可以在留言板上發(fā)言。如果想快速查詢書(shū)籍,該系統(tǒng)還有書(shū)籍查詢功能,輸入您所需要的書(shū)籍名字即可以查詢。</p><p><b> 3.2外部接口需求</b></p><p><b> 3.2.1用戶界面</b></p><p> 系統(tǒng)采用友好容易操作的界面
69、,方便用戶的操作訪問(wèn)。因此程序采用固定的布局,每個(gè)頁(yè)面的固定部分都單獨(dú)實(shí)現(xiàn)成為一個(gè)JSP程序,然后在每個(gè)具體的頁(yè)面中包含他們,這樣既保證了程序的布局統(tǒng)一,又能簡(jiǎn)化程序設(shè)計(jì)和調(diào)試。這些固定部分的JSP程序應(yīng)包括:頁(yè)面的HEAD部分,定義了連接樣式;頁(yè)面的頂部區(qū)域,定義頁(yè)面的主菜單;頁(yè)面的左邊區(qū)域,內(nèi)容為軟件目錄列表;頁(yè)面的底部區(qū)域。程序的顯示頁(yè)面能夠正確的顯示中文,并且適合當(dāng)今流行的瀏覽器顯示。</p><p>&
70、lt;b> 3.2.2軟件接口</b></p><p> 本系統(tǒng)具備良好的平臺(tái)無(wú)關(guān)性,無(wú)論是在NT系統(tǒng),LINUX系統(tǒng)還是UNIX系統(tǒng)上,都能正常運(yùn)行而不需更改任何代碼。</p><p> 對(duì)WWW服務(wù)器沒(méi)有特別的要求或限制。</p><p> 對(duì)系統(tǒng)數(shù)據(jù)庫(kù)沒(méi)有特別的限制,但要求具備JDBC接口,目前市場(chǎng)上的絕大部分?jǐn)?shù)據(jù)庫(kù)都具備這一接口。
71、 對(duì)CPU、硬盤容量和最小內(nèi)存沒(méi)有特別的要求。</p><p> 要求系統(tǒng)的應(yīng)用服務(wù)器具備支持JAVA組件運(yùn)行的功能。</p><p> 前臺(tái)使用 MS IE4.0以上的瀏覽器。本系統(tǒng)的客戶端可運(yùn)行在任何裝有WWW瀏覽器 Microsoft InternetExplorer5.0以上或 NetScape Navigater 4.7以上的主機(jī)之上,</p><p&g
72、t;<b> 3.2.3通訊接口</b></p><p> 對(duì)于發(fā)送郵件部分,本系統(tǒng)使用了JavaMail接口,實(shí)現(xiàn)同郵件服務(wù)器的連接。</p><p><b> 3.2.4故障處理</b></p><p> 本軟件正常使用時(shí)不會(huì)出現(xiàn)錯(cuò)誤,通常錯(cuò)誤系統(tǒng)會(huì)給出相應(yīng)提示。但是出現(xiàn)不可預(yù)料致命性錯(cuò)誤時(shí),服務(wù)器將會(huì)自動(dòng)停止
73、服務(wù),一般不會(huì)對(duì)系統(tǒng)造成損害.</p><p><b> 3.3性能需求</b></p><p><b> 3.3.1時(shí)間特性</b></p><p> 由于在 JSP 下,代碼被編譯成 Servlet 并由 Java 虛擬機(jī)執(zhí)行,這種編譯操作僅在對(duì)JSP 頁(yè)面的第一次請(qǐng)求時(shí)發(fā)生。所以其以后的訪問(wèn)速度會(huì)很快,程序要求
74、再進(jìn)行優(yōu)化處理,達(dá)到用戶訪問(wèn)是只需要較少時(shí)間和快速的數(shù)據(jù)庫(kù)訪問(wèn)?! ?lt;/p><p><b> 3.3.2適應(yīng)性</b></p><p> 系統(tǒng)具備良好的平臺(tái)無(wú)關(guān)性,無(wú)論是在NT系統(tǒng),LINUX系統(tǒng)還是UNIX系統(tǒng)上,都能正常運(yùn)行而不需更改任何代碼。</p><p> 對(duì)WWW服務(wù)器沒(méi)有特別的要求或限制。</p><
75、p> 對(duì)系統(tǒng)數(shù)據(jù)庫(kù)沒(méi)有特別的限制,但要求具備JDBC接口,目前市場(chǎng)上的絕大部分?jǐn)?shù)據(jù)庫(kù)都具備這一接口。</p><p><b> 3.4軟件屬性需求</b></p><p><b> 3.4.1正確性</b></p><p> 要求發(fā)布的軟件能夠達(dá)到用戶的預(yù)期目標(biāo),完全按照開(kāi)發(fā)計(jì)劃進(jìn)行,運(yùn)行時(shí)保證軟件基本無(wú)錯(cuò)誤
76、。</p><p><b> 3.4.2可靠性</b></p><p> 具有運(yùn)行穩(wěn)定,再發(fā)生嚴(yán)重錯(cuò)誤時(shí)有完善的錯(cuò)誤處理機(jī)制。由于JAVA技術(shù)本身有良好的錯(cuò)誤處理機(jī)制,因此運(yùn)行相對(duì)穩(wěn)定可靠。</p><p><b> 3.4.3效率</b></p><p> 用戶在正常情況下對(duì)于本軟件的操作
77、達(dá)到軟件開(kāi)發(fā)的規(guī)格,在網(wǎng)絡(luò)環(huán)境下訪問(wèn)具有高效的顯示頁(yè)面和數(shù)據(jù)操作功能。</p><p><b> 3.4.4完整性</b></p><p> 對(duì)于用戶的訪問(wèn)操作和網(wǎng)站的工作方式,必須具有完整的流程和處理部分,及時(shí)完整的回復(fù)用戶的操作請(qǐng)求。</p><p><b> 3.4.5易實(shí)用性</b></p>&
78、lt;p> 要求程序?qū)Ψ?wù)器端和客戶端的系統(tǒng)要求比較低,能夠適用與一般配置的系統(tǒng),在使用JSP服務(wù)器并簡(jiǎn)單配置后就能夠運(yùn)行,并可發(fā)布到網(wǎng)絡(luò)上使用,適合大多數(shù)用戶的訪問(wèn)。要求系統(tǒng)具有友好容易用戶操作的界面。</p><p><b> 3.4.6可維護(hù)性</b></p><p> 在開(kāi)發(fā)設(shè)計(jì)本軟件在運(yùn)行中發(fā)現(xiàn)錯(cuò)誤時(shí),能快速、準(zhǔn)確對(duì)其進(jìn)行定位、診斷和修改。編寫(xiě)的
79、代碼注釋等要符合行業(yè)規(guī)范,模塊間具有低偶合性,便于系統(tǒng)維護(hù)和修改擴(kuò)展。</p><p><b> 3.4.7可測(cè)試性</b></p><p> 在開(kāi)發(fā)設(shè)計(jì)本軟件時(shí)應(yīng)盡量對(duì)具體模塊多次測(cè)試,并減少測(cè)試本軟件的各項(xiàng)功能所需的工作量。</p><p><b> 3.4.8復(fù)用性</b></p><p&g
80、t; 設(shè)計(jì)時(shí)應(yīng)采取模塊化的方法進(jìn)行設(shè)計(jì),對(duì)系統(tǒng)內(nèi)各模塊接口盡可能達(dá)到高內(nèi)聚、低偶合的程度,以提高各模塊的復(fù)用性。</p><p> 3.4.9安全保密性</p><p> 系統(tǒng)對(duì)于會(huì)員的信息及其購(gòu)買必須具有保密性,必須只有管理員才能訪問(wèn)。能夠防止來(lái)自網(wǎng)絡(luò)上的惡意訪問(wèn)和修改信息。</p><p> 3.4.10可移植性</p><p>
81、 要求系統(tǒng)可以從一種操作系統(tǒng)移植到另一種操作系統(tǒng),可以從一種數(shù)據(jù)庫(kù)移植到另一種數(shù)據(jù)庫(kù)。并且不需要修改代碼或者只需修改少部分代碼和接口。</p><p><b> 軟件概要設(shè)計(jì)</b></p><p><b> 4.1總體設(shè)計(jì)</b></p><p><b> 4.1.1處理流程</b><
82、/p><p> 整個(gè)程序從用戶訪問(wèn)進(jìn)入index.jsp開(kāi)始,用戶可以進(jìn)行圖書(shū)信息瀏覽,但是要進(jìn)行其他操作就要進(jìn)行登錄,如果沒(méi)有注冊(cè),首先需要注冊(cè),登錄后可以瀏覽社區(qū)信息并且可以登錄論壇增加、修改、刪除記錄操作。</p><p> 4.1.2總體結(jié)構(gòu)與模塊外部設(shè)計(jì)</p><p> 要求系統(tǒng)程序設(shè)計(jì)模塊化和面向?qū)ο蠡年P(guān)鍵就是將表現(xiàn)和邏輯剝離,對(duì)于該JSP程序,剝
83、離的關(guān)鍵技術(shù)就是JAVABEAN。程序的總體結(jié)構(gòu)就是呈現(xiàn)給用戶的JSP頁(yè)面和邏輯部分JAVABEAN。整個(gè)程序的處理流程采用了JSP“簡(jiǎn)單的2/1層模型”,部分程序使用了“重定向模型”和“包含模型”。對(duì)于“2/1模型”是JSP程序直接訪問(wèn)外部資源(入數(shù)據(jù)庫(kù)),完成對(duì)可戶的請(qǐng)求服務(wù)。對(duì)于“重定向模型”是在“2/1模型”之上發(fā)展起來(lái)的,當(dāng)程序中來(lái)自客戶端的請(qǐng)求變的復(fù)雜時(shí),專門使用一個(gè)初始JSP程序來(lái)處理客戶的請(qǐng)求,然后按照需要,將客戶端請(qǐng)求
84、重定向到其他JSP程序去處理,有它們生成發(fā)送到客戶端的響應(yīng)。對(duì)于“包含模型”初始的JSP程序既處理客戶端的請(qǐng)求,頁(yè)負(fù)責(zé)生成對(duì)客戶端的響應(yīng),但是在處理過(guò)程中可能會(huì)包含一些其他的JSP程序或其他文件,包含可以是靜態(tài)包含頁(yè)可以是動(dòng)態(tài)包含,動(dòng)態(tài)包含的效果就象是進(jìn)行了一次過(guò)程調(diào)用。</p><p><b> 4.1.3功能分配</b></p><p> 采用模塊化原理可以使
85、軟件結(jié)構(gòu)清晰,不僅容易設(shè)計(jì)也容易閱讀和理解,模塊化也有助于軟件開(kāi)發(fā)工程的組織管理,一個(gè)復(fù)雜的大型程序可以由許多程序員分工編寫(xiě)不同的模塊,并且可以進(jìn)一步分配技術(shù)熟練的程序員編寫(xiě)困難的模塊。</p><p> 網(wǎng)站系統(tǒng)基本設(shè)計(jì)思想,是把整個(gè)系統(tǒng)按照實(shí)現(xiàn)的功能進(jìn)行分解。 對(duì)于程序的顯示功能(即呈現(xiàn)給用戶的JSP頁(yè)面)完全由JSP來(lái)完成。由于程序采用了“簡(jiǎn)單的2/1層模型”、“重定向模型”和“包含模型”相結(jié)合的方式,因
86、此頁(yè)面顯示這個(gè)功能可能是這三種方式中的一種。對(duì)于用戶請(qǐng)求的處理既有JSP程序的處理,也有使用JAVABEAN來(lái)處理,再有JSP將響應(yīng)發(fā)送給客戶。JSP再整個(gè)程序結(jié)構(gòu)中擔(dān)當(dāng)了核心左右,JAVABEAN都是不可見(jiàn)的BEAN,只是有JSP調(diào)用做后臺(tái)處理(如訪問(wèn)數(shù)據(jù)庫(kù))不會(huì)顯示在客戶端。</p><p><b> 4.2接口設(shè)計(jì)</b></p><p><b>
87、 4.2.1外部接口</b></p><p> 程序通過(guò)WINDOWS2000平臺(tái)上的訪問(wèn)數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)化API—ODBC接口與SQLSERVER2000數(shù)據(jù)庫(kù)相連接,使用ODBC使得應(yīng)用程序同具體的數(shù)據(jù)庫(kù)接口分離開(kāi)來(lái),使應(yīng)用程序?qū)Σ煌臄?shù)據(jù)庫(kù)具有了兼容性和可移植性,無(wú)論任何一種數(shù)據(jù)庫(kù),采用ODBC借口都可以按同樣的方式進(jìn)行訪問(wèn)。因此,程序采用了JDBC與ODBC連接,只要它們的接口部分存在,就可以兼
88、容其他數(shù)據(jù)庫(kù)。</p><p><b> 4.2.2內(nèi)部接口</b></p><p> 將數(shù)據(jù)庫(kù)訪問(wèn)的各個(gè)操作進(jìn)行了封裝,封裝到一個(gè)JAVA類DBSQL中,這樣,程序的數(shù)據(jù)庫(kù)訪問(wèn)都可以通過(guò)這個(gè)類的方法來(lái)實(shí)現(xiàn)。經(jīng)過(guò)這樣的抽象后,上層的BEAN無(wú)須關(guān)心如何訪問(wèn)數(shù)據(jù)庫(kù),它只需要知道DBSQL類的接口就可以了;而DBSQL類只要保持接口不變,內(nèi)部的實(shí)現(xiàn)可以任意改變,例如進(jìn)
89、行優(yōu)化,并且不會(huì)影響到上層應(yīng)用。</p><p> JSP程序通過(guò)JDBC(JAVA 訪問(wèn)數(shù)據(jù)庫(kù)標(biāo)準(zhǔn)API)接口來(lái)訪問(wèn)數(shù)據(jù)庫(kù),它能夠?qū)⒏鞣N數(shù)據(jù)庫(kù)的差異性對(duì)JAVA程序屏蔽起來(lái),JAVA程序可以使用同樣的可移植的接口訪問(wèn)數(shù)據(jù)庫(kù),保證了JAVA程序的“一次編寫(xiě),各處運(yùn)行”的優(yōu)點(diǎn)。</p><p><b> 4.3出錯(cuò)處理設(shè)計(jì)</b></p><p&
90、gt; 4.3.1出錯(cuò)輸出信息</p><p> 對(duì)于程序中容易出現(xiàn)錯(cuò)誤的地方,應(yīng)該進(jìn)行反復(fù)調(diào)試,對(duì)于不可預(yù)見(jiàn)的錯(cuò)誤應(yīng)該用JAVA錯(cuò)誤處理機(jī)制在程序中預(yù)先控制,保證在出現(xiàn)錯(cuò)誤情況下輸出錯(cuò)誤信息。</p><p> 4.3.2出錯(cuò)處理對(duì)策</p><p> JAVA語(yǔ)言自帶了一些錯(cuò)誤處理機(jī)制,對(duì)于一些可能出現(xiàn)的不會(huì)導(dǎo)致丟失數(shù)據(jù)的錯(cuò)誤,應(yīng)在程序中寫(xiě)出響應(yīng)的處理代
91、碼,對(duì)于可能導(dǎo)致嚴(yán)重后果的錯(cuò)誤,應(yīng)該停止系統(tǒng)運(yùn)行。</p><p><b> 4.4安全保密設(shè)計(jì)</b></p><p> 對(duì)于系統(tǒng)的用戶數(shù)據(jù)應(yīng)該進(jìn)行保密處理,防止外部人員獲得。因此,在程序中應(yīng)該做一些認(rèn)證、訪問(wèn)控制、數(shù)據(jù)完整性、數(shù)據(jù)隱秘性方面的考慮。</p><p><b> 4.5維護(hù)設(shè)計(jì)</b></p&g
92、t;<p> 對(duì)于軟件的各個(gè)模塊,應(yīng)該有清晰完整的注釋,并且盡量做到模塊內(nèi)部的高內(nèi)聚和模塊之間的低偶合。</p><p><b> 軟件詳細(xì)設(shè)計(jì)</b></p><p><b> 5.1程序設(shè)計(jì)說(shuō)明</b></p><p><b> 5.1.1總體設(shè)計(jì)</b></p>
93、<p> 為了具備一個(gè)網(wǎng)站的基本操作流程,系統(tǒng)必須基本一個(gè)網(wǎng)站的基本功能??傮w來(lái)說(shuō),系統(tǒng)需要具有供用戶顯示的JSP頁(yè)面和后臺(tái)處理的JAVABEAN部分,還要通過(guò)數(shù)據(jù)庫(kù)存儲(chǔ)一些信息。</p><p> 5.1.2功能模塊描述</p><p> 1.JSP部分功能概述</p><p> 對(duì)于JSP頁(yè)面功能部分描述如下:</p><
94、;p> 首先,進(jìn)入首頁(yè),首頁(yè)的頁(yè)面內(nèi)容如圖5-1:</p><p><b> 圖5-1</b></p><p> ?。?)網(wǎng)站導(dǎo)航:實(shí)現(xiàn)一個(gè)網(wǎng)站分類目錄系統(tǒng),可包含一個(gè)或幾個(gè)層次,每個(gè)目錄下保存具體的網(wǎng)站詳細(xì)信息,用戶可以按照分類瀏覽網(wǎng)站中相應(yīng)的信息;</p><p> (2)網(wǎng)站內(nèi)容介紹:網(wǎng)站詳細(xì)內(nèi)容及圖片的顯示;在查看網(wǎng)站內(nèi)容&
95、lt;/p><p> 同時(shí),您可以以會(huì)員的身份進(jìn)行留言?;虻卿浘W(wǎng)站論壇,與其他人進(jìn)行交流。</p><p> 網(wǎng)站部分內(nèi)容頁(yè)面如下圖5-2:</p><p><b> 圖5-2</b></p><p> ?。?)會(huì)員登錄:實(shí)現(xiàn)會(huì)員功能,系統(tǒng)中所有操作行為都只有會(huì)員才</p><p> 進(jìn)行。因
96、此,只有登錄進(jìn)入系統(tǒng),才能進(jìn)行操作,并提交內(nèi)容。當(dāng)然部登錄仍可以訪問(wèn)網(wǎng)站分類目錄,查閱網(wǎng)站詳細(xì)內(nèi)容。當(dāng)用戶輸入用戶名和密碼時(shí),進(jìn)行數(shù)據(jù)庫(kù)訪問(wèn),以驗(yàn)證合法性。如果您沒(méi)有注冊(cè),程序會(huì)轉(zhuǎn)到注冊(cè)頁(yè)面要求您的注冊(cè)。</p><p> ?。?)留言功能:只有登錄用戶可以在網(wǎng)站上留言,并可對(duì)留言進(jìn)行修改、刪除,否則其頁(yè)面會(huì)顯示如下內(nèi)容5-3:</p><p><b> 圖5-3</b&
97、gt;</p><p> ?。?)會(huì)員注冊(cè):因?yàn)橄到y(tǒng)中所有購(gòu)買行為都只有會(huì)員才能進(jìn)行,所</p><p> 必須進(jìn)行注冊(cè),會(huì)員注冊(cè)功能將用戶的信息寫(xiě)入數(shù)據(jù)庫(kù)。會(huì)員注冊(cè)頁(yè)面如圖5-4:</p><p><b> 圖5-4</b></p><p> (6)論壇功能:可以使用戶發(fā)表一些對(duì)某些商品或者網(wǎng)站的意見(jiàn)和建議方使用
98、戶與管理員、用戶與用戶之間的交流。圖提交留言和查看留言</p><p> 如圖5-5、圖5-6、圖5-7:</p><p><b> 圖5-5</b></p><p><b> 圖5-6</b></p><p> 圖5-7 jsp部分功能圖</p><p> ?。?)
99、幫助信息:提示給用戶一些網(wǎng)站訪問(wèn)流程等信息,以方便用戶的操作。</p><p> ?。?)提交功能:實(shí)際的提交過(guò)程是一個(gè)十分復(fù)雜的過(guò)程,這里的系統(tǒng)僅僅是簡(jiǎn)單地將定單信息記入數(shù)據(jù)庫(kù)中。當(dāng)您進(jìn)行提交后,您所提交的內(nèi)容將同時(shí)清空,但已經(jīng)寫(xiě)入到數(shù)據(jù)庫(kù)中了,如圖5-8:</p><p><b> 圖5-8</b></p><p> 2.JAVABEA
100、N功能部分描述</p><p> 網(wǎng)站的業(yè)務(wù)邏輯即JAVABEAN的功能。整個(gè)系統(tǒng)中存在11個(gè)業(yè)務(wù)實(shí)體,其中軟件分類目錄由一組分類目錄條目構(gòu)成,內(nèi)容列表則由一組軟件條目構(gòu)成,它們之間都是一種簡(jiǎn)單的一對(duì)多關(guān)系。但是在分類目錄條目和軟件列表之間由一種一一對(duì)應(yīng)關(guān)系。每個(gè)登錄的會(huì)員都具有操作功能,而且會(huì)員和內(nèi)容之間還有一種對(duì)應(yīng)關(guān)系:每條留言都必然涉及一個(gè)會(huì)員。另外,為了對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)得到統(tǒng)一的管理,將數(shù)據(jù)庫(kù)訪問(wèn)的各個(gè)操
101、作進(jìn)行了封裝,封裝到一個(gè)JAVA類DBSQL中,這樣,程序的數(shù)據(jù)庫(kù)訪問(wèn)都可以通過(guò)這個(gè)類的方法來(lái)實(shí)現(xiàn)。這時(shí)面向?qū)ο髱?lái)的一個(gè)好處,經(jīng)過(guò)這樣的抽象后,上層的BEAN無(wú)須關(guān)心如何訪問(wèn)數(shù)據(jù)庫(kù),它只需要知道DBSQL類的接口就可以了;而DBSQL類只要保持接口不變,內(nèi)部的實(shí)現(xiàn)可以任意改變,例如進(jìn)行優(yōu)化,并且不會(huì)影響到上層應(yīng)用。</p><p> 圖5-2還表示出了每個(gè)業(yè)務(wù)實(shí)體的主要操作功能(方法)。例如留言管理實(shí)體,它可
102、以增加信息、刪除信息、修改信息和清空所有信息。會(huì)員實(shí)體(User),它具有三個(gè)操作:登錄認(rèn)證、注冊(cè)會(huì)員信息和提交。但是也由兩個(gè)實(shí)體沒(méi)有操作,分類條目目錄和信息條目,他們就是純粹的數(shù)據(jù)實(shí)體。對(duì)于查詢實(shí)體,包括多個(gè)方法對(duì)從JSP頁(yè)面獲得的參數(shù)信息寫(xiě)入BEAN中已供顯示時(shí)提取出來(lái)。而留言板BEAN中的增加方法用來(lái)將用戶的留言信息寫(xiě)入數(shù)據(jù)庫(kù),其中用戶的留言信息是通過(guò)JSP頁(yè)面將信息參數(shù)提交給javaBean。對(duì)于不存在相互關(guān)系的實(shí)體,就不用圖來(lái)
103、表示。</p><p><b> 1.據(jù)庫(kù)設(shè)計(jì)說(shuō)明</b></p><p> 本網(wǎng)站系統(tǒng)采用微軟公司的SQLSERVER2000企業(yè)版數(shù)據(jù)庫(kù)系統(tǒng),這里給出了數(shù)據(jù)庫(kù)的設(shè)計(jì)和說(shuō)明。</p><p> 系統(tǒng)的數(shù)據(jù)庫(kù)中包含6表,分別定義如下。</p><p> ?。?)會(huì)員信息表:存儲(chǔ)會(huì)員信息,如會(huì)員名稱、口令及其他信息。
104、</p><p> (2)目錄表:存儲(chǔ)系統(tǒng)中軟件的分類目錄信息,由于軟件目錄只有一個(gè)層次,因此該表結(jié)構(gòu)比較簡(jiǎn)單,只需要存儲(chǔ)分類名稱和分類編號(hào)就可以了。</p><p> ?。?)信息內(nèi)容表:存儲(chǔ)系統(tǒng)中所有的信息內(nèi)容,它同分類目錄表通過(guò)分類編號(hào)建立關(guān)系,每個(gè)軟件只能屬于且比反屬于某一個(gè)軟件分類。</p><p> ?。?)提交表:對(duì)所要保留的內(nèi)容進(jìn)行保存。</
105、p><p> ?。?)留言信息表:存儲(chǔ)了系統(tǒng)中用戶的留言信息,包括留言者信息、留言主題、留言者的Email、留言時(shí)間和留言內(nèi)容。用戶的留言信息將被寫(xiě)入這個(gè)表中,當(dāng)查看歷史留言時(shí),也是從這個(gè)表中提取信息。</p><p> 由于系統(tǒng)采用的是SQLSERVER2000數(shù)據(jù)庫(kù),所以在JAVA程序中需要使用JDBC-ODBC連接實(shí)現(xiàn)數(shù)據(jù)庫(kù)訪問(wèn),因此需要在系統(tǒng)中創(chuàng)建一個(gè)ODBC系統(tǒng)數(shù)據(jù)源DSN sof
106、t。</p><p><b> 編碼與測(cè)試</b></p><p><b> 6.1特色代碼</b></p><p> 6.1.1 系統(tǒng)JSP程序部分</p><p> 1.由于程序采用固定的布局,所以每個(gè)頁(yè)面的固定部分都單獨(dú)實(shí)現(xiàn)成為一個(gè)JSP程序,然后在每個(gè)具體的頁(yè)面中包含特悶,這些固定部
107、分的JSP程序包括:</p><p> head.jsp:生成HTML頁(yè)面的HEAD部分,定義了鏈接樣式;</p><p> title.jsp:生成HTML頁(yè)面的頂部區(qū)域,定義頁(yè)面的主菜單;</p><p> index.jsp:</p><p> <%@ page contentType="text/html;ch
108、arset=gb2312" %></p><p> <%@ include file="conn/conn.jsp"%></p><p><b> <html></b></p><p><b> <head></b></p><
109、;p> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"></p><p> <% request.setCharacterEncoding("GB2312");</p><p> response.setConte
110、ntType("text/html;charset=GB2312"); %></p><p> <title>暢清園社區(qū)網(wǎng)</title></p><p> <link href="../css.css" rel="stylesheet" type="text/css"
111、></p><p> <style type="text/css"></p><p><b> <!--</b></p><p> body,td,th {</p><p> font-size: 12px;</p><p> color: #
112、333333;</p><p><b> }</b></p><p><b> body {</b></p><p> background-image: url(img/bg-3.gif);</p><p> margin-left: 0px;</p><p>
113、 margin-top: 0px;</p><p> margin-right: 0px;</p><p> margin-bottom: 0px;</p><p><b> }</b></p><p><b> a:link {</b></p><p> colo
114、r: #333333;</p><p> text-decoration: none;</p><p><b> }</b></p><p> a:visited {</p><p> text-decoration: none;</p><p> color: #333333;<
115、/p><p><b> }</b></p><p><b> a:hover {</b></p><p> text-decoration: underline;</p><p> color: #CD911D;</p><p><b> }</b>
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 社區(qū)網(wǎng)站信息管理系統(tǒng)畢業(yè)設(shè)計(jì)
- 社區(qū)網(wǎng)站設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文
- 畢業(yè)論文-----it技術(shù)交流社區(qū)網(wǎng)站的設(shè)計(jì)
- 中國(guó)社區(qū)網(wǎng)站營(yíng)銷模式研究.pdf
- 居民自辦社區(qū)網(wǎng)站發(fā)展路徑探析
- 我國(guó)社區(qū)網(wǎng)站媒介素養(yǎng)研究.pdf
- 企業(yè)社區(qū)網(wǎng)站的交互設(shè)計(jì)研究.pdf
- 校園虛擬社區(qū)網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 開(kāi)題報(bào)告-和諧社區(qū)網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)
- SNS社區(qū)網(wǎng)站傳播模式研究.pdf
- 社區(qū)交流平臺(tái)網(wǎng)站畢業(yè)設(shè)計(jì)
- 某文化社區(qū)網(wǎng)站推廣營(yíng)銷策劃
- 基于內(nèi)存緩存技術(shù)的社區(qū)網(wǎng)站設(shè)計(jì)與實(shí)現(xiàn).pdf
- 基于SSH框架的跑步社區(qū)網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn).pdf
- 畢業(yè)設(shè)計(jì)--java游戲設(shè)計(jì)
- 近鄰網(wǎng)—SNS社區(qū)網(wǎng)站商業(yè)計(jì)劃書(shū).pdf
- 知識(shí)型社區(qū)網(wǎng)站發(fā)展研究——以知乎社區(qū)為例
- 基于java平臺(tái)的圖片秘書(shū)網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)【畢業(yè)設(shè)計(jì)】
- 網(wǎng)絡(luò)社區(qū)網(wǎng)站運(yùn)營(yíng)模式及其發(fā)展策略研究開(kāi)題報(bào)告
- 基于Struts2與Hibernate的社區(qū)網(wǎng)站系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn).pdf
評(píng)論
0/150
提交評(píng)論