小議動態(tài)網(wǎng)頁開發(fā)中jsp技術
時間:2022-05-04 03:18:00
導語:小議動態(tài)網(wǎng)頁開發(fā)中jsp技術一文來源于網(wǎng)友上傳,不代表本站觀點,若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。
隨著網(wǎng)絡的不斷快速發(fā)展,基于Web數(shù)據(jù)庫的動態(tài)網(wǎng)站應用開發(fā)也相當?shù)膹V泛?;赪eb網(wǎng)絡數(shù)據(jù)庫的動態(tài)網(wǎng)站是由一個Web瀏覽器和一個數(shù)據(jù)庫服務器構成的,瀏覽器作為客戶端界面,數(shù)據(jù)庫用做信息存儲,然后將這兩者運用應用服務器連接起來。原有開發(fā)動態(tài)網(wǎng)站的技術,隨著Web應用程序的客戶端技術不斷地發(fā)展,逐漸被JavaApplet、ActiveX控件、DHTML和javascript等眾多新技術所取代。這些技術極大地改善了用戶界面,但當它們嘗試做一些深入的工作時,開始遇到客戶端瀏覽器不兼容、服務器負擔過重、訪問速度下降以及安全性等問題。jsp技術就是解決這些問題的關鍵所在,這里主要討論在使用JSP技術構建動態(tài)網(wǎng)站的過程中遇到的一些技術問題。
一、JSP技術介紹
JSP是基于JavaServlet以及整個Java體系的Web開發(fā)技術,利用這一技術建立的動態(tài)網(wǎng)站具有先進、安全、快速和跨平臺等優(yōu)點。Jsp網(wǎng)頁的制作也非常簡單,不需要接收大量的新信息,只要在傳統(tǒng)的網(wǎng)頁HTML文件中加入Java程序片段和JSP標記,就構成了JSP網(wǎng)頁。Web服務器接收到訪問JSP網(wǎng)頁的請求時,首先執(zhí)行其中的程序片段,然后將執(zhí)行結果以HTML格式返回給客戶。程序片段中可以操作數(shù)據(jù)庫、重新定向網(wǎng)頁以及發(fā)送E-mail等等,這就是建立動態(tài)網(wǎng)站所需要的功能。所有程序操作都在服務器端執(zhí)行,網(wǎng)絡上傳送給客戶端的僅是得到的結果,對客戶瀏覽器的要求很低。在用戶連接JSP網(wǎng)站時,用戶請求網(wǎng)頁,JSP頁面獨自響應請求,將用戶對網(wǎng)頁的請求轉化為對數(shù)據(jù)的請求,通過JavaBean處理請求并將返回的數(shù)據(jù)封裝成HTML頁面返回給用戶。
二、JSP技術難點
1.連接數(shù)據(jù)庫
數(shù)據(jù)庫連接對動態(tài)網(wǎng)站來說是最為重要的部分,在與后端數(shù)據(jù)庫連接時可以采用ODBC或JDBC技術。Java中連接數(shù)據(jù)庫的技術是JDBC(JavaDatabaseConnectivity)。很多數(shù)據(jù)庫系統(tǒng)帶有JDBC驅動程序,Java程序就通過JDBC驅動程序與數(shù)據(jù)庫相連,執(zhí)行查詢、提取數(shù)據(jù)等等操作。雖然ODBC作為傳統(tǒng)的連接數(shù)據(jù)庫的手段是一種選擇,但是ODBC有以下致命缺陷,從而使它無法勝任JSP的請求:
(1)ODBC是C語言實現(xiàn)的API,從Java程序調用本地的C程序會帶來一系列類似安全性、完整性、健壯性方面的問題。
(2)其次,完全精確地實現(xiàn)從C代碼ODBC到JavaAPI翻譯的ODBC不會令人滿意,因為在Java中沒有指針,而ODBC中大量地使用了指針,c語言與java實現(xiàn)的內(nèi)在差異會帶來一些諸如內(nèi)存泄漏等重大的安全性問題。
要想使程序兼具安全與可移植性,JDBC是首選。JDBC是一種可用于執(zhí)行SQL語句的JavaAPI,它由一些Java語言寫的類、界面組成,使開發(fā)人員可以用純Java語言編寫完整的數(shù)據(jù)庫應用程序,同時我們也在享用java帶來的種種優(yōu)點。通過使用JDBC,可以很方便地將SQL語句傳送到幾乎任何一種數(shù)據(jù)庫。也就是說,可以不必寫一個程序訪問Sybase,寫另一個程序訪問Oracle,再寫一個程序訪問Microsoft的SQLServer。用JDBC寫的程序能夠自動地將SQL語句傳送給相應的數(shù)據(jù)庫管理系統(tǒng)。
Sun公司還開發(fā)了JDBC-ODBCbridge,用此技術Java程序就可以訪問帶有ODBC驅動程序的數(shù)據(jù)庫,目前大多數(shù)數(shù)據(jù)庫系統(tǒng)都帶有ODBC驅動程序,所以Java程序能訪問諸如Oracle、Sybase、MSSQLServer和MSAccess等數(shù)據(jù)庫。在本地數(shù)據(jù)庫程序使用Microsoft的Access等數(shù)據(jù)庫時,就可以使用Sun公司開發(fā)的JDBC-ODBC橋,借用此技術JSP程序就可以訪問帶有ODBC驅動程序的數(shù)據(jù)庫。這樣既保留JDBC的優(yōu)點,又可以使用Microsoft提供的ODBC數(shù)據(jù)源與Access連接。不管對方是何種數(shù)據(jù)庫,只要有ODBC接口就可以直接使用JDBC-ODBC橋與數(shù)據(jù)庫連接,而無需因為后端數(shù)據(jù)庫的改變而改動相應的程序代碼,實現(xiàn)了應用層與數(shù)據(jù)庫層的完美分離。如果需要變后端數(shù)據(jù)庫為MySQL,只需在ODBC數(shù)據(jù)源中安裝MySQL的驅動程序之后,就可以直接使用MySQL數(shù)據(jù)庫了。
2.網(wǎng)頁亂碼問題
亂碼問題是大家在開發(fā)網(wǎng)頁中常見的問題,明明在編輯時一切都好,可以真正在執(zhí)行網(wǎng)頁時就會出現(xiàn)瀏覽器中看到的JSP頁面中的漢字都是亂碼、JSP頁面無法正常顯示漢字、JSP不能接收表單提交的漢字、JSP數(shù)據(jù)庫讀寫無法獲得正確的內(nèi)容等等問題。這是由于現(xiàn)在大部分具有國際化特征的軟件核心字符處理都是以Unicode為基礎的,在軟件運行時根據(jù)當時”Locale/Lang/Codepage”設置確定相應的本地字符編碼設置,并依此處理本地字符,所以應該在處理過程中實現(xiàn)Unicode和本地字符集的相互轉換,甚至以Unicode為中介的兩個不同本地字符集的相互轉換。這種方式在網(wǎng)絡環(huán)境下被進一步延伸,任何網(wǎng)絡兩端的字符信息也需要根據(jù)字符集的設置轉換成可接受的內(nèi)容。
由于IE默認字符集為GB2312,然而Windows默認為GBK,Java則默認為Unicode,所以如果不通過一定的轉換,直接在GB2312字符集上顯示從GBK或Unicode得到的頁面將是一片亂碼。Java語言采用Unicode處理字符,但從另一個角度來說,在Java程序中也可以采用非Unicode,重要的是保證程序入口和出口的漢字信息不失真。如完全采用ISO-8859-1來處理漢字也能達到正確的結果,經(jīng)過轉換之后并將網(wǎng)頁字符集強制設為GB2312字符集顯示,就能夠正常顯示漢字了。
三、JSP的優(yōu)勢:
1.程序寫一次,到處可以運行(這是所有java語言的共同優(yōu)點)。JSP在設計時,充分考慮到應用平臺的無關性。依賴于Java的可移植性,JSP得到目前許多流行操作平臺的支持,可在Apache、NetScape、IIS等服務器上執(zhí)行。
2.執(zhí)行速度快。JSP頁面只需編譯一次轉化為Java字節(jié)代碼,其后一直駐留于服務器內(nèi)存中,加快了對JSP頁面的響應速度。若不考慮JSP頁面第一次編譯所花的時間,則JSP的響應速度要比ASP快得多。
3.Java的優(yōu)勢。JSP技術是用Java語言作為腳本語言的??缙脚_、成熟、健壯、易擴充的Java技術使得開發(fā)人員的工作在其他方面也變得容易和簡單。在Windows系統(tǒng)被懷疑可能會崩潰時,Java能有效地防止系統(tǒng)崩潰。Java語言通過提供防止內(nèi)存泄漏的方法,在內(nèi)存管理方面大顯身手。加之,JSP為應用程序提供了更為健壯的意外事件處理機制,充分發(fā)揮了Java的優(yōu)勢。
4、強大的的可伸縮性。從只有一個小的jar文件就可以運行servlet/jsp到由多臺服務器進行集群和負載均橫,到多臺Application進行事務處理、消息處理,一臺服務器到無數(shù)以服務器,Java顯示了一個巨人的生命力。
5、多樣化和功能強大的開發(fā)工具支持。這一點與asp很像,java已經(jīng)有了許多非常優(yōu)秀的開發(fā)工具而且有許多可以免費得到,并且其中的許多已經(jīng)可以順利的運行于多種平臺之下。如果你細心的使用它們會發(fā)現(xiàn)比自己第一面看到它們時的功能要強大的多。
四、結論:
根據(jù)以上對jsp技術的優(yōu)勢和難點的分析,可知隨著網(wǎng)絡技術應用的不斷發(fā)展,jsp必將在此領域大展拳腳。
參考文獻:
[1]周慧貞jsp應用開發(fā)詳解(第三版)電子工業(yè)出版社2007
[2]唐有明jsp動態(tài)網(wǎng)站開發(fā)清華大學出版社2006