淺探JSP實踐要點(Highlights of JSP Practise)_第1頁
淺探JSP實踐要點(Highlights of JSP Practise)_第2頁
淺探JSP實踐要點(Highlights of JSP Practise)_第3頁
淺探JSP實踐要點(Highlights of JSP Practise)_第4頁
淺探JSP實踐要點(Highlights of JSP Practise)_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、淺探JSP理論要點(Highlights of JSP Practise)摘要:本文著重介紹jsp技術(shù)開發(fā)動態(tài)網(wǎng)站中的各種優(yōu)缺點,簡要分析jsp技術(shù)和asp技術(shù)的不同之處。關(guān)鍵字:jsp,java,jdb-db,javabean。一、引言在internet上的眾多網(wǎng)站中,基于eb數(shù)據(jù)庫的動態(tài)網(wǎng)站應(yīng)用相當(dāng)廣泛?;趀b網(wǎng)絡(luò)數(shù)據(jù)庫的動態(tài)網(wǎng)站由一個eb閱讀器作為客戶端界面,一個數(shù)據(jù)庫效勞器用作信息存儲和一個連接兩者的eb應(yīng)用效勞器組成。原有開發(fā)動態(tài)網(wǎng)站的gi技術(shù),隨著eb應(yīng)用程序的客戶端技術(shù)不斷地開展,逐漸被javaapplet、ativex控件、dhtl和javasript所取代,這些技術(shù)極大地改

2、善了用戶界面,但當(dāng)它們嘗試做一些深化的工作時,它們開場遇到客戶端閱讀器不兼容、效勞器負(fù)擔(dān)過重、訪問速度下降以及平安性的問題。jsp技術(shù)就是解決這些問題的一把金鑰匙,本文主要介紹在使用jsp技術(shù)構(gòu)建動態(tài)網(wǎng)站的過程中對該技術(shù)的一些要點和難點。二、jsp技術(shù)要點jsp是基于javaservlet以及整個java體系的eb開發(fā)技術(shù),利用這一技術(shù)可以建立先進(jìn)、平安、快速和跨平臺的動態(tài)網(wǎng)站。在傳統(tǒng)的網(wǎng)頁htl文件中參加java程序片段和jsp標(biāo)記,就構(gòu)成了jsp網(wǎng)頁。eb效勞器在遇到訪問jsp網(wǎng)頁的懇求時,首先執(zhí)行其中的程序片段,然后將執(zhí)行結(jié)果以htl格式返回給客戶。程序片段可以操作數(shù)據(jù)庫、重新定向網(wǎng)頁以

3、及發(fā)送eail等等,這就是建立動態(tài)網(wǎng)站所需要的功能。所有程序操作都在效勞器端執(zhí)行,網(wǎng)絡(luò)上傳送給客戶端的僅是得到的結(jié)果,對客戶閱讀器的要求很低。如圖1所示,在用戶連接jsp網(wǎng)站時,用戶懇求網(wǎng)頁,jsp頁面單獨響應(yīng)懇求,將用戶對網(wǎng)頁的懇求轉(zhuǎn)化為對數(shù)據(jù)的懇求,通過javabean處理懇求并將返回的數(shù)據(jù)封裝成htl頁面返回給用戶。利用jsp編寫的程序有許多優(yōu)勢:1、程序?qū)懸淮?,到處可以運(yùn)行:jsp在設(shè)計時,充分考慮到應(yīng)用平臺的無關(guān)性。依賴于java的可移植性,jsp得到目前許多流行s平臺的支持,可在apahe、netsape、iis等效勞器上執(zhí)行。2、執(zhí)行速度快:jsp頁面只需編譯一次轉(zhuǎn)化為java字

4、節(jié)代碼,其后一直駐留于效勞器內(nèi)存中,加快了對jsp頁面的響應(yīng)速度。假設(shè)不考慮jsp頁面第一次編譯所花的時間,那么jsp的響應(yīng)速度要比asp快的多。3、java的優(yōu)勢:jsp技術(shù)是用java語言作為腳本語言的。跨平臺、成熟、強(qiáng)健、易擴(kuò)大的java技術(shù)使得開發(fā)人員的工作在其他方面也變得容易和簡單。在inds系統(tǒng)被疑心可能會崩潰時,java能有效地防止系統(tǒng)崩潰。java語言通過提供防止內(nèi)存泄漏的方法,在內(nèi)存管理方面大顯身手。加之,jsp為應(yīng)用程序提供了更為強(qiáng)健的意外事件處理機(jī)制更大的發(fā)揮了java的優(yōu)勢。三、jsp技術(shù)難點1、連接數(shù)據(jù)庫數(shù)據(jù)庫連接對動態(tài)網(wǎng)站來說是最為重要的部分,在與后端數(shù)據(jù)庫連接時我

