JSP筆記04——架構(轉)
Web服務器需要一個JSP引擎,即一個處理JSP頁面的容器。JSP容器負責截取JSP頁面的請求。本教程使用了內置JSP容器的Apache來支持JSP頁面的開發。
JSP容器與Web服務器配合工作以提供運行時環境和JSP需要的其他服務。它知道如何理解作為JSP一部分的特殊元素。
下圖顯示了JSP容器和JSP文件在Web應用程序中的位置。
Web服務器如何使用JSP創建Web頁面
以下步驟說明Web服務器如何使用JSP創建Web頁面 -
-
與正常頁面一樣,瀏覽器向Web服務器發送HTTP請求。
-
Web服務器識別HTTP請求是針對JSP頁面,並將其轉發給JSP引擎。這可以通過使用以
-
JSP引擎從磁盤加載JSP頁面並將其轉換為servlet(.java)。此轉換非常簡單,所有HTML文本都轉換為println()語句,所有JSP元素轉換為Java代碼。這些代碼實現了頁面的相應動態行為。【註釋】直接看轉換的源代碼就清楚了
-
JSP引擎將servlet編譯成可執行類(.class),並將原始請求轉發到servlet引擎。
-
servlet引擎(Web服務器的一部分)加載Servlet類並執行它。在執行期間,servlet生成HTML格式的輸出。HTTP響應中的servlet引擎將輸出傳遞給Web服務器。
-
Web服務器將含有靜態HTML的HTTP響應轉發到瀏覽器。
-
最後,Web瀏覽器處理HTTP響應中動態生成的HTML頁面,就像處理一個靜態頁面一樣。
所有上述步驟可以在下圖中看到 -
通常,JSP引擎將檢查JSP文件的對應的servlet是否已存在,以及.jsp文件的修改日期是否比對應的.java更早。如果.jsp早於其生成的.java,則JSP容器假定.jsp沒有更改,並且生成的.java仍然與.jsp的內容匹配。這使得創建Web頁面的過程相對其他腳本語言(如PHP)更加高效。【註釋】友情鏈接
所以,在某種程度上,JSP頁面實際上只是另一種編寫servlet的方法
JSP筆記04——架構(轉)