您好,登錄后才能下訂單哦!
小編給大家分享一下在使用JSP技術構建動態網站過程中的技術問題有哪些,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
在 Internet眾多網站中,基于Web數據庫的動態網站應用相當廣泛。基于Web網絡數據庫的動態網站由一個Web瀏覽器作為客戶端界面,一個數據庫服務器用做信息存儲和一個連接兩者的 Web應用服務器組成。原有開發動態網站的CGI技術,隨著Web應用程序的客戶端技術不斷地發展,逐漸被Java Applet、ActiveX控件、DHTML和JavaScript所取代。這些技術極大地改善了用戶界面,但當它們嘗試做一些深入的工作時,開始遇到客戶端瀏覽器不兼容、服務器負擔過重、訪問速度下降以及安全性等問題。
JSP Web開發技術
JSP是基于Java Servlet以及整個Java體系的Web開發技術,利用這一技術可以建立先進、安全、快速和跨平臺的動態網站。在傳統的網頁HTML文件中加入Java程序片段和JSP標記,就構成了JSP網頁。Web服務器接收到訪問JSP網頁的請求時,首先執行其中的程序片段,然后將執行結果以HTML格式返回給客戶。程序片段可以操作數據庫、重新定向網頁以及發送 E-mail 等等,這就是建立動態網站所需要的功能。所有程序操作都在服務器端執行,網絡上傳送給客戶端的僅是得到的結果,對客戶瀏覽器的要求很低。如圖1所示,在用戶連接JSP網站時,用戶請求網頁,JSP頁面獨自響應請求,將用戶對網頁的請求轉化為對數據的請求,通過JavaBean處理請求并將返回的數據封裝成HTML頁面返回給用戶。
JSP Web開發有許多優勢:
1. 程序寫一次,到處可以運行。JSP在設計時,充分考慮到應用平臺的無關性。依賴于Java的可移植性,JSP得到目前許多流行操作平臺的支持,可在Apache、NetScape、IIS等服務器上執行。
2. 執行速度快。JSP頁面只需編譯一次轉化為Java字節代碼,其后一直駐留于服務器內存中,加快了對JSP頁面的響應速度。若不考慮JSP頁面***次編譯所花的時間,則JSP的響應速度要比ASP快得多。
3. Java的優勢。JSP技術是用Java語言作為腳本語言的。跨平臺、成熟、健壯、易擴充的Java技術使得開發人員的工作在其他方面也變得容易和簡單。在Windows系統被懷疑可能會崩潰時,Java能有效地防止系統崩潰。Java語言通過提供防止內存泄漏的方法,在內存管理方面大顯身手。加之,JSP為應用程序提供了更為健壯的意外事件處理機制,充分發揮了Java的優勢。
JSP Web開發技術難點
1. 連接數據庫
數據庫連接對動態網站來說是最為重要的部分,在與后端數據庫連接時可以采用ODBC或JDBC技術。雖然ODBC作為傳統的連接數據庫的手段是一種選擇,但是ODBC有以下致命缺陷,從而使它無法勝任JSP的請求:
(1) ODBC是C語言實現的API,從Java程序調用本地的C程序會帶來一系列類似安全性、完整性、健壯性方面的問題。
(2) 其次,完全精確地實現從C代碼ODBC到Java API 翻譯的ODBC不會令人滿意,因為在Java中沒有指針,而ODBC中大量地使用了指針,包括極易出錯的空指針“void *”。
(3) 考慮到平臺移植性,在進行JSP Web開發中使用ODBC會帶來負面影響,使得代碼不適合于移植。
為了使程序在具有安全性、完整性、健壯性的同時, 可以方便地移植,采用JDBC連接數據庫更合適一些。JDBC是一種可用于執行SQL語句的Java API,它由一些Java語言寫的類、界面組成,使開發人員可以用純Java語言編寫完整的數據庫應用程序。通過使用JDBC,可以很方便地將SQL語句傳送到幾乎任何一種數據庫。也就是說,可以不必寫一個程序訪問Sybase,寫另一個程序訪問Oracle,再寫一個程序訪問Microsoft的SQL Server。用JDBC寫的程序能夠自動地將SQL語句傳送給相應的數據庫管理系統。
在本地數據庫程序使用Microsoft的Access等數據庫時,可以使用Sun公司開發的JDBC-ODBC橋,借用此技術JSP程序就可以訪問帶有ODBC驅動程序的數據庫。這樣既保留JDBC的優點,又可以使用Microsoft提供的ODBC數據源與Access連接。不管對方是何種數據庫,只要有ODBC接口就可以直接使用JDBC-ODBC橋與數據庫連接,而無需因為后端數據庫的改變而改動相應的程序代碼,實現了應用層與數據庫層的***分離。如果需要變后端數據庫為MySQL,只需在ODBC數據源中安裝MySQL的驅動程序之后,就可以直接使用MySQL數據庫了。
2. 內建的組件
在實現網站的時候,由于客觀需要,為了方便區分本地局域網用戶與遠端連上來的用戶,并提供相應的權限,可以采用內建的組件Request來捕獲每一個連到服務器上的用戶的IP地址,通過比較之后給出相應的權限。這樣做到本局域網內用戶可以使用網站內所有公開的和不對外公開的資源。還可以將現有的方法加以改進,將各種IP地址輸入到數據庫中并且賦予不同的IP地址不同的權限,以完整地控制用戶使用網站資源。
會話狀態維持是Web應用開發者必須面對的問題。為了了解用戶是否還在線,使用內建的Session組件,通過給每個登錄用戶一個Session變量,可以在用戶非正常離開網站之后,關閉該用戶使用的資源,達到節省內存,提高服務器性能的目的。
在JSP中還提供了Cookie類,其構造器有兩個參數,分別代表Cookie的名稱和值。Cookie類中提供了各種方法設置Cookie的屬性,如通過setMaxAge方法可以設置Cookie的生存時間。若生存時間為負值,代表瀏覽器關閉Cookie,即消失; 生存時間為0,代表刪除Cookie; 生存時間為正數,代表Cookie存在多少秒。可以用Cookie臨時保存用戶的賬號和口令,JSP可隨時讀取,驗證用戶的合法性。可以將用戶的瀏覽狀態保存在Cookie中,下次用戶再訪問網頁時,由JSP向瀏覽器顯示個性化頁面。
3. 轉換Unicode編碼
在許多JSP頁面的調試過程中都碰到過由于漢字編碼與Unicode編碼轉換引起的問題,如在瀏覽器中看到的JSP頁面中的漢字都是亂碼、JSP頁面無法正常顯示漢字、JSP不能接收表單提交的漢字、JSP數據庫讀寫無法獲得正確的內容等等,這是因為現在大部分具有國際化特征的軟件核心字符處理都是以Unicode為基礎的,在軟件運行時根據當時“Locale/Lang/Codepage”設置確定相應的本地字符編碼設置,并依此處理本地字符,所以應該在處理過程中實現Unicode和本地字符集的相互轉換,甚至以Unicode為中介的兩個不同本地字符集的相互轉換。這種方式在網絡環境下被進一步延伸,任何網絡兩端的字符信息也需要根據字符集的設置轉換成可接受的內容。
由于IE默認字符集為GB2312,然而Windows默認為GBK,Java則默認為Unicode,所以如果不通過一定的轉換,直接在GB2312字符集上顯示從GBK或Unicode得到的頁面將是一片亂碼。Java 語言采用Unicode處理字符,但從另一個角度來說,在Java程序中也可以采用非Unicode,重要的是保證程序入口和出口的漢字信息不失真。如完全采用ISO-8859-1來處理漢字也能達到正確的結果,經過轉換之后并將網頁字符集強制設為GB2312字符集顯示,就能夠正常顯示漢字了。
以上是“在使用JSP技術構建動態網站過程中的技術問題有哪些”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。