5、們可以采用db或jdb技術(shù)。雖然db作為傳統(tǒng)的連接數(shù)據(jù)庫的手段,在我們的程序可以是一種選擇,但是db有以下的致命缺陷,從而使它無法勝任jsp的懇求;db是一個語言實現(xiàn)的api,從java程序調(diào)用本地的程序會帶來一系列類似平安性、完好性、強(qiáng)健性方面的缺點。其次,完全準(zhǔn)確的實現(xiàn)從代碼db到j(luò)avaapi翻譯的db也不會另人滿意,因為在java中沒有指針,而db中大量的使用了指針,包括極易出錯的空指針“vid*??紤]到平臺移植性來說,在開發(fā)jsp程序中使用db那么會帶來負(fù)面影響,使得代碼不合適于移植。為了使我們的程序在具有平安性、完好性、強(qiáng)健性的同時,同時有可以方便的移植,所以我們可以采用jdb連接

6、數(shù)據(jù)庫。jdb是一種可用于執(zhí)行sql語句的javaapi。它由一些java語言寫的類、界面組成,使開發(fā)人員可以用純java語言編寫完好的數(shù)據(jù)庫應(yīng)用程序。通過使用jdb,我們很方便地將sql語句傳送到幾乎任何一種數(shù)據(jù)庫。也就是說,我們可以不必寫一個程序訪問sybase,寫另一個程序訪問rale,再寫一個程序訪問irsft的sqlserver。用jdb寫的程序可以自動地將sql語句傳送給相應(yīng)的數(shù)據(jù)庫管理系統(tǒng)。在本地數(shù)據(jù)庫程序使用irsft的aess等數(shù)據(jù)庫時,我們可以使用sun公司開發(fā)的jdb-dbbridge,用此技術(shù)jsp程序就可以訪問帶有db驅(qū)動程序的數(shù)據(jù)庫。這樣即保證了jdb的優(yōu)點而且保證

7、了純jsp程序的平安性、完好性、強(qiáng)健性和可移植性,又可以使用irsft提供的db數(shù)據(jù)源與aess連接。不管對方是何種數(shù)據(jù)庫,只要有db接口就可以直接使用jdb-dbbridge與數(shù)據(jù)庫連接,而無需因為后端數(shù)據(jù)庫的改變而改動相應(yīng)的程序代碼,實現(xiàn)了應(yīng)用層與數(shù)據(jù)庫層的完美別離。假如我們需要變后端數(shù)據(jù)庫為ysql,只需要在db數(shù)據(jù)源中安裝了ysql的驅(qū)動程序之后,就可以直接使用ysql數(shù)據(jù)庫了。2、內(nèi)建的組件在實現(xiàn)網(wǎng)站的時候,由于客觀需要,為了方便區(qū)分本地局域網(wǎng)用戶與遠(yuǎn)端連上來的用戶并提供相應(yīng)的權(quán)限,我們采用內(nèi)建的組件request來捕獲每一個聯(lián)到效勞器上的用戶的ip地址,通過比擬之后給出相應(yīng)的權(quán)限。

8、這樣既可以方便管理,而且可以做到本局域網(wǎng)內(nèi)用戶可以使用網(wǎng)站內(nèi)所有公開的和不對外公開的資源。我們還可以將現(xiàn)有的方法加以改良,將各種ip地址輸入到數(shù)據(jù)庫中并且賦予不同的ip地址不同的權(quán)限,就可以完好的控制用戶使用網(wǎng)站資源了。會話狀態(tài)維持是eb應(yīng)用開發(fā)者必須面對的問題。為了理解用戶是否還在線,我們使用了內(nèi)建的sessin組件,通過給每個登陸用戶一個sessin變量我們可以在用戶非正常分開網(wǎng)站之后,關(guān)閉該用戶使用的資源,到達(dá)節(jié)省內(nèi)存,進(jìn)步效勞器性能的目的。在jsp中還提供了kie類,其構(gòu)造器有兩個參數(shù),分別代表kie的名字和值。kie類中提供了各種方法設(shè)置kie的屬性,如通過setaxage()方法可

