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

下載本文檔

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

文檔簡介

1、<p>  計算機科學與技術(shù)專業(yè)</p><p><b>  畢業(yè)生論文(設(shè)計)</b></p><p>  課題名稱:購物網(wǎng)站商城系統(tǒng)</p><p><b>  學生姓名:</b></p><p><b>  指導教師:</b></p><p&

2、gt;<b>  購物網(wǎng)站商城系統(tǒng)</b></p><p><b>  摘 要</b></p><p>  隨著網(wǎng)絡的 發(fā)展,網(wǎng)絡已漸漸融入到人們?nèi)粘I钪?,網(wǎng)絡購物逐漸成為人們購物的一種新方式, 易趣、淘寶等購物網(wǎng)站已是眾多網(wǎng)上購物者喜歡光顧的地方。</p><p>  Internet上的企業(yè)計算飛速發(fā)展,Web服務

3、器早已不再局限于過去的HTTP服務,CGI、PHP、ASP等技術(shù)早已使服務器端的數(shù)據(jù)庫服務和應用服務成為所有網(wǎng)站的家常便飯。而具有跨平臺特性的Java更是震動了Web世界。Sun公司的J2EE平臺以它的優(yōu)良特性大大簡化了服務器端多層企業(yè)應用的開發(fā),已經(jīng)成為電子商務網(wǎng)站的事實標準。</p><p>  基于商務網(wǎng)站的建設(shè)和web技術(shù)的發(fā)展,采用J2EE平臺開發(fā)網(wǎng)上購物平臺。該平臺采用APACHE作為Web服務器和應

4、用服務器,后端連接Microsoft SQL Server數(shù)據(jù)庫;網(wǎng)站中主要經(jīng)營服裝類,發(fā)布最新的服飾資訊、流行趨勢和各類經(jīng)典服裝。提供方便的檢索工具供用戶查詢所需的款式,允許顧客根據(jù)網(wǎng)站的不足提出意見和建議,從而不斷改進網(wǎng)站功能和建設(shè)。</p><p>  關(guān)鍵詞:網(wǎng)站購物 購物系統(tǒng)</p><p><b>  目 錄</b></p><p&g

5、t;  第一章 概述 ………………………………………………………………………5</p><p>  一、WEB技術(shù)的發(fā)展…………………………………………………………5</p><p>  (一)WEB頁面的開發(fā) ……………………………………………………5</p><p>  (二)電子商務的興起………………………………………………………5</p>&

6、lt;p>  二、研究現(xiàn)狀 …………………………………………………………………5</p><p>  (一)網(wǎng)站開發(fā)環(huán)境…………………………………………………………5</p><p>  (二)商務網(wǎng)站存在的問題…………………………………………………6</p><p>  三、開發(fā)技術(shù) …………………………………………………………………6</p>

7、<p>  (一)JSP和ASP …………………………………………………………6</p><p>  (二)JSP技術(shù)綜述及其組件在B2C商務網(wǎng)站上的應用 ………………6</p><p>  四、本文的主要工作 …………………………………………………………7</p><p>  第二章 開發(fā)環(huán)境 …………………………………………………………………7&l

8、t;/p><p>  一、JSP環(huán)境……………………………………………………………………7</p><p>  (一)JSP環(huán)境軟件…………………………………………………………7</p><p>  (二)JSP環(huán)境的安裝和環(huán)境變量的設(shè)置…………………………………7</p><p>  (三)JSP環(huán)境的測試…………………………………………………

9、……8</p><p>  二、數(shù)據(jù)庫及數(shù)據(jù)庫連接所需配置……………………………………………8</p><p>  三、Dreamweaver UltraDev 4.0…………………………………………………8</p><p>  第三章 JSP技術(shù)及應用 …………………………………………………………9</p><p>  一、JSP原理及

10、特點 …………………………………………………………9</p><p>  二、JDBC及數(shù)據(jù)管理的連接…………………………………………………10</p><p>  (一)Java Database Connectivity (JDBC) …………………………………10</p><p>  (二)JDBC驅(qū)動及連接 ……………………………………………………11&l

11、t;/p><p>  (三)JDBC支持三層模型 ……………………………………………………12</p><p>  三、JSP和JavaBean…………………………………………………………13</p><p>  (一)JavaBean原理和機制…………………………………………………13</p><p>  (二)編寫JavaBean源文件 …

12、……………………………………………15</p><p>  (三)常用JavaBean屬性 …………………………………………………16</p><p>  四、JSP處理表單事務 ………………………………………………………16</p><p>  (一)COOKIE和SESSION ………………………………………………17</p><p>

13、;  (二)SESSION的處理 ……………………………………………………17</p><p>  (三)表單在客戶端的驗證 ……………………………………………………19</p><p>  (四)表單在服務端的驗證 ……………………………………………………20</p><p>  第四章 流程設(shè)計和數(shù)據(jù)表…………………………………………………………22</

14、p><p>  一、Dreamweaver UltraDev 4…………………………………………………22</p><p>  二、系統(tǒng)流程圖 …………………………………………………………………22</p><p>  三、數(shù)據(jù)流程圖 …………………………………………………………………22</p><p>  四、業(yè)務流程 ……………………………

15、………………………………………23</p><p>  (一)網(wǎng)上交易部分……………………………………………………………23</p><p>  (二)網(wǎng)上交易業(yè)務流程圖 …………………………………………………23</p><p>  (三)購物流程 ………………………………………………………………24</p><p>  五、數(shù)據(jù)表…………

16、……………………………………………………………25</p><p>  第五章 安全分析……………………………………………………………………27</p><p>  概述…………………………………………………………………………27</p><p>  典型分析……………………………………………………………………27</p><p>  (一

17、)源代碼暴露類 …………………………………………………………27</p><p>  (二)遠程程序執(zhí)行類 ………………………………………………………29</p><p>  (三)其他類別 ………………………………………………………………29</p><p>  三、安全啟示……………………………………………………………………29</p><p

