上個(gè)月寫了《教你servlet入門》,今天來探究一下關(guān)于jsp的那些故事。
1. 什么是Web應(yīng)用程序? JSP:Java server Pages,是由sun 公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)。它在HTML代碼中插入JSP標(biāo)記及Java程序(Scriptlet)構(gòu)成JSP界面,擴(kuò)展名為.JSP。當(dāng)客戶端請(qǐng)求JSP文件時(shí),web服務(wù)器會(huì)執(zhí)行該JSP文件,然后以HTML的格式返回給客戶。而JSP是構(gòu)建在servlet智商的高層次的動(dòng)態(tài)網(wǎng)頁標(biāo)準(zhǔn)。所以從概念上來講,相對(duì)servlet而言,JSP沒有什么新東西,可以說概念是完全一樣的,只是在實(shí)現(xiàn)方式上稍有不同而已。因此,JSP就是servlet的一種變式。 § JSP的運(yùn)行方式 .JSP文件會(huì)在第一次被調(diào)用時(shí)進(jìn)行編譯,比如test.jsp文件會(huì)在第一次調(diào)用時(shí)被編譯為test_jsp.java文件,之后和servlet文件的編譯流程一樣,被編譯為.class文件。從這以后,如果再有客戶需要請(qǐng)求該JSP頁面,JSP頁面不需要重新編譯而是直接執(zhí)行第一次已經(jīng)編譯好的.class文件。下面我們通過一張時(shí)序圖來進(jìn)一步了解JSP文件的調(diào)用和編譯過程:
§ JSP的優(yōu)點(diǎn) 1.一次編譯,多次、多處運(yùn)行JSP的腳本語言是Java語言,它具有Java語言的一切特性,像上圖中顯示的過程那樣,在JSP文件被編譯之后,有客戶再次請(qǐng)求該頁面時(shí),JSP不需要被重新編譯,而是直接執(zhí)行早已經(jīng)編譯好的.class文件,因此執(zhí)行效率會(huì)特別高。 2.組件可重用性,平臺(tái)無關(guān)性 具有可重用性和跨平臺(tái)性的javaBeans和Ejb組件,為JSP程序的開發(fā)提供方便,我們可以將復(fù)雜的處理程序放到這些組件中,這樣我們通過多次使用這些組件,極大地減少了在JSP頁面中重寫重復(fù)的代碼,提高了效率,增強(qiáng)了代碼的重用性。 3.降低耦合度,增加源程序代碼的安全性 使用JSP技術(shù),web頁面開發(fā)人員可以使用HTML和xml標(biāo)識(shí)來設(shè)計(jì)和格式化最終頁面,使用JSP腳本或者標(biāo)識(shí)來生成頁面上的動(dòng)態(tài)內(nèi)容,生成動(dòng)態(tài)內(nèi)容的語句一般被封裝在JavaBean、ejb或者JSP腳本段中,這樣頁面的設(shè)計(jì)人員和頁面的編程人員的工作可以同步進(jìn)行。并且我們在客戶端通過查看源文件,看不到JSP標(biāo)識(shí)的語句,也看不到在組件中封裝好的代碼,這樣就達(dá)到了類似三層的解耦作用,有效保護(hù)了源代碼。 § JSP和servlet的結(jié)合使用 由于我們使用servlet處理大量的HTML文本(如拼接表格的HTML語句)時(shí),不僅僅任務(wù)量較大,而且不利于后期的維護(hù)和擴(kuò)展,所以我們處理前端界面效果時(shí)采用的JSP技術(shù),而對(duì)于程序的邏輯控制則使用servlet技術(shù)。 § JSP和servlet的區(qū)別 JSP技術(shù)是servlet技術(shù)的發(fā)展,所以本質(zhì)上就是servlet的簡(jiǎn)易方式。而兩者最大的不同點(diǎn)在于servlet的應(yīng)用邏輯是在Java文件中,并且完全從表示層中的HTML里分離出來。而JSP的情況是將Java和HTML組合成一個(gè)擴(kuò)展名為.JSP的文件。所以在實(shí)際應(yīng)用中,我們采用JSP來生成動(dòng)態(tài)的網(wǎng)頁頁面,采用servlet來控制業(yè)務(wù)流程也就是所謂的業(yè)務(wù)邏輯。所以JSP側(cè)重于視圖,而servlet注重對(duì)邏輯的控制。
因此,在web建設(shè)中到底使用哪種技術(shù)周密詳細(xì)的事前規(guī)劃,而網(wǎng)站建設(shè)又不光是技術(shù)的問題,所以我們?cè)趯W(xué)習(xí)和對(duì)比JSP和servlet的同事更應(yīng)該注意從中汲取思想的精華,因?yàn)榧夹g(shù)會(huì)過時(shí),而思想?yún)s受用一生。
|
|