9、以設(shè)置kie的生存時間。假設(shè)生存時間為負(fù)值,代表閱讀器關(guān)閉kie即消失。生存時間為0,代表刪除kie,生存時間為正數(shù),代表kie存在多少秒??梢杂胟ie臨時保存用戶的賬號和口令,jsp可隨時讀取,驗證用戶的合法性??梢詫⒂脩舻拈喿x狀態(tài)保存在kie中,下次用戶再訪問網(wǎng)頁時,可由jsp向閱讀器顯示個性化頁面。3、轉(zhuǎn)換unide編碼在許多jsp頁面的調(diào)試過程中都碰到過許多由于漢字編碼與unide編碼轉(zhuǎn)換引起的問題。經(jīng)常遇到閱讀器中看到的jsp頁面中的漢字都是亂碼、jsp頁面無法正常顯示gbk漢字、jsp不能接收fr提交的漢字、jsp數(shù)據(jù)庫讀寫無法獲得正確的內(nèi)容等等問題。這是因為如今大部分具有國際化特

10、征的軟件核心字符處理都是以unide為根底的,在軟件運(yùn)行時根據(jù)當(dāng)時lale/lang/depage設(shè)置確定相應(yīng)的本地字符編碼設(shè)置,并依此處理本地字符,所以我們應(yīng)該在處理過程中實現(xiàn)unide和本地字符集的互相轉(zhuǎn)換,甚或以unide為中間的兩個不同本地字符集的互相轉(zhuǎn)換。這種方式在網(wǎng)絡(luò)環(huán)境下被進(jìn)一步延伸,任何網(wǎng)絡(luò)兩端的字符信息也需要根據(jù)字符集的設(shè)置轉(zhuǎn)換成可承受的內(nèi)容。由于我的ie默認(rèn)字符集為gb2312,然而inds默認(rèn)為gbk,java那么默認(rèn)為unide,所以假如不通過一定的轉(zhuǎn)換,直接在gb2312字符集上顯示從gbkunide得到的頁面將是一片亂碼。java語言采用unide處理字符。但從另一

11、個角度來說,在java程序中也可以采用非unide的轉(zhuǎn)碼,重要的是保證程序入口和出口的漢字信息不失真。如完全采用is-8859-1來處理漢字也能到達(dá)正確的結(jié)果。在我的例子中就采用了這種方法,經(jīng)過轉(zhuǎn)換之后并將網(wǎng)頁字符集強(qiáng)迫設(shè)為gb2312字符集顯示,就可以正常顯示漢字了。四、jsp與asp的比擬asp技術(shù)也是動態(tài)網(wǎng)頁開發(fā)技術(shù)。jsp和asp從形式上非常相似,但是深化探究下去會發(fā)現(xiàn)它們很多的差異,其中最主要的有以下幾點:1、asp和jsp的工作原理不同當(dāng)eb效勞器接收到對asp頁面的懇求時,它從硬盤或者內(nèi)存中承受正確的asp文件,并將這個文件發(fā)送給asp.dll文件,asp文件將會從頭至尾被解釋執(zhí)

12、行并根據(jù)命令要求生成響應(yīng)的htl頁面送回給閱讀器。asp.dll會針對每個懇求產(chǎn)生一個獨立的線程。jsp由支持它的效勞器上的jsp引擎負(fù)責(zé)解釋執(zhí)行。當(dāng)效勞器接收到一個對某jsp頁面的懇求時,假如這時對該頁面創(chuàng)立或修改后的第一次懇求,那么jsp引擎就把該jsp頁面內(nèi)容轉(zhuǎn)變成一個純java的servlet,然后將其編譯成servlet字節(jié)代碼,這個servlet可以調(diào)用其他的servlet或javabeans,最后將servlet的執(zhí)行結(jié)果輸出給閱讀器。jsp頁面被編譯成servlet之后,其執(zhí)行代碼以獨立線程的方式一直存在于效勞器的內(nèi)存中。以后對該jsp頁面提出懇求時,不需要重新編譯,除非該頁面

