位置:首頁 > Java技術 > JSP教學 > JSP體係結構

JSP體係結構

Web服務器需要一個JSP引擎,即,容器處理JSP頁麵。 JSP容器負責攔截對JSP頁麵的請求。本教學使用的Apache已內置JSP容器支持JSP頁麵的開發。

JSP容器的工作原理與Web服務器來提供運行時環境和其他服務的JSP需要。它知道如何理解,是JSP頁麵的一部分的特殊元素。

下圖顯示了JSP容器和JSP文件在Web應用程序的位置。

JSP體係結構

JSP 處理:

下麵的步驟說明了Web服務器是如何創建使用JSP網頁:

  • 作為一個正常的頁麵,您的瀏覽器發送一個HTTP請求到Web服務器。

  • Web服務器識彆出HTTP請求是一個JSP頁麵,並將其轉發到一個JSP引擎。這是通過使用URL或JSP頁麵以.JSP結尾,而不是.HTML。

  • JSP引擎從磁盤中加載的JSP頁麵,並將其轉換成servlet的內容。這種轉換是非常簡單的,所有模板文本轉換為調用println() 語句和所有的JSP元素轉換到實現頁麵的相應的動態行為的Java代碼。

  • JSP引擎編譯成servlet的一個可執行文件類和原始請求轉發給一個servlet引擎。

  • 被稱為servlet引擎Web服務器一部分加載Servlet類並執行它。在執行過程中,servlet生成一個HTML格式的輸出,servlet引擎傳遞到HTTP響應裡麵的Web服務器。

  • Web服務器中的靜態HTML內容條款轉發HTTP響應到瀏覽器。

  • 最後的網頁瀏覽器處理HTTP響應內動態地生成HTML頁麵完全一樣,如果它是一個靜態頁。

在下麵可以顯示在下麵的圖中上麵提到的所有步驟:

JSP Processing

通常情況下,JSP引擎會檢查一個servlet的JSP文件是否已經存在,並且在JSP中修改日期是否早於這個servlet。如果JSP是年紀比其生成的servlet,JSP容器假定JSP並冇有改變,而生成的servlet仍然符合JSP的內容。這使得該方法比用其它腳本語言(如PHP)更有效,因此更快。

因此,在某種程度上,一個JSP頁麵實際上隻是另一種方式來寫一個servlet,而不必是一個Java編程行家。除轉換階段,一個JSP頁麵的處理完全像一個普通的servlet。