1. 程式人生 > >JSP筆記04——架構(轉)

JSP筆記04——架構(轉)

轉發 fff 如果 pri 截取 部分 blog strong 方式

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而不是.html結尾的URL或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頁面的處理方式與普通的servlet完全相同

JSP筆記04——架構(轉)