1000部丰满熟女富婆视频,托着奶头喂男人吃奶,厨房挺进朋友人妻,成 人 免费 黄 色 网站无毒下载

首頁 > 文章中心 > 正文

Highlights of JSP Practise

前言:本站為你精心整理了Highlights of JSP Practise范文,希望能為你的創(chuàng)作提供參考價值,我們的客服老師可以幫助你提供個性化的參考范文,歡迎咨詢。

摘要:本文著重介紹JSP技術(shù)開發(fā)動態(tài)網(wǎng)站中的各種優(yōu)缺點,簡要分析JSP技術(shù)和ASP技術(shù)的不同之處。

關(guān)鍵字:JSP,Java,JDBC-ODBC,JavaBean。

一、引言

在Internet上的眾多網(wǎng)站中,基于WEB數(shù)據(jù)庫的動態(tài)網(wǎng)站應(yīng)用相當(dāng)廣泛。基于WEB網(wǎng)絡(luò)數(shù)據(jù)庫的動態(tài)網(wǎng)站由一個WEB瀏覽器作為客戶端界面,一個數(shù)據(jù)庫服務(wù)器用作信息存儲和一個連接兩者的WEB應(yīng)用服務(wù)器組成。原有開發(fā)動態(tài)網(wǎng)站的CGI技術(shù),隨著WEB應(yīng)用程序的客戶端技術(shù)不斷地發(fā)展,逐漸被JavaApplet、ActiveX控件、DHTML和JavaScript所取代,這些技術(shù)極大地改善了用戶界面,但當(dāng)它們嘗試做一些深入的工作時,它們開始遇到客戶端瀏覽器不兼容、服務(wù)器負(fù)擔(dān)過重、訪問速度下降以及安全性的問題。JSP技術(shù)就是解決這些問題的一把金鑰匙,本文主要介紹在使用JSP技術(shù)構(gòu)建動態(tài)網(wǎng)站的過程中對該技術(shù)的一些要點和難點。

二、JSP技術(shù)要點

JSP是基于JavaServlet以及整個Java體系的Web開發(fā)技術(shù),利用這一技術(shù)可以建立先進、安全、快速和跨平臺的動態(tài)網(wǎng)站。在傳統(tǒng)的網(wǎng)頁HTML文件中加入Java程序片段和JSP標(biāo)記,就構(gòu)成了JSP網(wǎng)頁。Web服務(wù)器在遇到訪問JSP網(wǎng)頁的請求時,首先執(zhí)行其中的程序片段,然后將執(zhí)行結(jié)果以HTML格式返回給客戶。程序片段可以操作數(shù)據(jù)庫、重新定向網(wǎng)頁以及發(fā)送email等等,這就是建立動態(tài)網(wǎng)站所需要的功能。所有程序操作都在服務(wù)器端執(zhí)行,網(wǎng)絡(luò)上傳送給客戶端的僅是得到的結(jié)果,對客戶瀏覽器的要求很低。如圖1所示,在用戶連接JSP網(wǎng)站時,用戶請求網(wǎng)頁,JSP頁面獨自響應(yīng)請求,將用戶對網(wǎng)頁的請求轉(zhuǎn)化為對數(shù)據(jù)的請求,通過JavaBean處理請求并將返回的數(shù)據(jù)封裝成HTML頁面返回給用戶。

利用JSP編寫的程序有許多優(yōu)勢:

1、程序?qū)懸淮危教幙梢赃\行:JSP在設(shè)計時,充分考慮到應(yīng)用平臺的無關(guān)性。依賴于Java的可移植性,JSP得到目前許多流行OS平臺的支持,可在Apache、Netscape、IIS等服務(wù)器上執(zhí)行。

2、執(zhí)行速度快:JSP頁面只需編譯一次轉(zhuǎn)化為Java字節(jié)代碼,其后一直駐留于服務(wù)器內(nèi)存中,加快了對JSP頁面的響應(yīng)速度。若不考慮JSP頁面第一次編譯所花的時間,則JSP的響應(yīng)速度要比ASP快的多。

