JSP入門:介紹什么是JSP和Servlet
JSP入門:什么是jsp?
JSP(Java Server Pages)是由Sun Microsystems公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn)。在傳統(tǒng)的網(wǎng)頁(yè)HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP標(biāo)記(tag),從而形成JSP文件(*.jsp)。
簡(jiǎn)單地說,jsp就是可能包含了java程序段的html文件,為了和普通的html區(qū)別,因此使用jsp后綴名。很多jsp教程的開篇總是喜歡拿jsp和asp比較,可是很多jsp的初學(xué)者根本不知道什么是asp,有意思么?
下面這個(gè)圖是普通的HTML請(qǐng)求流程:
因?yàn)镴SP包含了java程序代碼段,因此JSP在web server里面就要有個(gè)更多的處理步驟。如下圖所示:
你會(huì)發(fā)現(xiàn),這里多了一個(gè)JSP Container的東西,然后多了一個(gè)轉(zhuǎn)換到 名叫xxxServlet的java文件并編譯成class類文件的過程。這里就展示出了java服務(wù)器的核心部分——Servlet。
JSP入門:什么是Servlet?
Servlet是一種獨(dú)立于平臺(tái)和協(xié)議的服務(wù)器端的Java應(yīng)用程序,可以生成動(dòng)態(tài)的Web頁(yè)面。 它擔(dān)當(dāng)Web瀏覽器或其他HTTP客戶程序發(fā)出請(qǐng)求,與HTTP服務(wù)器上的數(shù)據(jù)庫(kù)或應(yīng)用程序之間的中間層。
Servlet是位于Web 服務(wù)器內(nèi)部的服務(wù)器端的Java應(yīng)用程序,與傳統(tǒng)的從命令行啟動(dòng)的Java應(yīng)用程序不同,Servlet由Web服務(wù)器進(jìn)行加載,該Web服務(wù)器必須包含支持Servlet的Java虛擬機(jī)。
在通信量大的服務(wù)器上,Java servlet的優(yōu)點(diǎn)在于它們的執(zhí)行速度更快于CGI程序。各個(gè)用戶請(qǐng)求被激活成單個(gè)程序中的一個(gè)線程,而創(chuàng)建單獨(dú)的程序,這意味著各個(gè)請(qǐng)求的系統(tǒng)開銷比較小。
簡(jiǎn)單地說,servlet就是在服務(wù)器端被執(zhí)行的java程序,它可以處理用戶的請(qǐng)求,并對(duì)這些請(qǐng)求做出響應(yīng)。Servlet編程是純粹的java編程,而jsp則是html和java編程的中庸形式,它更有助于美工人員來設(shè)計(jì)界面。正是如此,所有的jsp文件都將被最終轉(zhuǎn)換成java servlet來執(zhí)行。
從jsp到j(luò)ava到class,jsp在首次被請(qǐng)求時(shí)是要花費(fèi)一定的服務(wù)器資源的。但慶幸的是,這種情況只發(fā)生一次,一旦這個(gè)jsp文件被翻譯并編譯成對(duì)應(yīng)的servlet,在下次請(qǐng)求來臨時(shí),將直接由servlet來處理,除非這個(gè)jsp已經(jīng)被修改。
從上面兩幅圖的比較也可以看出,作為jsp服務(wù)器,要比普通的web服務(wù)器多出一個(gè)JSP Container的東西,用來負(fù)責(zé)jsp的解釋執(zhí)行。對(duì)于初學(xué)者來說,Tomcat將是一個(gè)這種應(yīng)用服務(wù)器的非常好的選擇。http://tomcat.apache.org/ 上面列出了最新的tomcat下載。這里推薦解壓運(yùn)行版本,而非安裝版本。其實(shí)解壓運(yùn)行版本并不比安裝版復(fù)雜多少,一個(gè)JAVA_HOME的環(huán)境變量,就足夠了。
【編輯推薦】