劉 婷
(武警工程大學(xué)信息工程學(xué)院,陜西 西安 710086)
近年來,JSP 研究取得了不錯的成績, 在國內(nèi),JSP目前主要用于政府方面的大型系統(tǒng)開發(fā)中, 或一些大型企業(yè)類似于移動、網(wǎng)易、曾經(jīng)的人人網(wǎng)。 各大公司對JSP 專業(yè)開發(fā)人才的需求量也是越來越大[1]。
JSP, 全 稱Java Server Pages, 是Sun 公 司 提 倡 的 一門應(yīng)用于前端開發(fā)的動態(tài)網(wǎng)頁開發(fā)技術(shù), 最基本的JSP 界面由HTML 標(biāo)簽與少量的Java 代碼組成,除此之外,指令標(biāo)簽、注釋、JSP 動作標(biāo)簽及九大內(nèi)置對象都是JSP 的組成成分,標(biāo)簽通常以<%開頭以%>結(jié)束。JSP 的本質(zhì)是servlet,其主要用途是在Java web 應(yīng)用程序中編寫客戶端界面[2]。
JSP 是基于Java 的動態(tài)網(wǎng)頁開發(fā)技術(shù),并很好的繼承了Java 語言的一些特性[3]。
1.2.1 跨平臺
JSP 是基于Java 的,那么Java API 對于JSP 而言就不是問題, 所以JSP 也是跨平臺的。 良好的跨平臺特性, 讓JSP 開發(fā)的Web 項目完美的應(yīng)用到任何平臺上。
1.2.2 業(yè)務(wù)代碼分離
基于JSP 開發(fā)的Web 項目, 開發(fā)人員可以將業(yè)務(wù)處理代碼全部放到JavaBean 中, 從而實現(xiàn)業(yè)務(wù)與View層分離。JSP 負(fù)責(zé)動態(tài)顯示數(shù)據(jù),改變業(yè)務(wù)代碼卻不會對JSP 造成任何影響。
1.2.3 組件重用
JSP 推薦使用JavaBean 編寫業(yè)務(wù)組件,這個封裝的JavaBean 在整個項目的JSP 頁面中都可以復(fù)用。
1.2.4 繼承Java Servlet 功能
JSP 算是Servlet 的升級版本。 在JSP 出現(xiàn)之后,編寫和訪問過程被簡化了, 不過JSP 最終仍要編譯成Servlet 來處理用戶請求,因此JSP 具有Servlet 的所有特性和功能。
1.2.5 預(yù)編譯
用戶第一次使用瀏覽器訪問JSP 界面時, 服務(wù)器將對JSP 頁面代碼僅執(zhí)行一次編譯并保存, 在用戶下一次訪問時, 直接執(zhí)行編譯好的代碼。 這樣不僅節(jié)約了服務(wù)器的CPU 資源,還大大提升了客戶端的訪問速度。
客戶端首先發(fā)送訪問JSP 頁面的request 請求,在接收到請求之后JSP Container 會把訪問的.JSP 文件轉(zhuǎn)譯成Servlet(.java 文件),然后產(chǎn)生的源代碼經(jīng)過編譯,生成.class 文件,并加載到內(nèi)存執(zhí)行,執(zhí)行完成后就會把響應(yīng)傳給客戶端,生成動態(tài)的HTML 文件,即瀏覽器所能看到的界面。
JavaBean 只是一個普通的Java 類,但是使用它能夠帶來封裝、重用、可讀的好處,定義一個JavaBean 便能夠在整個JSP 乃至整個項目中重復(fù)使用這個類,JSP 技術(shù)提供了關(guān)于JavaBean 組件的三個動作元素, 即JSP行為(標(biāo)簽):
(1) 在JSP 頁 面 中 查 找javaBean 對 象 或 實 例 化javaBean 對象,
(2)設(shè)置javaBean 的屬性,
(3)獲取javaBean 的屬性,
通過使用三個標(biāo)簽, 即能查找到在指定的域內(nèi)的指定名稱的JavaBean 對象,并獲取到相對應(yīng)的屬性,簡化了我們在沒有學(xué)習(xí)三個標(biāo)簽之前冗長的代碼量,不僅提高了代碼簡介度,更是為開發(fā)提供了便利。
如果需要編寫一套體系完整的Web 項目, 必然關(guān)聯(lián)到數(shù)據(jù)庫信息的管理,Java 中連接數(shù)據(jù)庫的技術(shù)是JDBC,JavaEE 項目中最常用的就是通過JDBC 驅(qū)動程序連接到數(shù)據(jù)庫,執(zhí)行查詢、操作數(shù)據(jù)等。 Java 程序能訪問諸如Oracle、Sybase、MS SQL Server 和MS Access 等數(shù)據(jù)庫。
現(xiàn)階段市面上存在各式各樣的前端語言, 盡管如此,相較于php、asp、Node.js、React 等眾多的開發(fā)語言,JSP 仍然具有強(qiáng)大的生命力, 它的通用性讓其成為企業(yè)軟件的開發(fā)中頗為不錯的選擇。
在訪問HTML 靜態(tài)頁面時, 客戶端使用Web 瀏覽器經(jīng)過網(wǎng)絡(luò)向服務(wù)器發(fā)出請求,Web 服務(wù)器根據(jù)用戶的請求返回相應(yīng)的信息, 瀏覽器端會對收到的信息進(jìn)行渲染解析, 得到顯示效果, 同時也可以運(yùn)用js/ajax技術(shù)使頁面更加美觀, 由于這些特效都是借助于瀏覽器完成的,所以服務(wù)器上的內(nèi)容不會受到影響。
但HTML 也有缺點,靜態(tài)頁面無法連接數(shù)據(jù)庫,并且由于大量使用js,導(dǎo)致瀏覽器打開頁面時,首先要加載大量的js 文件,占用大量的內(nèi)存,相當(dāng)于把服務(wù)器端的壓力轉(zhuǎn)移到了客戶端, 無形中降低了用戶的體驗度。
JSP 基于HTML 界面,支持所有HTML 標(biāo)簽,是一種動態(tài)界面,在動態(tài)Web 中,程序依然使用客戶端和服務(wù)端, 客戶端依然使用瀏覽器, 通過網(wǎng)絡(luò)連接到服務(wù)器上,現(xiàn)在的所有請求都先經(jīng)過一個WEB Server 來處理。
作為一門完全免費的開源語言,PHP(Hypertext Preprocessor)是一種嵌入在HTML 頁面中,以C 語言為主、Perl 為輔、 結(jié)合自身特性實現(xiàn)的一門腳本語言,可以滿足開發(fā)人員快速編寫動態(tài)頁面的需求。
在構(gòu)建中小型網(wǎng)站的過程中,PHP 和MYSQL 一起使用, 具有很大的優(yōu)勢, 所以國外大多數(shù)主機(jī)系統(tǒng)都配有免費的APACHE +PHP +MYSQL。
雖然開源語言具有簡單的語法和豐富的函數(shù)對開發(fā)頗為有利,但天生的結(jié)構(gòu)缺陷導(dǎo)致了PHP 不適于編寫比中小型業(yè)余網(wǎng)站更大的網(wǎng)站[4]。
從整體來說,PHP 更傾向于中小軟件的開發(fā),如果硬套在大型的項目上, 后期維護(hù)的過程中命名的問題將是一大軟肋, 而JSP 更適用于大型系統(tǒng)。 其次PHP對數(shù)據(jù)庫接口的提供并不統(tǒng)一, 如果將來要進(jìn)行數(shù)據(jù)移植那么統(tǒng)一數(shù)據(jù)庫接口就是一大難題。 而JSP 沒有這種缺陷, 通過 EJB/CORBA 以及眾多廠商的Application Server 獲得結(jié)構(gòu)支持。
如果說PHP 是未來編程的福音, 簡化了編程的難度,那么JSP 將會是救世之星,只有具有較好的前瞻性和拓展性, 整體布局和協(xié)同能力強(qiáng), 才能在未來的發(fā)展中不斷進(jìn)步,走向最終的成功。
ASP(Active Server Pages)是Windows 系統(tǒng)自帶的腳本語言。
ASP +COM +SQLServer 是Windows 平 臺 開 發(fā) 中 不 錯的選擇, 而且是Windows 系統(tǒng)和SQLServer 都有圖形界面,易于觀察,相對APACHE 和MYSQL 開發(fā)友好度更高, 對于不重視知識產(chǎn)權(quán)的國家來說也算是一種福音。
不過,ASP 的簡單也意味著單一性,在逐漸繁瑣的需求中開發(fā)人員發(fā)現(xiàn)單純使用ASP 已經(jīng)很難完成需求,和PHP 一樣,ASP 簡單易維護(hù),是小型web 應(yīng)用程序的理想選擇。
但是,由于基于ActiveX 控件技術(shù),ASP 只能作用于微軟的操作系統(tǒng)之上,雖然經(jīng)過改良,ASP 可以通過第三方提供的組件和服務(wù)來實現(xiàn)跨平臺開發(fā), 但是ActiveX 對象必須事先放置于所選擇的平臺中。 這種不支持跨平臺系統(tǒng)開發(fā)的致命缺點使ASP 很難開發(fā)和維護(hù)大型項目。
從總體上說,JSP 和ASP 從技術(shù)角度來講有很多異曲同工之妙。 首先,兩者都是基于Web 的應(yīng)用程序的技術(shù)環(huán)境支持, 以實現(xiàn)動態(tài)交互式網(wǎng)頁創(chuàng)建, 其次兩者都可以為程序開發(fā)人員提供一種邏輯上將應(yīng)用程序的編制與自帶組件設(shè)計網(wǎng)頁分離的技術(shù)。 但是雖然JSP 技術(shù)和ASP 在許多方面都很相似, 但兩者之間的本質(zhì)區(qū)別仍然非常明顯: 兩者是來源于不同的技術(shù)規(guī)范組織, 其實現(xiàn)的基礎(chǔ)Web 服務(wù)器平臺要求也不相同。
最終, 基于Java 的JSP 因其能夠廣泛支持不同提供商提供的工具的優(yōu)點而略勝一籌,對所有Web 服務(wù)器和應(yīng)用程序的服務(wù)的友好兼容, 讓其成為開發(fā)人員在開發(fā)中的選擇最佳。
JSP 的各種優(yōu)點不僅提高了開發(fā)人員的工作效率,也會使網(wǎng)站的網(wǎng)頁具有更好的安全性和可移植性。 所以JSP 具有非常良好的發(fā)展前景,JSP 的開發(fā)人員、所設(shè)計的網(wǎng)站也會越來越多。