3、Java的優(yōu)勢:JSP技術(shù)是用Java語言作為腳本語言的。跨平臺、成熟、健壯、易擴充的Java技術(shù)使得開發(fā)人員的工作在其他方面也變得容易和簡單。在Windows系統(tǒng)被懷疑可能會崩潰時,Java能有效地防止系統(tǒng)崩潰。Java語言通過提供防止內(nèi)存泄漏的方法,在內(nèi)存管理方面大顯身手。加之,JSP為應(yīng)用程序提供了更為健壯的意外事件處理機制更大的發(fā)揮了Java的優(yōu)勢。

三、JSP技術(shù)難點

1、連接數(shù)據(jù)庫

數(shù)據(jù)庫連接對動態(tài)網(wǎng)站來說是最為重要的部分,在與后端數(shù)據(jù)庫連接時我們可以采用ODBC或JDBC技術(shù)。雖然ODBC作為傳統(tǒng)的連接數(shù)據(jù)庫的手段,在我們的程序可以是一種選擇,但是ODBC有以下的致命缺陷,從而使它無法勝任JSP的請求;

①ODBC是一個C語言實現(xiàn)的API,從Java程序調(diào)用本地的C程序會帶來一系列類似安全性、完整性、健壯性方面的缺點。

②其次,完全精確的實現(xiàn)從C代碼ODBC到JavaAPI翻譯的ODBC也不會另人滿意,因為在Java中沒有指針,而ODBC中大量的使用了指針,包括極易出錯的空指針“void*”。

③考慮到平臺移植性來說,在開發(fā)JSP程序中使用ODBC則會帶來負(fù)面影響,使得代碼不適合于移植。

為了使我們的程序在具有安全性、完整性、健壯性的同時,同時有可以方便的移植,所以我們可以采用JDBC連接數(shù)據(jù)庫。JDBC是一種可用于執(zhí)行SQL語句的JavaAPI。它由一些Java語言寫的類、界面組成,使開發(fā)人員可以用純Java語言編寫完整的數(shù)據(jù)庫應(yīng)用程序。通過使用JDBC,我們很方便地將SQL語句傳送到幾乎任何一種數(shù)據(jù)庫。也就是說,我們可以不必寫一個程序訪問Sybase,寫另一個程序訪問Oracle,再寫一個程序訪問Microsoft的SQLServer。用JDBC寫的程序能夠自動地將SQL語句傳送給相應(yīng)的數(shù)據(jù)庫管理系統(tǒng)。

在本地數(shù)據(jù)庫程序使用Microsoft的Access等數(shù)據(jù)庫時,我們可以使用Sun公司開發(fā)的JDBC-ODBCBridge,用此技術(shù)JSP程序就可以訪問帶有ODBC驅(qū)動程序的數(shù)據(jù)庫。這樣即保證了JDBC的優(yōu)點而且保證了純JSP程序的安全性、完整性、健壯性和可移植性,又可以使用Microsoft提供的ODBC數(shù)據(jù)源與Access連接。不管對方是何種數(shù)據(jù)庫,只要有ODBC接口就可以直接使用JDBC-ODBCBridge與數(shù)據(jù)庫連接,而無需因為后端數(shù)據(jù)庫的改變而改動相應(yīng)的程序代碼,實現(xiàn)了應(yīng)用層與數(shù)據(jù)庫層的完美分離。如果我們需要變后端數(shù)據(jù)庫為MySQL,只需要在ODBC數(shù)據(jù)源中安裝了MySQL的驅(qū)動程序之后,就可以直接使用MySQL數(shù)據(jù)庫了。

2、內(nèi)建的組件