18、>  第六章 J2EE和高級…………………………………………………………………30</p><p>  J2EE的核心API……………………………………………………………30</p><p>  J2EE的設(shè)計模式……………………………………………………………31</p><p>  (一)MVC(Model—View—Controller)體系結(jié)構(gòu)…………

19、…………………32</p><p>  連接池 ………………………………………………………………………33</p><p>  (一)問題現(xiàn)狀…………………………………………………………………33</p><p>  (二)連接池技術(shù)………………………………………………………………33</p><p>  C/S模式、B/S模式 &

20、多層結(jié)構(gòu)…………………………………………35</p><p>  第七章 總結(jié)與展往 …………………………………………………………………37</p><p>  工作總結(jié) ……………………………………………………………………37</p><p>  未來的工作 …………………………………………………………………37</p><p>  參考

21、文獻 ………………………………………………………………………………38</p><p><b>  購物網(wǎng)站商城系統(tǒng)</b></p><p><b>  設(shè) 計</b></p><p><b>  第一章 概述</b></p><p>  一、Web技術(shù)的發(fā)展</p&

22、gt;<p>  1991年,歐洲粒子物理研究所(CERN)的軟件工程師Tim Berners-Lee發(fā)布了他的萬維網(wǎng)(World Wide Web)。從此以后,通過互聯(lián)網(wǎng)看到的將不僅僅是文字,互聯(lián)網(wǎng)有了圖片,后來又有了音頻、動畫甚至視頻。</p><p>  WWW的成功在于它制定了一套標準的,易于掌握的超文本標記語言HTML、信息資源的統(tǒng)一定位格式URL和超文本傳輸協(xié)議HTTP,用超鏈接和超媒體

23、把Internet上各種相關(guān)數(shù)據(jù)有機地鏈接起來,使互聯(lián)網(wǎng)上的資源實現(xiàn)了共享。你只需要點擊鼠標就可以瀏覽來自世界各地的豐富的、直觀的信息,一個不懂電腦的人也可以很快成為Internet 行家。</p><p>  (一)WEB頁面的開發(fā) </p><p>  開始的web頁面都是靜態(tài)文本,頁面呆板,互動性不強,但是隨著技術(shù)的發(fā)展,很快各種各樣的動態(tài)網(wǎng)頁技術(shù)涌現(xiàn)出來,這其中包括CGI, ASP

24、, PHP, Java,腳本語言如:JavaScript, VBScript等等。JavaScript 和 VBScript可以嵌入在HTML中實現(xiàn)一些客戶端的動態(tài)功能;CGI大大擴展了Web服務的功能,可以實現(xiàn)web服務器與數(shù)據(jù)庫及文件系統(tǒng)、應用程序的通信,動態(tài)生成超文本,于是網(wǎng)頁活了起來。但CGI的運用需要具有一定的編程能力及算法技巧,而且與HTML要分開編寫,維護和編寫都比較困難,效率和安全性也不好。 ASP, PHP克服了這些缺

25、點,獲得了廣泛的應用。Java的出現(xiàn)給Web帶來了新的活力。它具有完全的平臺無關(guān)性,一次編寫處處運行,用Java可以編寫web頁中執(zhí)行的小程序Applet。它簡單、面向?qū)ο?、安全、健壯、分布式等?yōu)點特別適合開發(fā)web應用。在美國,JSP+ Servlet+ EJB已經(jīng)成為電子商務網(wǎng)站的開發(fā)標準。</p><p> ?。ǘ╇娮由虅盏呐d起</p><p>  “由于電子商務在全球的迅速發(fā)展,

26、現(xiàn)在全球有1.2億人通過互聯(lián)網(wǎng)購買過商品或服務。這項研究建立在34個國家互聯(lián)網(wǎng)用戶投票并與大約28,000人面談的基礎(chǔ)上”。</p><p>  ――Angus Reid Group</p><p>  對網(wǎng)民第一次網(wǎng)上購物時間的調(diào)查顯示,絕大部分網(wǎng)民近三年才開始進行網(wǎng)上購物,而且人數(shù)比例逐年遞增。98、99年開始網(wǎng)上購物的網(wǎng)民很少,合計不足5%;2000年躍升至23%,之后逐漸攀升,至2

27、002年則高達40%左右,2000年以后開始網(wǎng)上購物的網(wǎng)民合計占總?cè)藬?shù)的90%以上。數(shù)據(jù)表明,網(wǎng)民對網(wǎng)上購物的熱情并沒有被互聯(lián)網(wǎng)的寒冬冷卻,相反越來越多的網(wǎng)民開始嘗試網(wǎng)上購物,隨著網(wǎng)民數(shù)量持續(xù)高速增長,電子商務的消費環(huán)境和受眾群體網(wǎng)上消費意識也將得到有效地改善。網(wǎng)上購物是電子商務的基礎(chǔ)形式,如果能夠抓住這一時機,適時推出受網(wǎng)民喜愛的網(wǎng)上商品和網(wǎng)上交易方式,國內(nèi)電子商務企業(yè)的發(fā)展將可以提高一個臺階。 </p><p&g

28、t;<b>  二、研究現(xiàn)狀</b></p><p><b>  (一)網(wǎng)站開發(fā)環(huán)境</b></p><p>  在國外,Jsp+Servlet+Jdbc+JavaBeans已經(jīng)成為開發(fā)電子商務平臺的主流技術(shù),而在國內(nèi)用JSP的技術(shù)網(wǎng)站很少,還未成為一個主流的開發(fā)工具,主要原因是在國內(nèi)很多服務器平臺都是WINNT/WINDOWS2K,并且ICP服

29、務商并未提供JSP服務,或許是對Jsp了解比較少的原因,但是,國內(nèi)還是有許多成功的Jsp站點。如,ChinaRen網(wǎng)站采用的是Jsp技術(shù),還有China.com中華網(wǎng)的緣分的天空Lovesky.China.com,是一個交友的大型娛樂網(wǎng)站。</p><p>  (二)商務網(wǎng)站存在的問題</p><p>  現(xiàn)今,購物網(wǎng)站主要存在以下一些問題:</p><p>  1

