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