在實現(xiàn)網(wǎng)站的時候,由于客觀需要,為了方便區(qū)分本地局域網(wǎng)用戶與遠(yuǎn)端連上來的用戶并提供相應(yīng)的權(quán)限,我們采用內(nèi)建的組件Request來捕獲每一個聯(lián)到服務(wù)器上的用戶的IP地址,通過比較之后給出相應(yīng)的權(quán)限。這樣既可以方便管理,而且可以做到本局域網(wǎng)內(nèi)用戶可以使用網(wǎng)站內(nèi)所有公開的和不對外公開的資源。我們還可以將現(xiàn)有的方法加以改進,將各種IP地址輸入到數(shù)據(jù)庫中并且賦予不同的IP地址不同的權(quán)限,就可以完整的控制用戶使用網(wǎng)站資源了。

會話狀態(tài)維持是Web應(yīng)用開發(fā)者必須面對的問題。為了了解用戶是否還在線,我們使用了內(nèi)建的Session組件,通過給每個登陸用戶一個Session變量我們可以在用戶非正常離開網(wǎng)站之后,關(guān)閉該用戶使用的資源,達(dá)到節(jié)省內(nèi)存,提高服務(wù)器性能的目的。

在JSP中還提供了Cookie類,其構(gòu)造器有兩個參數(shù),分別代表Cookie的名字和值。Cookie類中提供了各種方法設(shè)置Cookie的屬性,如通過setMaxAge()方法可以設(shè)置Cookie的生存時間。若生存時間為負(fù)值,代表瀏覽器關(guān)閉Cookie即消失。生存時間為0,代表刪除Cookie,生存時間為正數(shù),代表Cookie存在多少秒。可以用Cookie臨時保存用戶的賬號和口令,JSP可隨時讀取,驗證用戶的合法性。可以將用戶的瀏覽狀態(tài)保存在Cookie中,下次用戶再訪問網(wǎng)頁時,可由JSP向瀏覽器顯示個性化頁面。

3、轉(zhuǎn)換Unicode編碼

在許多JSP頁面的調(diào)試過程中都碰到過許多由于漢字編碼與Unicode編碼轉(zhuǎn)換引起的問題。經(jīng)常遇到瀏覽器中看到的JSP頁面中的漢字都是亂碼、JSP頁面無法正常顯示GBK漢字、JSP不能接收Form提交的漢字、JSP數(shù)據(jù)庫讀寫無法獲得正確的內(nèi)容等等問題。這是因為現(xiàn)在大部分具有國際化特征的軟件核心字符處理都是以Unicode為基礎(chǔ)的,在軟件運行時根據(jù)當(dāng)時Locale/Lang/Codepage設(shè)

置確定相應(yīng)的本地字符編碼設(shè)置,并依此處理本地字符,所以我們應(yīng)該在處理過程中實現(xiàn)Unicode和本地字符集的相互轉(zhuǎn)換,甚或以Unicode為中間的兩個不同本地字符集的相互轉(zhuǎn)換。這種方式在網(wǎng)絡(luò)環(huán)境下被進一步延伸,任何網(wǎng)絡(luò)兩端的字符信息也需要根據(jù)字符集的設(shè)置轉(zhuǎn)換成可接受的內(nèi)容。

由于我的IE默認(rèn)字符集為GB2312,然而Windows默認(rèn)為GBK,Java則默認(rèn)為Unicode,所以如果不通過一定的轉(zhuǎn)換,直接在GB2312字符集上顯示從GBKàUnicode得到的頁面將是一片亂碼。JAVA語言采用Unicode處理字符。但從另一個角度來說,在Java程序中也可以采用非Unicode的轉(zhuǎn)碼,重要的是保證程序入口和出口的漢字信息不失真。如完全采用ISO-8859-1來處理漢字也能達(dá)到正確的結(jié)果。在我的例子中就采用了這種方法,經(jīng)過轉(zhuǎn)換之后并將網(wǎng)頁字符集強制設(shè)為GB2312字符集顯示,就能夠正常顯示漢字了。四、JSP與ASP的比較