30、、目前,絕大多數(shù)的電子商務網(wǎng)站都還不是完全意義上的電子商務網(wǎng)站。雖然中國的絕大多數(shù)電子商務網(wǎng)站都已經(jīng)實現(xiàn)了網(wǎng)上接受訂單、網(wǎng)上支付的服務,但大多數(shù)網(wǎng)民采用的仍是在線訂購、離線支付的方式。并且,目前網(wǎng)站與其供貨商和配送單位采用的多是傳統(tǒng)的溝通方式,效率比較低。</p><p>  2、商品價格并沒有足夠的競爭力。網(wǎng)上的價格并沒有很強的競爭力,大多數(shù)產(chǎn)品加上運費后和傳統(tǒng)商場的價格基本持平,而一些計算機硬件產(chǎn)品和通訊產(chǎn)品

31、的價格則還要高于傳統(tǒng)市場的價格。</p><p>  3、訂貨一確認一付款一認證一發(fā)貨一送貨各環(huán)節(jié)結(jié)合不緊密,經(jīng)常出現(xiàn)脫節(jié)的現(xiàn)象。發(fā)生了問題,調(diào)查起來比較困難。</p><p> ?。础⑷狈?chuàng)造力。盲目追隨成功網(wǎng)站的模式,使得電子商務類網(wǎng)站呈現(xiàn)出“百站一面”的尷尬局面。</p><p><b>  三、開發(fā)技術(shù)</b></p>&

32、lt;p>  (一)JSP和ASP</p><p>  ASP是微軟的產(chǎn)品,其應用只能是在Windows平臺上,移植性差,而且以源代碼的形式存放在服務器端,安全性差。每次由服務器解釋運行,運行效率不高。Jsp頁面文件執(zhí)行時被編譯成字節(jié)代碼,由客戶端流覽的Java虛擬機解釋執(zhí)行,不再是源代碼,因此執(zhí)行效率和安全性高。將數(shù)據(jù)庫連接的重要信息存放在JavaBean文件后,可以編譯成虛擬機才能解釋的字節(jié)代碼,確保了

33、數(shù)據(jù)庫的安全。</p><p>  在ASP技術(shù)里,通過Web頁面要實現(xiàn)一些特定的功能比較困難,比如基于網(wǎng)頁的報表,打印實現(xiàn)起來就比較麻煩。ASP提供的解決方案是自己開發(fā)組件,通過在服務器端注冊組件,成為獨立的可以重復利用的模塊供讀者調(diào)用。因此要求讀者需要掌握比較復雜的變成語言的開發(fā)技術(shù)。在JSP開發(fā)技術(shù)里,可以通過開發(fā)JavaBean文件實現(xiàn)同樣的功能,JavaBean不需要注冊,只要放置在相應的目錄下就可以運

34、行。可以實現(xiàn)ASP的COM組件同樣的功能。此外JSP推出主要就是考慮到平臺的無關(guān)性。JSP代碼可以在APACHE、IIS等服務器上執(zhí)行,支持大部分操作系統(tǒng)。JSP繼承JAVA技術(shù)的優(yōu)點:一次運行,處處運行。</p><p> ?。ǘ㎎SP技術(shù)綜述及其組件在B2C商務網(wǎng)站上的應用</p><p>  Servlet可以讓你建立動態(tài)生成的網(wǎng)頁,而網(wǎng)頁中包含有從服務器方的Java對象中所獲得的

35、數(shù)據(jù)。但是你也得知道servlet 生成網(wǎng)頁的方法就是在Java類中嵌入HTML標簽和表述代碼。這就意味著改變表述代碼需要修改和重新編譯servlet源文件。因為設(shè)計HTML頁面的設(shè)計人員可能與編寫servlet代碼的開發(fā)人員不是同一個人,更新基于servlet的web應用程序就成了一件非常棘手的事情。JSP網(wǎng)頁可以非常容易的與靜態(tài)模板結(jié)合,包括HTML 或XML 片段,以及生成動態(tài)內(nèi)容的代碼。 針對代碼的重復使用,SUN公司提

36、出了JavaBean技術(shù),類似于microsoft的組件對象模型COM技術(shù),JavaBean的價值在于它可以經(jīng)由一組屬性來使用,而這些屬性則提供對JavaBeans設(shè)定的存取。JavaBean就好比一個單位,而單位的名稱、地址、以及規(guī)模都可以稱之為屬性。在JSP原有的優(yōu)點上支持緊湊方便的創(chuàng)建和使用,提高了分部計算機制的強壯性。</p><p>  J2EE平臺為應用程序服務器定義了一個服務器端組件模型,簡化了中間

37、件組件的開發(fā)。J2EE的相關(guān)技術(shù),包括RMI, CORBA, JSP, EJB等等,極大的簡便了商務網(wǎng)站的開發(fā), 可以從中選擇合適的技術(shù)構(gòu)建發(fā)布平臺的框架,已逐漸成為開發(fā)標準。</p><p><b>  四、本文的主要工作</b></p><p>  本文討論了服務器端三層模型的特點,分析了Dreamweaver UltraDev開發(fā)工具的特點及JSP開發(fā)技巧,論證

38、了創(chuàng)建購物網(wǎng)站的框架結(jié)構(gòu)以及前臺WEB界面和后臺數(shù)據(jù)庫的連接設(shè)置,對于未來的一個發(fā)展方向和平臺的安全性解析,APACHE+Dreamweaver+MSSQL+Tomcat是比較合適的技術(shù)支持。</p><p><b>  第二章 開發(fā)環(huán)境</b></p><p><b>  一、JSP環(huán)境</b></p><p>  (

39、一)JSP環(huán)境軟件</p><p>  本文所采用的JSP環(huán)境軟件有如下:</p><p>  1、Tomcat 4.0.2</p><p>  2、j2sdk-1_4_2-windows-i586 </p><p>  (二)JSP環(huán)境的安裝和環(huán)境變量的設(shè)置</p><p>  首先安裝Tomcat,安裝到D:\Pr

