摘 要:隨著計算機技術的不斷發(fā)展,人們根據(jù)不同需要逐步開發(fā)了動態(tài)網(wǎng)頁技術。JSP即為一種新型的動態(tài)網(wǎng)頁技術,可以促進網(wǎng)絡技術的發(fā)展。本文將就JSP動態(tài)網(wǎng)站的先進技術,優(yōu)點和缺點進行主要論述。
關鍵詞:JSP技術 動態(tài)網(wǎng)頁 優(yōu)點 缺點
21世紀,互聯(lián)網(wǎng)的迅猛發(fā)展,網(wǎng)絡成為了我們的必需品。網(wǎng)頁的開發(fā)技術層出不窮。基于Java語言的JSP網(wǎng)絡技術脫穎而出,也使C/S模式蓬勃發(fā)展。JSP作為一種動態(tài)網(wǎng)頁開發(fā)技術,為開發(fā)人員對于動態(tài)網(wǎng)頁的制作與維護提供了簡單又高效的開發(fā)方法。本文從JSP技術的原理、特點和將來的優(yōu)勢展開論述,從而表明JSP技術在動態(tài)網(wǎng)頁開發(fā)上的重要地位。
一、 JSP技術概述
JSP是Servlet的擴展,JSP沒出現(xiàn)之前就已經(jīng)出現(xiàn)了Servlet技術。這里有必要解釋一下早起Servlet。Servlet是利用了\"輸出流\"去動態(tài)生成了HTML頁面。包括 每一個HTML標簽和所有的HTML頁面中出現(xiàn)的內(nèi)容,簡單點說就是利用Servlet的輸出流將HTML標簽生成一個HTML頁面。由于時間長了 Servlet中包含了大量的HTML標簽、大量的靜態(tài)文本及格式等導致了Servlet的開發(fā)效率非常低下。這時候JSP誕生了。JSP實現(xiàn)了動態(tài)網(wǎng)頁與靜態(tài)頁面的分離,所以JSP主要是由兩部分組成:(1)靜態(tài)部分,包含一些標準的HTML標簽、靜態(tài)的頁面內(nèi)容。這些與HTML語言密不可分。(2)動態(tài)部分,就是數(shù)據(jù)從數(shù)據(jù)庫取得,當數(shù)據(jù)庫的數(shù)據(jù)發(fā)生變化時,頁面不需要更改,頁面中的數(shù)據(jù)即可發(fā)生變化。
二、JSP技術的運行機制
JSP技術的開發(fā)采用C/S模式。當一個JSP文件第一次被請求(request)時,將請求內(nèi)容發(fā)送給WEB服務器,這時服務器接收請求后,首先判斷JSP文件是否被修改,如有必要進行修改,則在響應的Servlet中執(zhí)行特定操作(對請求數(shù)據(jù)進行增、刪、改、查等操作),數(shù)據(jù)在servlet中執(zhí)行完成后生成一個回應(response),返回到前端頁面。這里值得注意的是,當JSP文件第一次被請求訪問時,運行速度會較后續(xù)訪問要慢一些,主要原因之一是,servlet的第一次編譯,需要校對專用的API是否正確。
三、JSP技術特點
JSP技術所開發(fā)的Web應用程序是基于Java的,它擁有Java語言跨平臺的特性,以及業(yè)務代碼分離、繼承Java Servlet功能、預編譯、提供了隱含對象和采用表達式語言簡化了頁面開發(fā)等特征。
1.跨平臺。由于JSP是基于Java語言的,那么它就可以使用Java API,所以它也是跨平臺的,可以應用在不同的系統(tǒng)中,如Windows、Linux、Mac和Solaris等。這同時也拓寬了JSP可以使用的Web服務器的范圍。另外,應用于不同操作系統(tǒng)的數(shù)據(jù)庫也可以為JSP服務,JSP使用JDBC、JNDI等技術操作數(shù)據(jù)庫,從而避免了代碼移植導致更換數(shù)據(jù)庫時的代碼修改問題。
2.業(yè)務代碼分離。采用JSP技術開發(fā)的項目,通常使用HTML語言來設計和格式化靜態(tài)頁面的內(nèi)容,而使用JSP標簽和Java代碼片段來實現(xiàn)動態(tài)部分。程序開發(fā)人員可以將業(yè)務處理代碼全部放到JavaBean中,或者把業(yè)務處理代碼交給Servlet、Struts等其他業(yè)務控制層來處理,從而實現(xiàn)業(yè)務代碼從視圖層分離。這樣JSP頁面只負責顯示數(shù)據(jù)即可,當需要修改業(yè)務代碼時,不會影響JSP頁面的代碼。
3.繼承Java Servlet功能。Servlet是JSP出現(xiàn)之前的主要Java Web處理技術。它接受用戶請求,在Servlet類中編寫所有Java和HTML代碼,然后通過輸出流把結果頁面返回給瀏覽器。其缺點是:在類中編寫HTML代碼非常不便,也不利于閱讀。使用JSP技術之后,開發(fā)Web應用便變得相對簡單快捷多了,并且JSP最終要編譯成Servlet才能處理用戶請求,因此我們說JSP擁有Servlet的所有功能和特性。
4.預編譯。預編譯就是在用戶第一次通過瀏覽器訪問JSP頁面時,服務器將對JSP頁面代碼進行編譯,并且僅執(zhí)行一次編譯。編譯好的代碼將被保存,在用戶下一次訪問時,直接執(zhí)行編譯好的代碼。這樣不僅節(jié)約了服務器的CPU資源,還大大提升了客戶端的訪問速度。
5.提供了隱含對象。共有九大隱含對象。(1)request對象客戶端的請求信息被封裝在request對象中,通過它才能了解到客戶的需求,然后做出響應。(2)response對象包含了響應客戶請求的有關信息。(3)session對象指的是客戶端與服務器的一次會話,從客戶連到服務器的一個WebApplication開始,直到客戶端與服務器斷開連接為止。(4)out對象是JspWriter類的實例,是向客戶端輸出內(nèi)容常用的對象。(5)page對象就是指向當前JSP頁面本身,有點象類中的this指針。(6)application對象實現(xiàn)了用戶間數(shù)據(jù)的共享,可存放全局變量。它開始于服務器的啟動,直到服務器的關閉,在此期間,此對象將一直存在;這樣在用戶的前后連接或不同用戶之間的連接中,可以對此對象的同一屬性進行操作;在任何地方對此對象屬性的操作,都將影響到其他用戶對此的訪問。服務器的啟動和關閉決定了application對象的生命。(7)exception對象是一個例外對象,當一個頁面在運行過程中發(fā)生了例外,就產(chǎn)生這個對象。如果一個JSP頁面要應用此對象,就必須把isErrorPage設為true,否則無法編譯。(8)pageContext對象提供了對JSP頁面內(nèi)所有的對象及名字空間的訪問,也就是說他可以訪問到本頁所在的session,也可以取本頁面所在的application的某一屬性值,他相當于頁面中所有功能的集大成者。(9)config對象是在一個Servlet初始化時,JSP引擎向它傳遞信息用的,此信息包括Servlet初始化時所要用到的參數(shù)以及服務器的有關信息。
6.采用表達式語言簡化了頁面開發(fā)。采用JSTL表達式和EL表達式兩種方式。 JSTL一般要配合EL表達式一起使用,來實現(xiàn)在jsp中不出現(xiàn)Java代碼段。EL表達式語言:用于計算和輸出存儲在標志位置的Java對象的值,然后對它們執(zhí)行簡單操作。通常與 JSTL 標記一起作用,能用簡單而又方便的符號來表示復雜的行為。
四、JSP技術的發(fā)展趨勢
通過以上的分析和論述可知,JSP技術擁有非常多的優(yōu)勢特點,這是時代發(fā)展過程中進行擇優(yōu)選擇的產(chǎn)物。據(jù)某招聘網(wǎng)站統(tǒng)計結果稱,我國每年JSP技術的開發(fā)人員需求達到1200萬人,并且需求量還在增加,由此可以看出學習JSP技術的開發(fā)人員將來會增加。其次,使用JSP技術來開發(fā)的網(wǎng)站也會增多,例如,網(wǎng)易郵箱,網(wǎng)易游戲等網(wǎng)站就是采用JSP技術來實現(xiàn)。從網(wǎng)易這種大型科技公司都采用JSP技術,不難發(fā)現(xiàn),它的發(fā)展前景一片大好。這也是因為JSP技術開發(fā)效率高、周期短、安全性高、可移植的特點所決定。
五、結語
Java語言現(xiàn)已成為世界最熱門的語言之一。它所采用的面向對象編程思想得到了眾多程序員的青睞。本文通過簡要介紹JSP技術的誕生、JSP技術的運行機制和JSP技術的特點,進而對JSP技術今后的發(fā)展做了展望。JSP技術的發(fā)展和完善,將會為今后動態(tài)網(wǎng)頁的開發(fā)貢獻更多的力量。我們也會見證它的進一步成長。
參考文獻:
[1]范春曉. 淺談JSP動態(tài)網(wǎng)頁開發(fā)技術[J]. 中國科技博覽. 2011.3(5).
[2]陳蓉西. JSP在移動數(shù)據(jù)庫連接池的實現(xiàn)[J]. 微計算機技術. 2008 .
[3]孫鑫. JAVA WEB開發(fā)詳解[M]. 電子工業(yè)出版社. 2007.12.
作者簡介:張波(1994.07—)男。山東省滕州市人。青島市市南區(qū)青島大學軟件工程專業(yè)本科生。