第一次造訪jsp頁面時,會向一個servlet容器(tomcat等)發出請求,servlet容器先要把 jsp頁面轉換為servlet程式碼(.java),再編譯成.class 檔案 再進行呼叫。當再次造訪jsp頁面時 跳過翻譯和編譯的程序直接呼叫
#Web容器處理JSP檔案請求的執行過程主要包括以下4個部分:
1、客戶端發出Request請求
2、JSP Container 將JSP轉譯成Servlet的原始碼
3、將產生的Servlet原始碼經過編譯後,並載入到記憶體執行
4、把結果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.
#相關學習推薦:java基礎教學
以上是jsp的執行過程是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!