jsp檔案的運作方法:首先客戶端發出Request請求,JSP Container將JSP轉譯成Servlet的原始碼;然後將產生的Servlet原始碼進行編譯,並載入到記憶體執行;最後把結果Response至客戶端即可。
當客戶端瀏覽器向伺服器發出存取一個JSP頁面的請求時,伺服器會根據該請求載入對應的JSP頁面,並對該頁面進行編譯,然後執行。
推薦課程:Java教學。
頁面的執行過程如下圖所示:
客戶端透過瀏覽器向伺服器發出請求,在該請求中包含了請求的資源的路徑,這樣當伺服器接收到該請求後就可以知道被要求的內容。
伺服器根據接收到的客戶端的請求來載入對應的JSP檔案。
Web伺服器中的JSP引擎會將被載入的JSP檔案轉換為Servlet。
JSP引擎將產生的Servlet程式碼編譯成Class檔案。
伺服器執行這個Class檔。
最後伺服器將執行結果傳送給瀏覽器進行顯示。
從上面的解釋可以看到,JSP文件被JSP引擎轉換後,又被編譯成了Class文件,最後由伺服器透過執行這個Class文件來回應客戶端的請求。其中第三步和第四步構成了JSP處理過程中的翻譯階段,而第五步則為請求處理階段。
但並不是每次請求都需要重複進行這樣的處理。當伺服器第一次接收到對某個頁面的請求時,JSP引擎就開始依照上述的處理過程將被要求的JSP檔案編譯成Class檔案。當再次對該頁面進行請求時,如果該頁面沒有任何改動,伺服器就會直接呼叫對應的Class檔案來執行。因此當某個JSP頁面第一次被要求時,會有一些延遲,而再次造訪時會感覺速度快了很多。如果被要求的頁面經過了修改,那麼伺服器會重新編譯這個文件,然後再執行。
jsp是怎麼運作的
**jsp ——JSP引擎轉換為Servlet——Java編譯為.class檔案——由Java虛擬機解釋執行
Web容器處理JSP檔案請求的執行過程主要包含以下4個部分:
客戶端發出Request請求
JSP Container 將JSP轉譯成Servlet的原始碼
將產生的Servlet原始碼經過編譯後,並載入到記憶體執行
#把結果Response(回應)到客戶端
很多人會認為JSP的執行效能會和Servlet相差很多,其實執行效能上的差異只在第一次的執行。因為JSP在執行第一次後,會被編譯成Servlet的類別文件,即.class,當再重複呼叫執行時,就直接執行第一次所產生的Servlet,而不再重新把JSP編譯成Servelt。因此,除了第一次的編譯會花較長的時間之外,之後JSP和Servlet的執行速度就幾乎相同了。
在執行JSP網頁時,通常可以分為兩個時期:轉譯期間(Translation Time)與請求期間(Request Time)
轉譯期間:JSP網頁轉移成Servlet類別。
請求時期:Servlet類別執行後,回應結果至客戶端。
轉譯期間做了兩件事:
轉譯時期:將JSP網頁轉移為Servlet原始碼.java.
編譯時期:將Servlet 原始碼.java編譯成Servlet類別.class.
當JSP網頁在執行時,JSP Container 會做檢查工作,如果發現JSP網頁有更新修改時,JSP Container 才會再次編譯JSP成Servlet; 如果JSP沒有更新時,就直接執行前面所產生的Servlet.**
以上是jsp檔案怎麼運行的詳細內容。更多資訊請關注PHP中文網其他相關文章!