JSP全名為Java Server Pages,其根本是簡化的Servlet。一種動態網頁技術標準。它實作了Html語法中的java擴充(以 形式)。 JSP與Servlet一樣,是在伺服器端執行的。
jsp的工作原理是什麼?
#結合上圖給出的流程圖:
(B/S架構的工作原理)
當客戶端瀏覽器(browser)向伺服器(server)請求一個JSP 頁面時,伺服器收到該請求後,首先檢查所要求的這個JSP 檔案內容( 代碼) 是否已經被更新,或者是否是JSP 檔案創建後的第一次被存取:
#如果是,那麼,這個JSP 檔案就會在伺服器端的JSP引擎作用下轉換為一個Servlet 類別的Java 原始碼檔案。
緊接著,這個 Servlet 類別會在 Java 編譯器的作用下被編譯成一個字節碼文件,並裝載到 jvm (java虛擬機)解釋執行。
剩下的就等同於 Servlet 的處理過程了。
如果被要求的 JSP 檔案內容 ( 程式碼 ) 沒有被修改,那麼它的處理過程也等同於一個 Servlet 的處理過程。即直接由伺服器檢索出與之對應的 Servlet 實例來處理。
要注意的是,JSP 檔案不是在伺服器啟動的時候轉換成 Servlet 類別的。而是在被客戶端存取的時候才可能發生轉換的 ( 如 JSP 檔案內容沒有被更新等,就不再發生 Servlet 轉換 )。
就Tomcat 而言,開啟目錄%Tomcat%/work/%您的工程檔案目錄%,然後會看到裡面有3個子目錄:org/apache/jsp,如果沒有這3 個目錄,說明專案的JSP 檔案還沒有被存取過,打開進入jsp 目錄下,會看到一些*_jsp.java 和*_jsp.class 文件,這就是JSP 檔案被轉換成Servlet 類別的來源檔案和字節碼文件了。
有興趣的話,可以使用瀏覽器存取伺服器中的 JSP,然後觀察 JSP 轉換 Servlet 以及編譯的時機。
簡言之,容器拿到JSP,會把它轉換成一個servlet類別原始檔(.java),然後再把這個原始檔編譯成java servlet類別。也就是說,JSP本質上就是一個servlet。
以上是jsp的工作原理是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!