40、ogram Files\apache tomcat4.0.2下,</p><p>  再安裝JDK,取目錄為D:\ j2sdk1.4.2。</p><p>  接下來配置環(huán)境變量:</p><p>  右鍵點擊“我的電腦”,在彈出的菜單中點“屬性”,在系統(tǒng)特性里選擇“高級”,找到“環(huán)境變量”,點擊進入后,“系統(tǒng)變量”就是我們需要設(shè)置的地方。(圖2.1)</p&

41、gt;<p>  1、新建classpath變量,然后在變量值中輸入以下內(nèi)容:</p><p>  D:\j2sdk1.4.2\lib;D:\ProgramFiles\ApacheTomcat 4.0\lib;%CLASSPATH%</p><p>  2、新建java_home變量,然后在變量值中輸入以下內(nèi)容:</p><p>  D:\j2sdk1

42、.4.2</p><p>  3、編輯path變量:在原有的變量值后添加JDK的BIN目錄和LIB目錄,最后結(jié)果如下%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\ProgramFiles\MicrosoftSQLServer\80\Tools\BINN;D:\j2sdk1.4.2\bin;D:\j2sdk1.4.2\lib;%PA

43、TH%</p><p>  4、新建變量tomcat,變量值為:</p><p>  D:\Program Files\Apache Tomcat 4.0</p><p> ?。ㄈ㎎SP環(huán)境的測試</p><p>  現(xiàn)在讓我們來測試配置是否成功,在IE中輸入http://localhost:8080/,如果出現(xiàn)tomcat的歡迎畫面則表示

44、安裝成功。</p><p>  二、數(shù)據(jù)庫及數(shù)據(jù)庫連接所需配置</p><p>  本文采用了中小型網(wǎng)站使用的MSSQL SERVER 2000來作為后臺數(shù)據(jù)庫。</p><p>  最后為了能和數(shù)據(jù)庫(MSSQL)連接,還需要增加mssqlserver.jar,msutil.jar,msbase.jar三個文件到<tomcat-root>\common

45、\lib目錄下。</p><p>  三、Dreamweaver UltraDev 4.0</p><p>  Macromedia Dreamweaver UltraDev是專門為軟件開發(fā)所設(shè)計的,它能幫助我們更容易更迅速的完成工作。</p><p>  UltraDev功能全面,能夠制作三種基本動態(tài)網(wǎng)站ASP、JSP、ColdFusion;其次,UltraDev

46、能迅速建立你的動態(tài)網(wǎng)站、與現(xiàn)存軟件的網(wǎng)絡接口、以及動態(tài)支持的數(shù)據(jù)庫??梢苑浅V庇^地開發(fā)網(wǎng)絡軟件,同時保持對代碼的完全控制。拖放服務器行為可以很容易地制作顯示、導航和更新數(shù)據(jù)庫內(nèi)容的網(wǎng)頁;再次,Macromedia公司提供了大量的第三方插件,其中包括了多種購物車功能插件。除此之外,UltraDev的擴展功能提供了開發(fā)在線商店所需的所有東西,讓這些商店能夠支持多種功能,而且容易維護。同時,你能方便地制作使用內(nèi)置稅和運輸計算、復雜的商業(yè)選擇、

47、實時信用卡交易和其他功能的電子商務網(wǎng)站。</p><p>  UltraDev的工作流程大致分為以下6步:</p><p><b>  1、系統(tǒng)分析。</b></p><p>  要創(chuàng)建一個具有電子商務功能的網(wǎng)站,首先就是需求分析。</p><p><b>  2、制作靜態(tài)頁面。</b></p

48、><p>  可以運用Dreamweaver所有的設(shè)計工具來完成。</p><p><b>  3、定義記錄集。</b></p><p>  在應用程序中使用數(shù)據(jù)庫,接下來就要定義記錄集,以便臨時從數(shù)據(jù)庫中提取數(shù)據(jù)。應用程序不能直接調(diào)用數(shù)據(jù)庫,必須以記錄集為中介,我們可以將數(shù)據(jù)綁定面板中對應記錄集的字段添加大WEB頁面上,也就添加了動態(tài)內(nèi)容。<

49、;/p><p><b>  4、添加動態(tài)內(nèi)容。</b></p><p>  在完成了第三步后,就可以使用UltraDev添加動態(tài)內(nèi)容,不必考慮如何插入服務器端腳本到WEB頁中,添加時我們只需指明位置和內(nèi)容。</p><p>  5、添加服務器端的行為,激活動態(tài)頁面。</p><p>  所謂的服務器行為就是用VBScript

50、、JavaScript、Java或ColdFusion編寫的運行在服務器上的腳本</p><p>  6、編輯和調(diào)試WEB頁。</p><p>  Ultra提供了三種編輯環(huán)境:Dreamweaver傳統(tǒng)的可視化編輯環(huán)境、UltraDev活動數(shù)據(jù)編輯環(huán)境和源代碼編輯環(huán)境。</p><p>  第三章 JSP技術(shù)及應用</p><p>  一

51、、JSP原理及特點</p><p>  一些人可能已經(jīng)對微軟的Active Server Pages(ASP)很熟悉了;JSP在多數(shù)方面與ASP功能相同但是具有平臺無關(guān)特性。他們都用來幫助Web內(nèi)容的開發(fā)者們使用相對少的代碼創(chuàng)建動態(tài)的網(wǎng)頁。一個JSP頁面包含摻雜著Java代碼的HTML代碼。當客戶機請求這個頁面時,服務器處理Java代碼,把它生成的HTML頁返回給瀏覽器。</p><p>

52、  Java Server Page,簡稱JSP,它不但擁有Servlet的所有特性與優(yōu)點,更增加了程序開發(fā)上的彈性,除了Java程序本身跨平臺的優(yōu)點,它是直接在HTML中內(nèi)嵌JSP程序代碼,使得程序開發(fā)更為容易、方便。JSP是完全架構(gòu)在Servlet程序上,不同的是,JSP程序是由JSP Engine先將之轉(zhuǎn)換成相對應的Servlet程序代碼,接著將它編譯成類文件載入執(zhí)行,之后它就如同一般的Servlet一樣。</p>