ASP技術(shù)也是動態(tài)網(wǎng)頁開發(fā)技術(shù)。JSP和ASP從形式上非常相似,但是深入探究下去會發(fā)現(xiàn)它們很多的差別,其中最主要的有以下幾點:

1、ASP和JSP的工作原理不同

當(dāng)Web服務(wù)器接收到對ASP頁面的請求時,它從硬盤或者內(nèi)存中接受正確的ASP文件,并將這個文件發(fā)送給ASP.DLL文件,ASP文件將會從頭至尾被解釋執(zhí)行并根據(jù)命令要求生成響應(yīng)的HTML頁面送回給瀏覽器。ASP.DLL會針對每個請求產(chǎn)生一個獨立的線程。

JSP由支持它的服務(wù)器上的JSP引擎負(fù)責(zé)解釋執(zhí)行。當(dāng)服務(wù)器接收到一個對某JSP頁面的請求時,如果這時對該頁面創(chuàng)建或修改后的第一次請求,那么JSP引擎就把該JSP頁面內(nèi)容轉(zhuǎn)變成一個純Java的Servlet,然后將其編譯成Servlet字節(jié)代碼,這個Servlet可以調(diào)用其他的Servlet或JavaBeans,最后將Servlet的執(zhí)行結(jié)果輸出給瀏覽器。JSP頁面被編譯成Servlet之后,其執(zhí)行代碼以獨立線程的方式一直存在于服務(wù)器的內(nèi)存中。以后對該JSP頁面提出請求時,不需要重新編譯,除非該頁面被修改。JavaServlet由于在服務(wù)器端運行,并且不包括會占用大量系統(tǒng)資源的GUI,因此運行的速度要比JavaApplet和Java獨立應(yīng)用程序快。

2、JSP的效率和安全性更高

ASP以源碼形式存放,以解釋方式運行,每次ASP網(wǎng)頁調(diào)用都需要對源碼進行解釋,運行效率不高。另外,IIS的漏洞曾使得許多網(wǎng)站源程序大曝光,許多用ASP開發(fā)的網(wǎng)站,ASP程序全部被人下載去了,這樣多網(wǎng)站的安全性產(chǎn)生了很大的危害。JSP源程序不大可能被下載,特別是JavaBean程序完全可以放到不對外的目錄中;而且我們可以將Bean的JSP原程序刪除,只剩下Class文件,網(wǎng)站照樣可以運行。

3、JSP的組件方式更方便

ASP通過COM來擴充復(fù)雜的功能,如文件上載、發(fā)送email以及將業(yè)務(wù)處理或者復(fù)雜計算分離出來成為獨立可重復(fù)利用的模塊。JSP通過JavaBean實現(xiàn)了同樣的功能擴充。在開發(fā)方面,COM的開發(fā)遠(yuǎn)比JavaBean復(fù)雜和繁瑣,學(xué)會ASP不難,但學(xué)會開發(fā)COM可不簡單。而JavaBean就簡單多了,從本文上述示例中可以看出開發(fā)JavaBean很方便。

在維護方面,COM必須在服務(wù)器上注冊,如果修改了COM程序,就必須重新注冊,甚至必須關(guān)機和重新啟動。JavaBean則不需要注冊,放在CLASSPATH包含的目錄中就行了。如果JavaBean進行了修改,則JSWDK和Tomcat現(xiàn)在還需要關(guān)閉和重新運行(但不是關(guān)機),但開發(fā)者已經(jīng)許諾將在以后的版本中做到不需要關(guān)閉服務(wù)器。

另外JSP這種基于組件的模式很有效地提高了應(yīng)用程序的開發(fā)效率,因為這種模式能夠使開發(fā)人員利用快捷的子組件快速創(chuàng)建模板應(yīng)用程序,然后再整合一些附加功能以后便可使用。像這樣的由于Java語言的優(yōu)勢而產(chǎn)生的有效的方法在JSP中無處不在,并可將其打包成一個JavaBeans或一個EJB組件。

