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