53、<p>  從表3.1我們可以看到JSP和ASP的區(qū)別。</p><p>  當客戶端請求一個JSP網(wǎng)頁時,JSP Engine會檢查所請求的JSP網(wǎng)頁是否已經(jīng)處于被載入執(zhí)行的狀態(tài),如果沒有,它會先讀取JSP程序文件,將它換成Servlet程序代碼編譯載入,然后才執(zhí)行請求的服務。也是就說,只有當客戶端第一次請求JSP網(wǎng)頁時,才需要被轉(zhuǎn)換、編譯和載入,做到了一次執(zhí)行,處處執(zhí)行。JSP的Servlet Cl

54、ass是JSP Engine自動幫我們編譯產(chǎn)生的,不像Servlet需要手動編譯,另外,在JSP程序中建立新的對象和Java Bean非常方便容易。許多應用程序服務器都支持JSP網(wǎng)頁程序,如BEA的WebLogic、IBM的WebSphere,也已有不少的電子商務網(wǎng)站紛紛采用JSP來架站,JSP儼然成為假設(shè)商務網(wǎng)站的企業(yè)標準。</p><p>  我們來看一個JSP頁面的例子。它顯示了服務器當前的日期和時間。這里

55、不對代碼的細節(jié)做解釋,但是請注意Java代碼放在在<%和%>兩個符號之間, Java表達式放在<%=和%>之間。</p><p>  <html><head><title>Sample JSP Page</title></head><body><h1>Date JSP sample</h1&

56、gt;<h2><% response.setHeader("Refresh", 5); %>The current date is <%= new Date()  %>.</h2></body></html></p><p>  二、JDBC及數(shù)據(jù)庫管理的連接</p>&l

57、t;p> ?。ㄒ唬㎎ava Database Connectivity (JDBC) </p><p>  要實現(xiàn)動態(tài)網(wǎng)頁的實現(xiàn)少不了與數(shù)據(jù)庫的連接,接下來介紹JDBC技術(shù)。</p><p>  JDBC的 API通過一個統(tǒng)一的方式訪問不同的數(shù)據(jù)庫。類似ODBC,JDBC 對程序開發(fā)人員隱藏了數(shù)據(jù)庫產(chǎn)權(quán)的問題。因為它是建立在Java之上的,JDBC 也能供提供平臺無關(guān)性的數(shù)據(jù)庫訪問。

58、 </p><p>  JDBC是一個規(guī)范,遵循JDBC接口規(guī)范,各個數(shù)據(jù)庫廠家各自實現(xiàn)自己的驅(qū)動程序(Driver),如下圖3.2所示: </p><p>  應用程序在獲取數(shù)據(jù)庫連接時,需要以URL的方式指定是那種類型的Driver,在獲得特定的連接后,可按照固定的接口操作不同類型的數(shù)據(jù)庫,如: 分別獲取Statement、執(zhí)行SQL獲得ResultSet等<

59、/p><p>  JDBC 定義了四種本質(zhì)上不同的數(shù)據(jù)庫驅(qū)動程序,我們分別闡述: </p><p>  Type 1: JDBC-ODBC 橋</p><p>  當JDBC還在襁褓中的時候,JDBC-ODBC 橋被證明是最有用的。使用它,程序開發(fā)人員可以使用JDBC來訪問ODBC數(shù)據(jù)源。它的缺陷是,需要客戶機使用微軟的windows操作系統(tǒng),并且安裝ODBC驅(qū)動程序。

60、通過使用這種驅(qū)動程序,你犧牲了JDBC的平臺無關(guān)性。另外, ODBC driver還需要客戶端的管理。 </p><p>  Type 2: JDBC-native 驅(qū)動橋</p><p>  JDBC-native 驅(qū)動橋提供了建立在本來的數(shù)據(jù)庫驅(qū)動程序之上的JDBC接口,沒有使用ODBC。 JDBC驅(qū)動程序把標準的JDBC的調(diào)用轉(zhuǎn)換成原始的數(shù)據(jù)庫API調(diào)用。使用Type2 驅(qū)動同樣犧牲

61、了平臺無關(guān)性,因為這需要安裝客戶端的數(shù)據(jù)庫驅(qū)動代碼。 </p><p>  Type 3: JDBC-network 橋</p><p>  JDBC-network 橋驅(qū)動不需要客戶端的數(shù)據(jù)庫驅(qū)動器。它利用網(wǎng)絡服務器的中間件來訪問數(shù)據(jù)庫。這使得諸如負載均衡、連接池、數(shù)據(jù)緩存之類的技術(shù)成為可能。 因為type 3驅(qū)動程序經(jīng)常需要一個相對較少的下載時間,具有平臺無關(guān)性,不需要客戶端的安裝和管

62、理,這種方式最適合Internet應用。 </p><p>  Type 4: 純Java驅(qū)動</p><p>  Type 4 用純粹的Java數(shù)據(jù)庫驅(qū)動程序提供數(shù)據(jù)庫訪問。由于type 4驅(qū)動程序在客戶機上運行和直接訪問數(shù)據(jù)庫,在這種方式下執(zhí)行意味著2層結(jié)構(gòu)。在多層結(jié)構(gòu)中對type 4驅(qū)動的更好應用是使用EJB封裝數(shù)據(jù)訪問代碼,讓EJB為客戶端提供數(shù)據(jù)庫無關(guān)的服務。 </p>

63、;<p>  (二)JDBC驅(qū)動及連接</p><p>  APACHE Server 為一些常用的數(shù)據(jù)庫提供了JDBC驅(qū)動,包括Oracle, Sybase, Microsoft SQL Server和Informix。</p><p>  使用JSP訪問數(shù)據(jù)庫實際上就是先建立一個JavaBean組件,讓它來完成與數(shù)據(jù)庫的連接查詢功能,并返回一個數(shù)據(jù)集合(ResultSet

64、),然后在JSP頁面中使用<jsp:useBean>標簽創(chuàng)建Beans的實例,通過它來對數(shù)據(jù)庫進行查詢修改等操作。</p><p>  例. 程序3.2.1</p><p><b>  try{</b></p><p>  //加載數(shù)據(jù)庫驅(qū)動程序,使用MSSQL JDBC驅(qū)動</p><p>  Class.

65、forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); </p><p><b>  //建立數(shù)據(jù)庫連接</b></p><p>  String url=”URL”;</p><p>  String user=””;</p>

