版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)</p><p><b> 畢業(yè)生論文(設(shè)計(jì))</b></p><p> 課題名稱:購(gòu)物網(wǎng)站商城系統(tǒng)</p><p><b> 學(xué)生姓名:</b></p><p><b> 指導(dǎo)教師:</b></p><p&
2、gt;<b> 購(gòu)物網(wǎng)站商城系統(tǒng)</b></p><p><b> 摘 要</b></p><p> 隨著網(wǎng)絡(luò)的 發(fā)展,網(wǎng)絡(luò)已漸漸融入到人們?nèi)粘I钪?,網(wǎng)絡(luò)購(gòu)物逐漸成為人們購(gòu)物的一種新方式, 易趣、淘寶等購(gòu)物網(wǎng)站已是眾多網(wǎng)上購(gòu)物者喜歡光顧的地方。</p><p> Internet上的企業(yè)計(jì)算飛速發(fā)展,Web服務(wù)
3、器早已不再局限于過去的HTTP服務(wù),CGI、PHP、ASP等技術(shù)早已使服務(wù)器端的數(shù)據(jù)庫(kù)服務(wù)和應(yīng)用服務(wù)成為所有網(wǎng)站的家常便飯。而具有跨平臺(tái)特性的Java更是震動(dòng)了Web世界。Sun公司的J2EE平臺(tái)以它的優(yōu)良特性大大簡(jiǎn)化了服務(wù)器端多層企業(yè)應(yīng)用的開發(fā),已經(jīng)成為電子商務(wù)網(wǎng)站的事實(shí)標(biāo)準(zhǔn)。</p><p> 基于商務(wù)網(wǎng)站的建設(shè)和web技術(shù)的發(fā)展,采用J2EE平臺(tái)開發(fā)網(wǎng)上購(gòu)物平臺(tái)。該平臺(tái)采用APACHE作為Web服務(wù)器和應(yīng)
4、用服務(wù)器,后端連接Microsoft SQL Server數(shù)據(jù)庫(kù);網(wǎng)站中主要經(jīng)營(yíng)服裝類,發(fā)布最新的服飾資訊、流行趨勢(shì)和各類經(jīng)典服裝。提供方便的檢索工具供用戶查詢所需的款式,允許顧客根據(jù)網(wǎng)站的不足提出意見和建議,從而不斷改進(jìn)網(wǎng)站功能和建設(shè)。</p><p> 關(guān)鍵詞:網(wǎng)站購(gòu)物 購(gòu)物系統(tǒng)</p><p><b> 目 錄</b></p><p&g
5、t; 第一章 概述 ………………………………………………………………………5</p><p> 一、WEB技術(shù)的發(fā)展…………………………………………………………5</p><p> (一)WEB頁(yè)面的開發(fā) ……………………………………………………5</p><p> (二)電子商務(wù)的興起………………………………………………………5</p>&
6、lt;p> 二、研究現(xiàn)狀 …………………………………………………………………5</p><p> (一)網(wǎng)站開發(fā)環(huán)境…………………………………………………………5</p><p> (二)商務(wù)網(wǎng)站存在的問題…………………………………………………6</p><p> 三、開發(fā)技術(shù) …………………………………………………………………6</p>
7、<p> (一)JSP和ASP …………………………………………………………6</p><p> (二)JSP技術(shù)綜述及其組件在B2C商務(wù)網(wǎng)站上的應(yī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)境的測(cè)試…………………………………………………
9、……8</p><p> 二、數(shù)據(jù)庫(kù)及數(shù)據(jù)庫(kù)連接所需配置……………………………………………8</p><p> 三、Dreamweaver UltraDev 4.0…………………………………………………8</p><p> 第三章 JSP技術(shù)及應(yīng)用 …………………………………………………………9</p><p> 一、JSP原理及
10、特點(diǎn) …………………………………………………………9</p><p> 二、JDBC及數(shù)據(jù)管理的連接…………………………………………………10</p><p> (一)Java Database Connectivity (JDBC) …………………………………10</p><p> (二)JDBC驅(qū)動(dòng)及連接 ……………………………………………………11&l
11、t;/p><p> (三)JDBC支持三層模型 ……………………………………………………12</p><p> 三、JSP和JavaBean…………………………………………………………13</p><p> (一)JavaBean原理和機(jī)制…………………………………………………13</p><p> (二)編寫JavaBean源文件 …
12、……………………………………………15</p><p> (三)常用JavaBean屬性 …………………………………………………16</p><p> 四、JSP處理表單事務(wù) ………………………………………………………16</p><p> (一)COOKIE和SESSION ………………………………………………17</p><p>
13、; (二)SESSION的處理 ……………………………………………………17</p><p> (三)表單在客戶端的驗(yàn)證 ……………………………………………………19</p><p> (四)表單在服務(wù)端的驗(yàn)證 ……………………………………………………20</p><p> 第四章 流程設(shè)計(jì)和數(shù)據(jù)表…………………………………………………………22</
14、p><p> 一、Dreamweaver UltraDev 4…………………………………………………22</p><p> 二、系統(tǒng)流程圖 …………………………………………………………………22</p><p> 三、數(shù)據(jù)流程圖 …………………………………………………………………22</p><p> 四、業(yè)務(wù)流程 ……………………………
15、………………………………………23</p><p> (一)網(wǎng)上交易部分……………………………………………………………23</p><p> (二)網(wǎng)上交易業(yè)務(wù)流程圖 …………………………………………………23</p><p> (三)購(gòu)物流程 ………………………………………………………………24</p><p> 五、數(shù)據(jù)表…………
16、……………………………………………………………25</p><p> 第五章 安全分析……………………………………………………………………27</p><p> 概述…………………………………………………………………………27</p><p> 典型分析……………………………………………………………………27</p><p> (一
17、)源代碼暴露類 …………………………………………………………27</p><p> (二)遠(yuǎn)程程序執(zhí)行類 ………………………………………………………29</p><p> (三)其他類別 ………………………………………………………………29</p><p> 三、安全啟示……………………………………………………………………29</p><p
18、> 第六章 J2EE和高級(jí)…………………………………………………………………30</p><p> J2EE的核心API……………………………………………………………30</p><p> J2EE的設(shè)計(jì)模式……………………………………………………………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、文獻(xiàn) ………………………………………………………………………………38</p><p><b> 購(gòu)物網(wǎng)站商城系統(tǒng)</b></p><p><b> 設(shè) 計(jì)</b></p><p><b> 第一章 概述</b></p><p> 一、Web技術(shù)的發(fā)展</p&
22、gt;<p> 1991年,歐洲粒子物理研究所(CERN)的軟件工程師Tim Berners-Lee發(fā)布了他的萬(wàn)維網(wǎng)(World Wide Web)。從此以后,通過互聯(lián)網(wǎng)看到的將不僅僅是文字,互聯(lián)網(wǎng)有了圖片,后來又有了音頻、動(dòng)畫甚至視頻。</p><p> WWW的成功在于它制定了一套標(biāo)準(zhǔn)的,易于掌握的超文本標(biāo)記語(yǔ)言HTML、信息資源的統(tǒng)一定位格式URL和超文本傳輸協(xié)議HTTP,用超鏈接和超媒體
23、把Internet上各種相關(guān)數(shù)據(jù)有機(jī)地鏈接起來,使互聯(lián)網(wǎng)上的資源實(shí)現(xiàn)了共享。你只需要點(diǎn)擊鼠標(biāo)就可以瀏覽來自世界各地的豐富的、直觀的信息,一個(gè)不懂電腦的人也可以很快成為Internet 行家。</p><p> (一)WEB頁(yè)面的開發(fā) </p><p> 開始的web頁(yè)面都是靜態(tài)文本,頁(yè)面呆板,互動(dòng)性不強(qiáng),但是隨著技術(shù)的發(fā)展,很快各種各樣的動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)涌現(xiàn)出來,這其中包括CGI, ASP
24、, PHP, Java,腳本語(yǔ)言如:JavaScript, VBScript等等。JavaScript 和 VBScript可以嵌入在HTML中實(shí)現(xiàn)一些客戶端的動(dòng)態(tài)功能;CGI大大擴(kuò)展了Web服務(wù)的功能,可以實(shí)現(xiàn)web服務(wù)器與數(shù)據(jù)庫(kù)及文件系統(tǒng)、應(yīng)用程序的通信,動(dòng)態(tài)生成超文本,于是網(wǎng)頁(yè)活了起來。但CGI的運(yùn)用需要具有一定的編程能力及算法技巧,而且與HTML要分開編寫,維護(hù)和編寫都比較困難,效率和安全性也不好。 ASP, PHP克服了這些缺
25、點(diǎn),獲得了廣泛的應(yīng)用。Java的出現(xiàn)給Web帶來了新的活力。它具有完全的平臺(tái)無(wú)關(guān)性,一次編寫處處運(yùn)行,用Java可以編寫web頁(yè)中執(zhí)行的小程序Applet。它簡(jiǎn)單、面向?qū)ο?、安全、健壯、分布式等?yōu)點(diǎn)特別適合開發(fā)web應(yīng)用。在美國(guó),JSP+ Servlet+ EJB已經(jīng)成為電子商務(wù)網(wǎng)站的開發(fā)標(biāo)準(zhǔn)。</p><p> ?。ǘ╇娮由虅?wù)的興起</p><p> “由于電子商務(wù)在全球的迅速發(fā)展,
26、現(xiàn)在全球有1.2億人通過互聯(lián)網(wǎng)購(gòu)買過商品或服務(wù)。這項(xiàng)研究建立在34個(gè)國(guó)家互聯(lián)網(wǎng)用戶投票并與大約28,000人面談的基礎(chǔ)上”。</p><p> ――Angus Reid Group</p><p> 對(duì)網(wǎng)民第一次網(wǎng)上購(gòu)物時(shí)間的調(diào)查顯示,絕大部分網(wǎng)民近三年才開始進(jìn)行網(wǎng)上購(gòu)物,而且人數(shù)比例逐年遞增。98、99年開始網(wǎng)上購(gòu)物的網(wǎng)民很少,合計(jì)不足5%;2000年躍升至23%,之后逐漸攀升,至2
27、002年則高達(dá)40%左右,2000年以后開始網(wǎng)上購(gòu)物的網(wǎng)民合計(jì)占總?cè)藬?shù)的90%以上。數(shù)據(jù)表明,網(wǎng)民對(duì)網(wǎng)上購(gòu)物的熱情并沒有被互聯(lián)網(wǎng)的寒冬冷卻,相反越來越多的網(wǎng)民開始嘗試網(wǎng)上購(gòu)物,隨著網(wǎng)民數(shù)量持續(xù)高速增長(zhǎng),電子商務(wù)的消費(fèi)環(huán)境和受眾群體網(wǎng)上消費(fèi)意識(shí)也將得到有效地改善。網(wǎng)上購(gòu)物是電子商務(wù)的基礎(chǔ)形式,如果能夠抓住這一時(shí)機(jī),適時(shí)推出受網(wǎng)民喜愛的網(wǎng)上商品和網(wǎng)上交易方式,國(guó)內(nèi)電子商務(wù)企業(yè)的發(fā)展將可以提高一個(gè)臺(tái)階。 </p><p&g
28、t;<b> 二、研究現(xiàn)狀</b></p><p><b> ?。ㄒ唬┚W(wǎng)站開發(fā)環(huán)境</b></p><p> 在國(guó)外,Jsp+Servlet+Jdbc+JavaBeans已經(jīng)成為開發(fā)電子商務(wù)平臺(tái)的主流技術(shù),而在國(guó)內(nèi)用JSP的技術(shù)網(wǎng)站很少,還未成為一個(gè)主流的開發(fā)工具,主要原因是在國(guó)內(nèi)很多服務(wù)器平臺(tái)都是WINNT/WINDOWS2K,并且ICP服
29、務(wù)商并未提供JSP服務(wù),或許是對(duì)Jsp了解比較少的原因,但是,國(guó)內(nèi)還是有許多成功的Jsp站點(diǎn)。如,ChinaRen網(wǎng)站采用的是Jsp技術(shù),還有China.com中華網(wǎng)的緣分的天空Lovesky.China.com,是一個(gè)交友的大型娛樂網(wǎng)站。</p><p> ?。ǘ┥虅?wù)網(wǎng)站存在的問題</p><p> 現(xiàn)今,購(gòu)物網(wǎng)站主要存在以下一些問題:</p><p> ?。?/p>
30、、目前,絕大多數(shù)的電子商務(wù)網(wǎng)站都還不是完全意義上的電子商務(wù)網(wǎng)站。雖然中國(guó)的絕大多數(shù)電子商務(wù)網(wǎng)站都已經(jīng)實(shí)現(xiàn)了網(wǎng)上接受訂單、網(wǎng)上支付的服務(wù),但大多數(shù)網(wǎng)民采用的仍是在線訂購(gòu)、離線支付的方式。并且,目前網(wǎng)站與其供貨商和配送單位采用的多是傳統(tǒng)的溝通方式,效率比較低。</p><p> 2、商品價(jià)格并沒有足夠的競(jìng)爭(zhēng)力。網(wǎng)上的價(jià)格并沒有很強(qiáng)的競(jìng)爭(zhēng)力,大多數(shù)產(chǎn)品加上運(yùn)費(fèi)后和傳統(tǒng)商場(chǎng)的價(jià)格基本持平,而一些計(jì)算機(jī)硬件產(chǎn)品和通訊產(chǎn)品
31、的價(jià)格則還要高于傳統(tǒng)市場(chǎng)的價(jià)格。</p><p> 3、訂貨一確認(rèn)一付款一認(rèn)證一發(fā)貨一送貨各環(huán)節(jié)結(jié)合不緊密,經(jīng)常出現(xiàn)脫節(jié)的現(xiàn)象。發(fā)生了問題,調(diào)查起來比較困難。</p><p> ?。础⑷狈?chuàng)造力。盲目追隨成功網(wǎng)站的模式,使得電子商務(wù)類網(wǎng)站呈現(xiàn)出“百站一面”的尷尬局面。</p><p><b> 三、開發(fā)技術(shù)</b></p>&
32、lt;p> ?。ㄒ唬㎎SP和ASP</p><p> ASP是微軟的產(chǎn)品,其應(yīng)用只能是在Windows平臺(tái)上,移植性差,而且以源代碼的形式存放在服務(wù)器端,安全性差。每次由服務(wù)器解釋運(yùn)行,運(yùn)行效率不高。Jsp頁(yè)面文件執(zhí)行時(shí)被編譯成字節(jié)代碼,由客戶端流覽的Java虛擬機(jī)解釋執(zhí)行,不再是源代碼,因此執(zhí)行效率和安全性高。將數(shù)據(jù)庫(kù)連接的重要信息存放在JavaBean文件后,可以編譯成虛擬機(jī)才能解釋的字節(jié)代碼,確保了
33、數(shù)據(jù)庫(kù)的安全。</p><p> 在ASP技術(shù)里,通過Web頁(yè)面要實(shí)現(xiàn)一些特定的功能比較困難,比如基于網(wǎng)頁(yè)的報(bào)表,打印實(shí)現(xiàn)起來就比較麻煩。ASP提供的解決方案是自己開發(fā)組件,通過在服務(wù)器端注冊(cè)組件,成為獨(dú)立的可以重復(fù)利用的模塊供讀者調(diào)用。因此要求讀者需要掌握比較復(fù)雜的變成語(yǔ)言的開發(fā)技術(shù)。在JSP開發(fā)技術(shù)里,可以通過開發(fā)JavaBean文件實(shí)現(xiàn)同樣的功能,JavaBean不需要注冊(cè),只要放置在相應(yīng)的目錄下就可以運(yùn)
34、行??梢詫?shí)現(xiàn)ASP的COM組件同樣的功能。此外JSP推出主要就是考慮到平臺(tái)的無(wú)關(guān)性。JSP代碼可以在APACHE、IIS等服務(wù)器上執(zhí)行,支持大部分操作系統(tǒng)。JSP繼承JAVA技術(shù)的優(yōu)點(diǎn):一次運(yùn)行,處處運(yùn)行。</p><p> ?。ǘ㎎SP技術(shù)綜述及其組件在B2C商務(wù)網(wǎng)站上的應(yīng)用</p><p> Servlet可以讓你建立動(dòng)態(tài)生成的網(wǎng)頁(yè),而網(wǎng)頁(yè)中包含有從服務(wù)器方的Java對(duì)象中所獲得的
35、數(shù)據(jù)。但是你也得知道servlet 生成網(wǎng)頁(yè)的方法就是在Java類中嵌入HTML標(biāo)簽和表述代碼。這就意味著改變表述代碼需要修改和重新編譯servlet源文件。因?yàn)樵O(shè)計(jì)HTML頁(yè)面的設(shè)計(jì)人員可能與編寫servlet代碼的開發(fā)人員不是同一個(gè)人,更新基于servlet的web應(yīng)用程序就成了一件非常棘手的事情。JSP網(wǎng)頁(yè)可以非常容易的與靜態(tài)模板結(jié)合,包括HTML 或XML 片段,以及生成動(dòng)態(tài)內(nèi)容的代碼。 針對(duì)代碼的重復(fù)使用,SUN公司提
36、出了JavaBean技術(shù),類似于microsoft的組件對(duì)象模型COM技術(shù),JavaBean的價(jià)值在于它可以經(jīng)由一組屬性來使用,而這些屬性則提供對(duì)JavaBeans設(shè)定的存取。JavaBean就好比一個(gè)單位,而單位的名稱、地址、以及規(guī)模都可以稱之為屬性。在JSP原有的優(yōu)點(diǎn)上支持緊湊方便的創(chuàng)建和使用,提高了分部計(jì)算機(jī)制的強(qiáng)壯性。</p><p> J2EE平臺(tái)為應(yīng)用程序服務(wù)器定義了一個(gè)服務(wù)器端組件模型,簡(jiǎn)化了中間
37、件組件的開發(fā)。J2EE的相關(guān)技術(shù),包括RMI, CORBA, JSP, EJB等等,極大的簡(jiǎn)便了商務(wù)網(wǎng)站的開發(fā), 可以從中選擇合適的技術(shù)構(gòu)建發(fā)布平臺(tái)的框架,已逐漸成為開發(fā)標(biāo)準(zhǔn)。</p><p><b> 四、本文的主要工作</b></p><p> 本文討論了服務(wù)器端三層模型的特點(diǎn),分析了Dreamweaver UltraDev開發(fā)工具的特點(diǎn)及JSP開發(fā)技巧,論證
38、了創(chuàng)建購(gòu)物網(wǎng)站的框架結(jié)構(gòu)以及前臺(tái)WEB界面和后臺(tái)數(shù)據(jù)庫(kù)的連接設(shè)置,對(duì)于未來的一個(gè)發(fā)展方向和平臺(tái)的安全性解析,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> ?。ǘ㎎SP環(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> 右鍵點(diǎn)擊“我的電腦”,在彈出的菜單中點(diǎn)“屬性”,在系統(tǒng)特性里選擇“高級(jí)”,找到“環(huán)境變量”,點(diǎn)擊進(jì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)境的測(cè)試</p><p> 現(xiàn)在讓我們來測(cè)試配置是否成功,在IE中輸入http://localhost:8080/,如果出現(xiàn)tomcat的歡迎畫面則表示
44、安裝成功。</p><p> 二、數(shù)據(jù)庫(kù)及數(shù)據(jù)庫(kù)連接所需配置</p><p> 本文采用了中小型網(wǎng)站使用的MSSQL SERVER 2000來作為后臺(tái)數(shù)據(jù)庫(kù)。</p><p> 最后為了能和數(shù)據(jù)庫(kù)(MSSQL)連接,還需要增加mssqlserver.jar,msutil.jar,msbase.jar三個(gè)文件到<tomcat-root>\common
45、\lib目錄下。</p><p> 三、Dreamweaver UltraDev 4.0</p><p> Macromedia Dreamweaver UltraDev是專門為軟件開發(fā)所設(shè)計(jì)的,它能幫助我們更容易更迅速的完成工作。</p><p> UltraDev功能全面,能夠制作三種基本動(dòng)態(tài)網(wǎng)站ASP、JSP、ColdFusion;其次,UltraDev
46、能迅速建立你的動(dòng)態(tài)網(wǎng)站、與現(xiàn)存軟件的網(wǎng)絡(luò)接口、以及動(dòng)態(tài)支持的數(shù)據(jù)庫(kù)??梢苑浅V庇^地開發(fā)網(wǎng)絡(luò)軟件,同時(shí)保持對(duì)代碼的完全控制。拖放服務(wù)器行為可以很容易地制作顯示、導(dǎo)航和更新數(shù)據(jù)庫(kù)內(nèi)容的網(wǎng)頁(yè);再次,Macromedia公司提供了大量的第三方插件,其中包括了多種購(gòu)物車功能插件。除此之外,UltraDev的擴(kuò)展功能提供了開發(fā)在線商店所需的所有東西,讓這些商店能夠支持多種功能,而且容易維護(hù)。同時(shí),你能方便地制作使用內(nèi)置稅和運(yùn)輸計(jì)算、復(fù)雜的商業(yè)選擇、
47、實(shí)時(shí)信用卡交易和其他功能的電子商務(wù)網(wǎng)站。</p><p> UltraDev的工作流程大致分為以下6步:</p><p><b> 1、系統(tǒng)分析。</b></p><p> 要?jiǎng)?chuàng)建一個(gè)具有電子商務(wù)功能的網(wǎng)站,首先就是需求分析。</p><p><b> 2、制作靜態(tài)頁(yè)面。</b></p
48、><p> 可以運(yùn)用Dreamweaver所有的設(shè)計(jì)工具來完成。</p><p><b> 3、定義記錄集。</b></p><p> 在應(yīng)用程序中使用數(shù)據(jù)庫(kù),接下來就要定義記錄集,以便臨時(shí)從數(shù)據(jù)庫(kù)中提取數(shù)據(jù)。應(yīng)用程序不能直接調(diào)用數(shù)據(jù)庫(kù),必須以記錄集為中介,我們可以將數(shù)據(jù)綁定面板中對(duì)應(yīng)記錄集的字段添加大WEB頁(yè)面上,也就添加了動(dòng)態(tài)內(nèi)容。<
49、;/p><p><b> 4、添加動(dòng)態(tài)內(nèi)容。</b></p><p> 在完成了第三步后,就可以使用UltraDev添加動(dòng)態(tài)內(nèi)容,不必考慮如何插入服務(wù)器端腳本到WEB頁(yè)中,添加時(shí)我們只需指明位置和內(nèi)容。</p><p> 5、添加服務(wù)器端的行為,激活動(dòng)態(tài)頁(yè)面。</p><p> 所謂的服務(wù)器行為就是用VBScript
50、、JavaScript、Java或ColdFusion編寫的運(yùn)行在服務(wù)器上的腳本</p><p> 6、編輯和調(diào)試WEB頁(yè)。</p><p> Ultra提供了三種編輯環(huán)境:Dreamweaver傳統(tǒng)的可視化編輯環(huán)境、UltraDev活動(dòng)數(shù)據(jù)編輯環(huán)境和源代碼編輯環(huán)境。</p><p> 第三章 JSP技術(shù)及應(yīng)用</p><p> 一
51、、JSP原理及特點(diǎn)</p><p> 一些人可能已經(jīng)對(duì)微軟的Active Server Pages(ASP)很熟悉了;JSP在多數(shù)方面與ASP功能相同但是具有平臺(tái)無(wú)關(guān)特性。他們都用來幫助Web內(nèi)容的開發(fā)者們使用相對(duì)少的代碼創(chuàng)建動(dòng)態(tài)的網(wǎng)頁(yè)。一個(gè)JSP頁(yè)面包含摻雜著Java代碼的HTML代碼。當(dāng)客戶機(jī)請(qǐng)求這個(gè)頁(yè)面時(shí),服務(wù)器處理Java代碼,把它生成的HTML頁(yè)返回給瀏覽器。</p><p>
52、 Java Server Page,簡(jiǎn)稱JSP,它不但擁有Servlet的所有特性與優(yōu)點(diǎn),更增加了程序開發(fā)上的彈性,除了Java程序本身跨平臺(tái)的優(yōu)點(diǎn),它是直接在HTML中內(nèi)嵌JSP程序代碼,使得程序開發(fā)更為容易、方便。JSP是完全架構(gòu)在Servlet程序上,不同的是,JSP程序是由JSP Engine先將之轉(zhuǎn)換成相對(duì)應(yīng)的Servlet程序代碼,接著將它編譯成類文件載入執(zhí)行,之后它就如同一般的Servlet一樣。</p>
53、<p> 從表3.1我們可以看到JSP和ASP的區(qū)別。</p><p> 當(dāng)客戶端請(qǐng)求一個(gè)JSP網(wǎng)頁(yè)時(shí),JSP Engine會(huì)檢查所請(qǐng)求的JSP網(wǎng)頁(yè)是否已經(jīng)處于被載入執(zhí)行的狀態(tài),如果沒有,它會(huì)先讀取JSP程序文件,將它換成Servlet程序代碼編譯載入,然后才執(zhí)行請(qǐng)求的服務(wù)。也是就說,只有當(dāng)客戶端第一次請(qǐng)求JSP網(wǎng)頁(yè)時(shí),才需要被轉(zhuǎn)換、編譯和載入,做到了一次執(zhí)行,處處執(zhí)行。JSP的Servlet Cl
54、ass是JSP Engine自動(dòng)幫我們編譯產(chǎn)生的,不像Servlet需要手動(dòng)編譯,另外,在JSP程序中建立新的對(duì)象和Java Bean非常方便容易。許多應(yīng)用程序服務(wù)器都支持JSP網(wǎng)頁(yè)程序,如BEA的WebLogic、IBM的WebSphere,也已有不少的電子商務(wù)網(wǎng)站紛紛采用JSP來架站,JSP儼然成為假設(shè)商務(wù)網(wǎng)站的企業(yè)標(biāo)準(zhǔn)。</p><p> 我們來看一個(gè)JSP頁(yè)面的例子。它顯示了服務(wù)器當(dāng)前的日期和時(shí)間。這里
55、不對(duì)代碼的細(xì)節(jié)做解釋,但是請(qǐng)注意Java代碼放在在<%和%>兩個(gè)符號(hào)之間, Java表達(dá)式放在<%=和%>之間。</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ù)庫(kù)管理的連接</p>&l
57、t;p> ?。ㄒ唬㎎ava Database Connectivity (JDBC) </p><p> 要實(shí)現(xiàn)動(dòng)態(tài)網(wǎng)頁(yè)的實(shí)現(xiàn)少不了與數(shù)據(jù)庫(kù)的連接,接下來介紹JDBC技術(shù)。</p><p> JDBC的 API通過一個(gè)統(tǒng)一的方式訪問不同的數(shù)據(jù)庫(kù)。類似ODBC,JDBC 對(duì)程序開發(fā)人員隱藏了數(shù)據(jù)庫(kù)產(chǎn)權(quán)的問題。因?yàn)樗墙⒃贘ava之上的,JDBC 也能供提供平臺(tái)無(wú)關(guān)性的數(shù)據(jù)庫(kù)訪問。
58、 </p><p> JDBC是一個(gè)規(guī)范,遵循JDBC接口規(guī)范,各個(gè)數(shù)據(jù)庫(kù)廠家各自實(shí)現(xiàn)自己的驅(qū)動(dòng)程序(Driver),如下圖3.2所示: </p><p> 應(yīng)用程序在獲取數(shù)據(jù)庫(kù)連接時(shí),需要以URL的方式指定是那種類型的Driver,在獲得特定的連接后,可按照固定的接口操作不同類型的數(shù)據(jù)庫(kù),如: 分別獲取Statement、執(zhí)行SQL獲得ResultSet等<
59、/p><p> JDBC 定義了四種本質(zhì)上不同的數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序,我們分別闡述: </p><p> Type 1: JDBC-ODBC 橋</p><p> 當(dāng)JDBC還在襁褓中的時(shí)候,JDBC-ODBC 橋被證明是最有用的。使用它,程序開發(fā)人員可以使用JDBC來訪問ODBC數(shù)據(jù)源。它的缺陷是,需要客戶機(jī)使用微軟的windows操作系統(tǒng),并且安裝ODBC驅(qū)動(dòng)程序。
60、通過使用這種驅(qū)動(dòng)程序,你犧牲了JDBC的平臺(tái)無(wú)關(guān)性。另外, ODBC driver還需要客戶端的管理。 </p><p> Type 2: JDBC-native 驅(qū)動(dòng)橋</p><p> JDBC-native 驅(qū)動(dòng)橋提供了建立在本來的數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序之上的JDBC接口,沒有使用ODBC。 JDBC驅(qū)動(dòng)程序把標(biāo)準(zhǔn)的JDBC的調(diào)用轉(zhuǎn)換成原始的數(shù)據(jù)庫(kù)API調(diào)用。使用Type2 驅(qū)動(dòng)同樣犧牲
61、了平臺(tái)無(wú)關(guān)性,因?yàn)檫@需要安裝客戶端的數(shù)據(jù)庫(kù)驅(qū)動(dòng)代碼。 </p><p> Type 3: JDBC-network 橋</p><p> JDBC-network 橋驅(qū)動(dòng)不需要客戶端的數(shù)據(jù)庫(kù)驅(qū)動(dòng)器。它利用網(wǎng)絡(luò)服務(wù)器的中間件來訪問數(shù)據(jù)庫(kù)。這使得諸如負(fù)載均衡、連接池、數(shù)據(jù)緩存之類的技術(shù)成為可能。 因?yàn)閠ype 3驅(qū)動(dòng)程序經(jīng)常需要一個(gè)相對(duì)較少的下載時(shí)間,具有平臺(tái)無(wú)關(guān)性,不需要客戶端的安裝和管
62、理,這種方式最適合Internet應(yīng)用。 </p><p> Type 4: 純Java驅(qū)動(dòng)</p><p> Type 4 用純粹的Java數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序提供數(shù)據(jù)庫(kù)訪問。由于type 4驅(qū)動(dòng)程序在客戶機(jī)上運(yùn)行和直接訪問數(shù)據(jù)庫(kù),在這種方式下執(zhí)行意味著2層結(jié)構(gòu)。在多層結(jié)構(gòu)中對(duì)type 4驅(qū)動(dòng)的更好應(yīng)用是使用EJB封裝數(shù)據(jù)訪問代碼,讓EJB為客戶端提供數(shù)據(jù)庫(kù)無(wú)關(guān)的服務(wù)。 </p>
63、;<p> ?。ǘ㎎DBC驅(qū)動(dòng)及連接</p><p> APACHE Server 為一些常用的數(shù)據(jù)庫(kù)提供了JDBC驅(qū)動(dòng),包括Oracle, Sybase, Microsoft SQL Server和Informix。</p><p> 使用JSP訪問數(shù)據(jù)庫(kù)實(shí)際上就是先建立一個(gè)JavaBean組件,讓它來完成與數(shù)據(jù)庫(kù)的連接查詢功能,并返回一個(gè)數(shù)據(jù)集合(ResultSet
64、),然后在JSP頁(yè)面中使用<jsp:useBean>標(biāo)簽創(chuàng)建Beans的實(shí)例,通過它來對(duì)數(shù)據(jù)庫(kù)進(jìn)行查詢修改等操作。</p><p> 例. 程序3.2.1</p><p><b> try{</b></p><p> //加載數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序,使用MSSQL JDBC驅(qū)動(dòng)</p><p> Class.
65、forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); </p><p><b> //建立數(shù)據(jù)庫(kù)連接</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對(duì)象,用于數(shù)據(jù)庫(kù)語(yǔ)句的執(zhí)行、返回</p><p> Statement stmt=conn.creat
67、eStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); </p><p><b> //定義數(shù)據(jù)庫(kù)語(yǔ)句</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> 您的第一個(gè)字段內(nèi)容為:<%=rs.getString(1)%> </p><p> 您的第二個(gè)
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ū)動(dòng)作用下,與數(shù)據(jù)庫(kù)建立連接。</p><p> 其JDBC常用對(duì)象如表3.3所示</p><p> ?。ㄈ㎎DBC支持三層模型</p><p> JDBC支持兩層模型,也支持三層模型訪問數(shù)據(jù)庫(kù)。 </p><p> 兩層模型中,一個(gè)java Appple
71、或者一個(gè)java應(yīng)用程序直接同數(shù)據(jù)庫(kù)連接。這就需要能直接被訪問的數(shù)據(jù)庫(kù)進(jìn)行連接的JDBC驅(qū)動(dòng)器。用戶的SQL語(yǔ)句被傳送給數(shù)據(jù)庫(kù),而這些語(yǔ)句執(zhí)行的結(jié)果將被傳回給用戶。數(shù)據(jù)庫(kù)可以在同一機(jī)器上,也可以另一機(jī)器上通過網(wǎng)絡(luò)進(jìn)行連接。這被稱為“Client/Server”結(jié)構(gòu),用戶的計(jì)算機(jī)作為Client,運(yùn)行數(shù)據(jù)庫(kù)的計(jì)算機(jī)作為Server。這個(gè)網(wǎng)絡(luò)可是intranet,比如連接全體雇員的企業(yè)內(nèi)部網(wǎng),當(dāng)然也可以是internet。 </p&g
72、t;<p> 在三層模型中,命令將被發(fā)送到服務(wù)的“中間層”,而“中間層”將SQL語(yǔ)句發(fā)送到數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)處理SQL語(yǔ)句并將結(jié)果返回“中間層”,然后“中間層”將它們 返回用戶。MIS管理員將發(fā)現(xiàn)三層模型很有吸引力,因?yàn)椤爸虚g層”可以進(jìn)行對(duì)訪問的控制并協(xié)同數(shù)據(jù)庫(kù)的更新,另一個(gè)優(yōu)勢(shì)就是如果有一個(gè)“中間層”用戶就可以使用一個(gè)易用的高層的API,這個(gè)API可以由“中間層”進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換成底層的調(diào)用。而且,在許多情況下,三層模型可以
73、提供更好的性能。 </p><p> “中間層”通常還是用C或C++實(shí)現(xiàn),以保證其高性能。但隨著優(yōu)化編譯器的引入,將java的字節(jié)碼轉(zhuǎn)換成高效的機(jī)器碼,用java來實(shí)現(xiàn)“中間層”將越來越實(shí)際。而JDBC是允許從一個(gè)java“中間層”訪問數(shù)據(jù)庫(kù)的關(guān)鍵。</p><p> 三、JSP與JavaBean</p><p> ?。ㄒ唬㎎avaBean原理和機(jī)制</p
74、><p> JSP的一大特點(diǎn)就是與JavaBeans的結(jié)合,而JSP與JavaBeans結(jié)合的一個(gè)突出的優(yōu)點(diǎn)是頁(yè)面顯示和業(yè)務(wù)邏輯的分離。這可以使團(tuán)隊(duì)協(xié)作的更好,開發(fā)出更高質(zhì)量的站點(diǎn),而且非常適合于團(tuán)隊(duì)開發(fā):</p><p> 1、Java開發(fā)人員致力于將業(yè)務(wù)邏輯在JavaBeans中實(shí)現(xiàn)。</p><p> 2、eb開發(fā)人員致力于頁(yè)面的實(shí)現(xiàn),即JavaBeans如
75、何在JSP中工作和設(shè)計(jì)JSP頁(yè)面。</p><p> 3、主頁(yè)人員和美工致力于站點(diǎn)的設(shè)計(jì)和頁(yè)面表現(xiàn)風(fēng)格。這種結(jié)構(gòu)使得Web站點(diǎn)的維護(hù)變得容易,特別對(duì)于大型的電子商務(wù)網(wǎng)站更是如此。</p><p> JavaBean是一種可以重用的Java組件,它類似于COM,在JSP程序中常用來封裝事物邏輯、數(shù)據(jù)庫(kù)操作等,可以很好的實(shí)現(xiàn)業(yè)務(wù)邏輯和前臺(tái)程序的分離,使得系統(tǒng)具有更好的健壯性和靈活性。<
76、;/p><p> 事件處理是JavaBeans體系結(jié)構(gòu)的核心之一。通過事件處理機(jī)智,可以讓一些組件作為事件源,發(fā)出可被描述環(huán)境或其他組件接受的事件。這樣,不同的組件就可在構(gòu)造工具內(nèi)組合在一起,組件之間通過事件的傳遞進(jìn)行通信,構(gòu)成一個(gè)應(yīng)用。從概念上講,事件是一種在“源對(duì)象”和“監(jiān)聽對(duì)象”之間、某種狀態(tài)發(fā)生變化的傳遞機(jī)智。事件有許多不同的用途,如:鼠標(biāo)事件、窗口邊界改變事件、鍵盤事件等。在Java和JavaBeans中
77、則是定義了一個(gè)一般的、可擴(kuò)充的事件機(jī)制,它能夠:</p><p> 1、對(duì)事件類型和傳遞模型的定義和擴(kuò)充提供一個(gè)公共框架,并適合于廣泛的應(yīng)用。</p><p> 2、與Java語(yǔ)言和環(huán)境有較高的集成度。</p><p> 事件能描述環(huán)境捕獲和被激發(fā)。能使其他構(gòu)造工具采取某種技術(shù)在設(shè)計(jì)時(shí)直接控制事件,遺跡控制事件源和事件監(jiān)聽者之間的聯(lián)系。事件本身不依賴于復(fù)雜的開
78、發(fā)工具。</p><p> 特別的,事件機(jī)制還應(yīng)當(dāng):</p><p> 1、能夠發(fā)現(xiàn)制定的對(duì)象類可以生成的事件。</p><p> 2、能夠發(fā)現(xiàn)制定的對(duì)象類可以觀察監(jiān)聽到的事件。</p><p> 3、提供一個(gè)常規(guī)的注冊(cè)機(jī)制,允許動(dòng)態(tài)操縱事件源與事件監(jiān)聽者之間的關(guān)系。</p><p> 4、不需要其他的虛擬機(jī)
79、和語(yǔ)言即可實(shí)現(xiàn)。</p><p> 5、事件源與監(jiān)聽者之間可進(jìn)行高效的事件傳遞。</p><p> 6、能完成JavaBean事件模型與相關(guān)的其他組件體系結(jié)構(gòu)事件模型的中立映射。</p><p><b> 激發(fā)事件</b></p><p> ?。ǘ┚帉慗avaBean源文件</p><p>
80、; 一個(gè)JavaBean就是放置在JAVA類,它封裝了一些私有的數(shù)據(jù)和方法,這些私有數(shù)據(jù)在JSP頁(yè)面中可以通過SET和GET方法來存取。JavaBean的工作過程也很簡(jiǎn)單,首先在JSP頁(yè)面中生成一個(gè)JavaBean的實(shí)例,然后對(duì)數(shù)據(jù)進(jìn)行處理,最后使用GET方法得到,最終結(jié)果在頁(yè)面上顯示出來。</p><p> JavaBean文件必須放在與JSP頁(yè)面存放位置對(duì)應(yīng)的web-inf\classes目錄下,比如要在
81、<tomcat-root>\source\jsp中的某一個(gè)JSP頁(yè)面中使用一個(gè)JavaBean,這個(gè)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頁(yè)面中調(diào)用JavaBean</p><p> 在命令方式下進(jìn)入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> 以上程序?yàn)镴AVABEAN和JSP組合的一個(gè)范例。</p><p> ?。ㄈ┏S肑avaBean屬性</p><p> 在JavaBean的scope有四種:page、request、session、application,它們的關(guān)系是app
91、lication>session>request>page。</p><p> 在JSP頁(yè)面中對(duì)JavaBean的內(nèi)部變量進(jìn)行存取時(shí),除了直接調(diào)用編寫好的SET、GET方法外,還可以使用<jsp:setProperty>和<jsp:getProperty>,使用這兩條指令往往能大大簡(jiǎn)化JSP頁(yè)面中的代碼。</p><p> set/getPro
92、perty語(yǔ)法:</p><p> <jsp:setProperty name=”beanname” property=”propertyName” value=”value”></p><p> <jsp:getProperty name=”beanname” property=”propertyName”></p><p> 四、J
93、SP處理表單事務(wù)</p><p> HTTP協(xié)議解決了在一般情況下,用戶和服務(wù)器之間的交互操作問題.這個(gè)一般情況主要是指用戶瀏覽網(wǎng)頁(yè)等行為。這些行為中不需要WEB服務(wù)器記憶客戶端的狀態(tài)和事件,WEB服務(wù)器只是需要簡(jiǎn)單地響應(yīng)用戶端請(qǐng)求的過程,其實(shí)并不是一種真正的用戶和服務(wù)器之間的交互操作。</p><p> 隨著電子商務(wù)的迅猛發(fā)展,基于WEB和HTTP協(xié)議的電子商務(wù)應(yīng)用系統(tǒng)對(duì)用戶和服務(wù)器
94、之間的交互操作功能提出了新的要求,因此也帶來了新的問題。例如,當(dāng)用戶通過瀏覽器在網(wǎng)上商店或網(wǎng)上超市購(gòu)物時(shí),一般都是由用戶先選購(gòu)物品,用戶選購(gòu)的物品先暫時(shí)存放在一個(gè)“購(gòu)物籃”的地方,用戶所有的選購(gòu)物品工作完成后,再去“收銀臺(tái)”統(tǒng)一交費(fèi)。這和我們?cè)诂F(xiàn)實(shí)生活中的超市購(gòu)物情景十分相似。這種仿照現(xiàn)實(shí)生活的網(wǎng)上購(gòu)物模式就向我們提出了一個(gè)有趣的問題,:由于WEB服務(wù)器只能簡(jiǎn)單的響應(yīng)用戶端的請(qǐng)求,那它如何能夠知道我們的“購(gòu)物籃”里有什么東西?
95、這時(shí),WEB服務(wù)器不能順利地記住用戶在應(yīng)用系統(tǒng)中所做的事務(wù)成了我們的新問題,它使得“購(gòu)物籃”里有什么東西?即使服務(wù)器上保存了上下文信息,我們還會(huì)在電子商務(wù)應(yīng)用中遇到其他問題。例如,當(dāng)用戶從選擇商品的頁(yè)面轉(zhuǎn)到輸入信用卡帳號(hào)和用戶個(gè)人資料的反面,WEB服務(wù)器如何才能記住用戶買了些什么東西能?</p><p> ?。ㄒ唬〤OOKIE和SESSION</p><p> 一種應(yīng)用比較廣泛也是比較有
96、效的方法是使用COOKIE機(jī)制。WEB服務(wù)器利用HTTP COOKIE來存儲(chǔ)有關(guān)購(gòu)物SESSION的信息,后繼的各個(gè)鏈接可以查看當(dāng)前SESSION,然后從WEB服務(wù)器的某些地方提取有關(guān)該SESSION的完整信息。然而,即使SERVLET提供了一個(gè)基于應(yīng)用層的使用靈活的COOKIE接口,仍有一些繁瑣的細(xì)節(jié)問題需要處理:</p><p> 1、如何從其他COOKIE中分辨出保存SESSION標(biāo)識(shí)的COOKIE。&l
97、t;/p><p> 2、如何設(shè)置合理的COOKIE過期時(shí)間</p><p> 3、如何把SESSION標(biāo)識(shí)和服務(wù)器相關(guān)的信息聯(lián)系起來。</p><p> 4、COOKIE產(chǎn)生的文件讓獲取信用卡等保密資料成為了可能。</p><p> ?。ǘ㏒ESSION的處理</p><p> SERVLET為我們提供了一種解決
98、基于WEB和HTTP協(xié)議的電子商務(wù)應(yīng)用系統(tǒng)用戶和服務(wù)器之間交互操作問題的方案----HTTPSESSION API。</p><p> HTTPSESSION API是一個(gè)基于COOKIE或者URL改寫機(jī)制的高級(jí)SESSION狀態(tài)跟蹤接口,如果瀏覽器URL支持COOKIE,則使用COOKIE;如果不支持,則自動(dòng)使用URL改寫方法。SERVLET開發(fā)者無(wú)需關(guān)心細(xì)節(jié)問題,也無(wú)需直接處理COOKIE或附加到URL后的
99、信息,API自動(dòng)問SERVLET開發(fā)者提供一個(gè)可以方便地存儲(chǔ)SESSION信息的地方。</p><p> SESSION的信息保存在服務(wù)器端,SERVLET的ID保存在客戶機(jī)的COOKIE中。如果客戶機(jī)禁止COOKIE,SESSION ID就必須放在URL后面。SESSION一般在服務(wù)器上設(shè)置了一個(gè)30 分鐘的過期時(shí)間,當(dāng)客戶停止活動(dòng)后自動(dòng)失效。SESSION中保存和檢索的信息不能是基本數(shù)據(jù)類型,如int do
100、uble等,而必須是JAVA的相應(yīng)的OBJECT如INTEGER,Double。</p><p> 簡(jiǎn)單SESSION實(shí)現(xiàn)功能:</p><p> 會(huì)話狀態(tài)維持是WEB應(yīng)用開發(fā)者必須面對(duì)的問題.有多種方法可以用來解決這個(gè)問題,如使用COOKIE、隱藏的表單輸入域或直接將狀態(tài)信息附加到URL中。JAVA SERVLET提供了一個(gè)在多個(gè)請(qǐng)求之間持續(xù)有效的會(huì)話對(duì)象,該對(duì)象允許用戶存儲(chǔ)和提取會(huì)
101、話狀態(tài)信息。JSP也同樣支持SERVLET中的這個(gè)概念。</p><p> 在SUN的JSP中有許多隱含的對(duì)象,如REQUEST他是HTTPSERVLETREQUEST的一個(gè)子類。該對(duì)象包含了所有有關(guān)當(dāng)前瀏覽器請(qǐng)求的信息,包括COOKIE、HTML表單變量等。SESSION對(duì)象也是一個(gè)隱含對(duì)象,在第一個(gè)JSP頁(yè)面中創(chuàng)建,并被關(guān)聯(lián)到REQUEST對(duì)象上。與ASP中的會(huì)話對(duì)象相似,JSP中的SESSION對(duì)象對(duì)于那
102、些希望通過多個(gè)頁(yè)面完成一個(gè)事物的應(yīng)用是非常有用的。</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> ?。ㄈ┍韱卧诳蛻舳说尿?yàn)證</p><p> 在表單的提交過程中,需要對(duì)用戶提交的信息進(jìn)行客戶端的確認(rèn),以分擔(dān)服務(wù)器端為驗(yàn)證信息所用的開銷。</p><p> 以下是用JavaScript腳本語(yǔ)言所編寫的客戶端頁(yè)面程序,對(duì)信息的正確性進(jìn)行驗(yàn)證。</p><p><b> ?、傧薅ㄗ址愋?lt;/b></p>
119、<p> 有時(shí)候需要對(duì)字符串中字符的類型進(jìn)行限定,比如檢查該字符串是不是合法的電子郵件地址,該字符串是不是一個(gè)整數(shù),</p><p><b> <html></b></p><p><b> <head></b></p><p> <title>check</ti
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于jsp 在線購(gòu)物網(wǎng)站詳細(xì)畢業(yè)設(shè)計(jì)
- 基于jsp的購(gòu)物網(wǎng)站設(shè)計(jì)與開發(fā)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)—網(wǎng)站購(gòu)物商城系統(tǒng)
- 服裝購(gòu)物網(wǎng)站畢業(yè)設(shè)計(jì)
- 網(wǎng)上購(gòu)物網(wǎng)站畢業(yè)設(shè)計(jì)
- 網(wǎng)上購(gòu)物網(wǎng)站畢業(yè)設(shè)計(jì)
- 購(gòu)物網(wǎng)站畢業(yè)設(shè)計(jì)論文
- 網(wǎng)上購(gòu)物網(wǎng)站畢業(yè)設(shè)計(jì)
- 4購(gòu)物網(wǎng)站畢業(yè)設(shè)計(jì)論文
- 畢業(yè)設(shè)計(jì)--jsp+hibernate的企業(yè)級(jí)購(gòu)物網(wǎng)站的開發(fā)
- 電子商務(wù)購(gòu)物網(wǎng)站畢業(yè)設(shè)計(jì)
- 網(wǎng)購(gòu)物網(wǎng)站畢業(yè)設(shè)計(jì)開題報(bào)告
- 基于jsp的購(gòu)物網(wǎng)站設(shè)計(jì)與開發(fā)
- 畢業(yè)設(shè)計(jì)校園網(wǎng)絡(luò)購(gòu)物網(wǎng)站設(shè)計(jì)
- 基于jsp珠寶購(gòu)物網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)
- 陶瓷制品購(gòu)物網(wǎng)站畢業(yè)設(shè)計(jì)設(shè)計(jì)論文
- 基于JSP珠寶購(gòu)物網(wǎng)站的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)設(shè)計(jì)任務(wù)書.doc
- 購(gòu)物網(wǎng)站畢業(yè)設(shè)計(jì)論文 購(gòu)物模式開發(fā)與應(yīng)用
- 畢業(yè)設(shè)計(jì)天使配飾購(gòu)物網(wǎng)站的設(shè)計(jì)與開發(fā)
- 網(wǎng)站設(shè)計(jì)—電子購(gòu)物網(wǎng)站設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論