4、JSP的適應(yīng)平臺更廣

ASP目前僅適用于NT和IIS。雖然Unix下有ChiliSoft的插件來支持ASP,但是ASP本身的功能有限,必須通過ASP+COM的組合來擴充,而且ActiveX對象必須事先放置于所選擇的平臺,Unix下的COM實現(xiàn)起來非常困難。

JSP則不同,幾乎所有平臺都支持Java,JSP+JavaBean可以在所有平臺下通行無阻。NT下IIS通過一個插件,例如JRUN,就能支持JSP。著名的Web服務(wù)器Apache已經(jīng)能夠支持JSP。雖然現(xiàn)在NT操作系統(tǒng)占了很大的市場份額,但是在服務(wù)器方面Unix的優(yōu)勢仍然很大,而新崛起的Linux更是來勢不小。由于Apache廣泛應(yīng)用在NT、Unix和Linux上,因此JSP有更廣泛的運行平臺。從一個平臺移植到另外一個平臺,JSP和JavaBean甚至不用重新編譯,因為Java字節(jié)碼都是標(biāo)準(zhǔn)的與平臺無關(guān)的。將在實驗的JSP網(wǎng)頁原封不動地拿到Linux相應(yīng)的服務(wù)器下就運行起來了,感覺非常好。

五、發(fā)展與展望

隨著Internet/Intranet技術(shù)的不斷發(fā)展,只有服務(wù)器端動態(tài)網(wǎng)頁技術(shù)才能滿足各種Web應(yīng)用程序日益提高的要求,因此各種動態(tài)網(wǎng)頁技術(shù)先后出現(xiàn),如CGI、ASP、PHP及JSP等。JSP技術(shù)是很有發(fā)展前景并具有強大功能的服務(wù)器端動態(tài)網(wǎng)頁技術(shù)。本文來自范文中國網(wǎng)。ASP技術(shù)雖然不失為一種優(yōu)秀的Web應(yīng)用程序開發(fā)技術(shù)。但同時也應(yīng)該看到,在Internet上基于WindowsNT+IIS的服務(wù)器畢竟占少數(shù),有關(guān)資料表明大約是15%,其余Web服務(wù)器則是基于Unix、Linux等其他操作系統(tǒng),而JSP由于它的跨平臺特性,使得其應(yīng)用范圍極其廣泛,而且由于其參與制定標(biāo)準(zhǔn)的廠商眾多,并開放源碼,提供免費的JSP實現(xiàn),因此盡管JSP技術(shù)目前還處于發(fā)展變化之中,但其發(fā)展?jié)摿Σ豢傻凸馈?/p>

參考文獻:

1.何雄,JSP網(wǎng)絡(luò)程序設(shè)計人民出版社

2.林邦杰,JSP交互網(wǎng)站事務(wù)經(jīng)典中國青年出版社

3./developerWorks/java/java_chinese/index.shtml

4.DuaneK.Fields,MarkA.Kolb,WebDevelopmentwithJavaServerPagesManningPublicationsCo.

Abstract:thispaperdiscussesJSPtechnologyinWebSitedevelopingandtellsthedifferencebetweenJSPandASP.

Keyword:JSP,Java,JDBC-ODBC,JavaBean.

文檔上傳者
主站蜘蛛池模板: 图木舒克市| 岱山县| 大关县| 哈尔滨市| 汉源县| 静宁县| 鹤壁市| 许昌县| 广安市| 胶南市| 忻城县| 常山县| 金乡县| 临颍县| 新兴县| 上饶市| 尼勒克县| 嘉鱼县| 芒康县| 安顺市| 新和县| 南通市| 宣汉县| 铜鼓县| 庆城县| 库车县| 郎溪县| 墨玉县| 富裕县| 延寿县| 萨迦县| 玉山县| 响水县| 仪征市| 博罗县| 罗平县| 奇台县| 丽江市| 永新县| 黑龙江省| 嘉善县|