66、<p>  String password=””;</p><p>  Connection conn= DriverManager.getConnection(url,user,password); </p><p>  //創(chuàng)建statement對象,用于數(shù)據(jù)庫語句的執(zhí)行、返回</p><p>  Statement stmt=conn.creat

67、eStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); </p><p><b>  //定義數(shù)據(jù)庫語句</b></p><p>  String sql="select * from customeregister"; </p><p>

68、;<b>  //執(zhí)行返回結(jié)果</b></p><p>  ResultSet rs=stmt.executeQuery(sql); </p><p>  while(rs.next()) {</p><p>  您的第一個字段內(nèi)容為:<%=rs.getString(1)%> </p><p>  您的第二個

69、字段內(nèi)容為:<%=rs.getString(2)%> </p><p><b>  }</b></p><p>  rs.close(); </p><p>  stmt.close(); </p><p>  conn.close(); </p><p><b>  }&l

70、t;/b></p><p>  程序展示了JDBC驅(qū)動作用下,與數(shù)據(jù)庫建立連接。</p><p>  其JDBC常用對象如表3.3所示</p><p> ?。ㄈ㎎DBC支持三層模型</p><p>  JDBC支持兩層模型,也支持三層模型訪問數(shù)據(jù)庫。 </p><p>  兩層模型中,一個java Appple

71、或者一個java應用程序直接同數(shù)據(jù)庫連接。這就需要能直接被訪問的數(shù)據(jù)庫進行連接的JDBC驅(qū)動器。用戶的SQL語句被傳送給數(shù)據(jù)庫,而這些語句執(zhí)行的結(jié)果將被傳回給用戶。數(shù)據(jù)庫可以在同一機器上,也可以另一機器上通過網(wǎng)絡進行連接。這被稱為“Client/Server”結(jié)構(gòu),用戶的計算機作為Client,運行數(shù)據(jù)庫的計算機作為Server。這個網(wǎng)絡可是intranet,比如連接全體雇員的企業(yè)內(nèi)部網(wǎng),當然也可以是internet。 </p&g

72、t;<p>  在三層模型中,命令將被發(fā)送到服務的“中間層”,而“中間層”將SQL語句發(fā)送到數(shù)據(jù)庫。數(shù)據(jù)庫處理SQL語句并將結(jié)果返回“中間層”,然后“中間層”將它們 返回用戶。MIS管理員將發(fā)現(xiàn)三層模型很有吸引力,因為“中間層”可以進行對訪問的控制并協(xié)同數(shù)據(jù)庫的更新,另一個優(yōu)勢就是如果有一個“中間層”用戶就可以使用一個易用的高層的API,這個API可以由“中間層”進行轉(zhuǎn)換,轉(zhuǎn)換成底層的調(diào)用。而且,在許多情況下,三層模型可以

73、提供更好的性能。 </p><p>  “中間層”通常還是用C或C++實現(xiàn),以保證其高性能。但隨著優(yōu)化編譯器的引入,將java的字節(jié)碼轉(zhuǎn)換成高效的機器碼,用java來實現(xiàn)“中間層”將越來越實際。而JDBC是允許從一個java“中間層”訪問數(shù)據(jù)庫的關(guān)鍵。</p><p>  三、JSP與JavaBean</p><p> ?。ㄒ唬㎎avaBean原理和機制</p

74、><p>  JSP的一大特點就是與JavaBeans的結(jié)合,而JSP與JavaBeans結(jié)合的一個突出的優(yōu)點是頁面顯示和業(yè)務邏輯的分離。這可以使團隊協(xié)作的更好,開發(fā)出更高質(zhì)量的站點,而且非常適合于團隊開發(fā):</p><p>  1、Java開發(fā)人員致力于將業(yè)務邏輯在JavaBeans中實現(xiàn)。</p><p>  2、eb開發(fā)人員致力于頁面的實現(xiàn),即JavaBeans如

75、何在JSP中工作和設(shè)計JSP頁面。</p><p>  3、主頁人員和美工致力于站點的設(shè)計和頁面表現(xiàn)風格。這種結(jié)構(gòu)使得Web站點的維護變得容易,特別對于大型的電子商務網(wǎng)站更是如此。</p><p>  JavaBean是一種可以重用的Java組件,它類似于COM,在JSP程序中常用來封裝事物邏輯、數(shù)據(jù)庫操作等,可以很好的實現(xiàn)業(yè)務邏輯和前臺程序的分離,使得系統(tǒng)具有更好的健壯性和靈活性。<

76、;/p><p>  事件處理是JavaBeans體系結(jié)構(gòu)的核心之一。通過事件處理機智,可以讓一些組件作為事件源,發(fā)出可被描述環(huán)境或其他組件接受的事件。這樣,不同的組件就可在構(gòu)造工具內(nèi)組合在一起,組件之間通過事件的傳遞進行通信,構(gòu)成一個應用。從概念上講,事件是一種在“源對象”和“監(jiān)聽對象”之間、某種狀態(tài)發(fā)生變化的傳遞機智。事件有許多不同的用途,如:鼠標事件、窗口邊界改變事件、鍵盤事件等。在Java和JavaBeans中

77、則是定義了一個一般的、可擴充的事件機制,它能夠:</p><p>  1、對事件類型和傳遞模型的定義和擴充提供一個公共框架,并適合于廣泛的應用。</p><p>  2、與Java語言和環(huán)境有較高的集成度。</p><p>  事件能描述環(huán)境捕獲和被激發(fā)。能使其他構(gòu)造工具采取某種技術(shù)在設(shè)計時直接控制事件,遺跡控制事件源和事件監(jiān)聽者之間的聯(lián)系。事件本身不依賴于復雜的開