13、被修改。javaservlet由于在效勞器端運(yùn)行,并且不包括會占用大量系統(tǒng)資源的gui,因此運(yùn)行的速度要比javaapplet和java獨立應(yīng)用程序快。2、jsp的效率和平安性更高asp以源碼形式存放,以解釋方式運(yùn)行,每次asp網(wǎng)頁調(diào)用都需要對源碼進(jìn)展解釋,運(yùn)行效率不高。另外,iis的破綻曾使得許多網(wǎng)站源程序大曝光,許多用asp開發(fā)的網(wǎng)站,asp程序全部被人下載去了,這樣多網(wǎng)站的平安性產(chǎn)生了很大的危害。jsp源程序不大可能被下載,特別是javabean程序完全可以放到不對外的目錄中;而且我們可以將bean的jsp原程序刪除,只剩下lass文件,網(wǎng)站照樣可以運(yùn)行。3、jsp的組件方式更方便asp

14、通過來擴(kuò)大復(fù)雜的功能,如文件上載、發(fā)送eail以及將業(yè)務(wù)處理或者復(fù)雜計算別離出來成為獨立可重復(fù)利用的模塊。jsp通過javabean實現(xiàn)了同樣的功能擴(kuò)大。在開發(fā)方面,的開發(fā)遠(yuǎn)比javabean復(fù)雜和繁瑣,學(xué)會asp不難,但學(xué)會開發(fā)可不簡單。而javabean就簡單多了,從本文上述例如中可以看出開發(fā)javabean很方便。在維護(hù)方面,必須在效勞器上注冊,假如修改了程序,就必須重新注冊,甚至必須關(guān)機(jī)和重新啟動。javabean那么不需要注冊,放在lasspath包含的目錄中就行了。假如javabean進(jìn)展了修改,那么jsdk和tat如今還需要關(guān)閉和重新運(yùn)行但不是關(guān)機(jī),但開發(fā)者已經(jīng)許諾將在以后的版本

15、中做到不需要關(guān)閉效勞器。另外jsp這種基于組件的形式很有效地進(jìn)步了應(yīng)用程序的開發(fā)效率,因為這種形式可以使開發(fā)人員利用快捷的子組件快速創(chuàng)立模板應(yīng)用程序,然后再整合一些附加功能以后便可使用。像這樣的由于java語言的優(yōu)勢而產(chǎn)生的有效的方法在jsp中無處不在,并可將其打包成一個javabeans或一個ejb組件。4、jsp的適應(yīng)平臺更廣asp目前僅適用于nt和iis。雖然unix下有hilisft的插件來支持asp,但是asp本身的功能有限,必須通過asp+的組合來擴(kuò)大,而且ativex對象必須事先放置于所選擇的平臺,unix下的實現(xiàn)起來非常困難。jsp那么不同,幾乎所有平臺都支持java,jsp+

16、javabean可以在所有平臺下通行無阻。nt下iis通過一個插件,例如jrun,就能支持jsp。著名的eb效勞器apahe已經(jīng)可以支持jsp。雖然如今nt操作系統(tǒng)占了很大的市場份額,但是在效勞器方面unix的優(yōu)勢仍然很大,而新崛起的linux更是來勢不校由于apahe廣泛應(yīng)用在nt、unix和linux上,因此jsp有更廣泛的運(yùn)行平臺。從一個平臺移植到另外一個平臺,jsp和javabean甚至不用重新編譯,因為java字節(jié)碼都是標(biāo)準(zhǔn)的與平臺無關(guān)的。將在實驗的jsp網(wǎng)頁原封不動地拿到linux相應(yīng)的效勞器下就運(yùn)行起來了,感覺非常好。五、開展與展望隨著internet/intranet技術(shù)的不斷開展,只有效勞器端動態(tài)網(wǎng)頁技術(shù)才能滿足各種eb應(yīng)用程序日益進(jìn)步的要求,因此各種動態(tài)網(wǎng)頁技術(shù)先后出現(xiàn),如gi、asp、php及jsp等。jsp技術(shù)是很有開展前景并具有強(qiáng)大功能的效勞器端動態(tài)網(wǎng)頁技術(shù)。本文來自范文中國網(wǎng)。asp技術(shù)雖然不失為一種優(yōu)秀的eb應(yīng)用程序開發(fā)技術(shù)。但同時也應(yīng)該看到,在internet上基于indsnt+iis的效勞器畢竟占少數(shù),有關(guān)資料說明大約是15%,其余eb效勞器那么是基于unix、linux等其他操作系統(tǒng),而jsp由于它的跨平臺特性,使得其應(yīng)用范圍極其廣泛,而且由于其參與制定標(biāo)準(zhǔn)的廠商眾多,并開放源碼,提供免費(fèi)的jsp實現(xiàn),因

溫馨提示

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

評論

0/150

提交評論