78、發(fā)工具。</p><p>  特別的,事件機制還應當:</p><p>  1、能夠發(fā)現(xiàn)制定的對象類可以生成的事件。</p><p>  2、能夠發(fā)現(xiàn)制定的對象類可以觀察監(jiān)聽到的事件。</p><p>  3、提供一個常規(guī)的注冊機制,允許動態(tài)操縱事件源與事件監(jiān)聽者之間的關(guān)系。</p><p>  4、不需要其他的虛擬機

79、和語言即可實現(xiàn)。</p><p>  5、事件源與監(jiān)聽者之間可進行高效的事件傳遞。</p><p>  6、能完成JavaBean事件模型與相關(guān)的其他組件體系結(jié)構(gòu)事件模型的中立映射。</p><p><b>  激發(fā)事件</b></p><p>  (二)編寫JavaBean源文件</p><p>

80、;  一個JavaBean就是放置在JAVA類,它封裝了一些私有的數(shù)據(jù)和方法,這些私有數(shù)據(jù)在JSP頁面中可以通過SET和GET方法來存取。JavaBean的工作過程也很簡單,首先在JSP頁面中生成一個JavaBean的實例,然后對數(shù)據(jù)進行處理,最后使用GET方法得到,最終結(jié)果在頁面上顯示出來。</p><p>  JavaBean文件必須放在與JSP頁面存放位置對應的web-inf\classes目錄下,比如要在

81、<tomcat-root>\source\jsp中的某一個JSP頁面中使用一個JavaBean,這個JavaBean必須放在<tomcat-root>\source\WEB-INF\classes中。</p><p><b>  例 3.3.1</b></p><p>  【\source\WEB-INF\classes\test\TestBe

82、an.java】</p><p>  package test</p><p>  //建立名為TestBean的javabean</p><p>  public class TestBean{</p><p>  private String stringValue;</p><p>  private int n

83、um;</p><p><b>  //初始化</b></p><p>  public TestBean(){</p><p>  stringValue=”this is the initial value”;</p><p><b>  num=0;</b></p><p&

84、gt;<b>  }</b></p><p><b>  //設(shè)置VALUE</b></p><p>  public String getValue(){</p><p>  return stringValue;</p><p><b>  }</b></p>

85、<p>  //設(shè)置NUMBER</p><p>  public void setNumber(int number){</p><p>  num=number;</p><p><b>  }</b></p><p>  //得到NUMBER</p><p>  public i

86、nt getNumber(){ return num;</p><p><b>  }</b></p><p><b>  }</b></p><p>  在JSP頁面中調(diào)用JavaBean</p><p>  在命令方式下進入JavaBean所在的目錄,輸入>javac Test

87、Bean.java,生成TestBean.class文件。</p><p>  【\source\jsp\test\bean.jsp】</p><p><b>  <html></b></p><p><b>  <head></b></p><p><b>  &

88、lt;title></b></p><p><b>  bean</b></p><p><b>  </title></b></p><p><b>  </head></b></p><p><b>  <body&

89、gt;</b></p><p>  <jsp:useBean id=”bean” class=”test.BeanTest” scope=”session”/></p><p>  <%=sessionbean.getValue()%></p><p><b>  </body></b></

90、p><p><b>  </html></b></p><p>  以上程序為JAVABEAN和JSP組合的一個范例。</p><p> ?。ㄈ┏S肑avaBean屬性</p><p>  在JavaBean的scope有四種:page、request、session、application,它們的關(guān)系是app

91、lication>session>request>page。</p><p>  在JSP頁面中對JavaBean的內(nèi)部變量進行存取時,除了直接調(diào)用編寫好的SET、GET方法外,還可以使用<jsp:setProperty>和<jsp:getProperty>,使用這兩條指令往往能大大簡化JSP頁面中的代碼。</p><p>  set/getPro

92、perty語法:</p><p>  <jsp:setProperty name=”beanname” property=”propertyName” value=”value”></p><p>  <jsp:getProperty name=”beanname” property=”propertyName”></p><p>  四、J

93、SP處理表單事務</p><p>  HTTP協(xié)議解決了在一般情況下,用戶和服務器之間的交互操作問題.這個一般情況主要是指用戶瀏覽網(wǎng)頁等行為。這些行為中不需要WEB服務器記憶客戶端的狀態(tài)和事件,WEB服務器只是需要簡單地響應用戶端請求的過程,其實并不是一種真正的用戶和服務器之間的交互操作。</p><p>  隨著電子商務的迅猛發(fā)展,基于WEB和HTTP協(xié)議的電子商務應用系統(tǒng)對用戶和服務器

94、之間的交互操作功能提出了新的要求,因此也帶來了新的問題。例如,當用戶通過瀏覽器在網(wǎng)上商店或網(wǎng)上超市購物時,一般都是由用戶先選購物品,用戶選購的物品先暫時存放在一個“購物籃”的地方,用戶所有的選購物品工作完成后,再去“收銀臺”統(tǒng)一交費。這和我們在現(xiàn)實生活中的超市購物情景十分相似。這種仿照現(xiàn)實生活的網(wǎng)上購物模式就向我們提出了一個有趣的問題,:由于WEB服務器只能簡單的響應用戶端的請求,那它如何能夠知道我們的“購物籃”里有什么東西?

95、這時,WEB服務器不能順利地記住用戶在應用系統(tǒng)中所做的事務成了我們的新問題,它使得“購物籃”里有什么東西?即使服務器上保存了上下文信息,我們還會在電子商務應用中遇到其他問題。例如,當用戶從選擇商品的頁面轉(zhuǎn)到輸入信用卡帳號和用戶個人資料的反面,WEB服務器如何才能記住用戶買了些什么東西能?</p><p> ?。ㄒ唬〤OOKIE和SESSION</p><p>  一種應用比較廣泛也是比較有

96、效的方法是使用COOKIE機制。WEB服務器利用HTTP COOKIE來存儲有關(guān)購物SESSION的信息,后繼的各個鏈接可以查看當前SESSION,然后從WEB服務器的某些地方提取有關(guān)該SESSION的完整信息。然而,即使SERVLET提供了一個基于應用層的使用靈活的COOKIE接口,仍有一些繁瑣的細節(jié)問題需要處理:</p><p>  1、如何從其他COOKIE中分辨出保存SESSION標識的COOKIE。&l

97、t;/p><p>  2、如何設(shè)置合理的COOKIE過期時間</p><p>  3、如何把SESSION標識和服務器相關(guān)的信息聯(lián)系起來。</p><p>  4、COOKIE產(chǎn)生的文件讓獲取信用卡等保密資料成為了可能。</p><p> ?。ǘ㏒ESSION的處理</p><p>  SERVLET為我們提供了一種解決

98、基于WEB和HTTP協(xié)議的電子商務應用系統(tǒng)用戶和服務器之間交互操作問題的方案----HTTPSESSION API。</p><p>  HTTPSESSION API是一個基于COOKIE或者URL改寫機制的高級SESSION狀態(tài)跟蹤接口,如果瀏覽器URL支持COOKIE,則使用COOKIE;如果不支持,則自動使用URL改寫方法。SERVLET開發(fā)者無需關(guān)心細節(jié)問題,也無需直接處理COOKIE或附加到URL后的

99、信息,API自動問SERVLET開發(fā)者提供一個可以方便地存儲SESSION信息的地方。</p><p>  SESSION的信息保存在服務器端,SERVLET的ID保存在客戶機的COOKIE中。如果客戶機禁止COOKIE,SESSION ID就必須放在URL后面。SESSION一般在服務器上設(shè)置了一個30 分鐘的過期時間,當客戶停止活動后自動失效。SESSION中保存和檢索的信息不能是基本數(shù)據(jù)類型,如int do

100、uble等,而必須是JAVA的相應的OBJECT如INTEGER,Double。</p><p>  簡單SESSION實現(xiàn)功能:</p><p>  會話狀態(tài)維持是WEB應用開發(fā)者必須面對的問題.有多種方法可以用來解決這個問題,如使用COOKIE、隱藏的表單輸入域或直接將狀態(tài)信息附加到URL中。JAVA SERVLET提供了一個在多個請求之間持續(xù)有效的會話對象,該對象允許用戶存儲和提取會

101、話狀態(tài)信息。JSP也同樣支持SERVLET中的這個概念。</p><p>  在SUN的JSP中有許多隱含的對象,如REQUEST他是HTTPSERVLETREQUEST的一個子類。該對象包含了所有有關(guān)當前瀏覽器請求的信息,包括COOKIE、HTML表單變量等。SESSION對象也是一個隱含對象,在第一個JSP頁面中創(chuàng)建,并被關(guān)聯(lián)到REQUEST對象上。與ASP中的會話對象相似,JSP中的SESSION對象對于那

102、些希望通過多個頁面完成一個事物的應用是非常有用的。</p><p>  session1.htm----------------------------------------------</p><p><b>  <html></b></p><p><b>  <head></b></p

103、><p>  <meta http-equiv="Content-Type"content="text/html;charset=gb2312"></p><p>  <title>session demo</title></p><p><b>  </head><

104、/b></p><p><b>  <body></b></p><p>  <form method="post" action="session_2.jsp"></p><p>  please input your name:</p><p> 

105、 <input type=text name="thename"></p><p>  <input type=submit value="提交"></p><p><b>  </form></b></p><p><b>  </body>&l

106、t;/b></p><p><b>  </html></b></p><p>  session2.jsp---------------------------------------------------</p><p>  <%@page language="Java"%></p&

107、gt;<p>  <%!String name="";%></p><p><b>  <HTML></b></p><p><b>  <head></b></p><p>  <meta http-equiv="Content-Typ

108、e"content="text/html;charset=gb2312"></p><p>  <title>session demo</title></p><p><b>  </head></b></p><p><b>  <body><

109、/b></p><p><b>  <%</b></p><p>  name=request.getParameter("thename");</p><p>  session.putValue("thename",name);</p><p><b> 

110、 %></b></p><p>  your name: <%=name%></p><p><b>  <p></b></p><p>  <FORM METHOD="Post" ACTION="session_3.jsp"></p>

111、<p>  what did u like to eat?</p><p>  <input type=text name="food"></p><p><b>  <p></b></p><p>  <input type=submit value="提交"&g

112、t;</p><p><b>  </form></b></p><p><b>  </body></b></p><p><b>  </html></b></p><p>  session3.jsp------------------

113、---------------------------------</p><p>  <%@page language="java"%></p><p>  <jsp:useBean id="sessionbean" class="test.hello" scope="session"/&g

114、t;</p><p><b>  <html></b></p><p><b>  <head></b></p><p>  <meta http-equiv="Content-Type"content="text/html;charset=gb2312"

115、;></p><p>  <title>session demo</title></p><p><b>  </head></b></p><p><b>  <body></b></p><p>  <% String food=req

116、uest.getParameter("food");</p><p>  String name=(String) session.getValue("thename");</p><p><b>  %></b></p><p>  your name:<%=name%></p&

117、gt;<p><b>  <p></b></p><p>  you like eating <%=food%></p><p><b>  </body></b></p><p><b>  </html></b></p>

118、<p> ?。ㄈ┍韱卧诳蛻舳说尿炞C</p><p>  在表單的提交過程中,需要對用戶提交的信息進行客戶端的確認,以分擔服務器端為驗證信息所用的開銷。</p><p>  以下是用JavaScript腳本語言所編寫的客戶端頁面程序,對信息的正確性進行驗證。</p><p><b> ?、傧薅ㄗ址愋?lt;/b></p>

119、<p>  有時候需要對字符串中字符的類型進行限定,比如檢查該字符串是不是合法的電子郵件地址,該字符串是不是一個整數(shù),</p><p><b>  <html></b></p><p><b>  <head></b></p><p>  <title>check</ti

溫馨提示

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

評論

0/150

提交評論