溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Web容器處理JSP文件請求的執(zhí)行過程是什么

發(fā)布時間:2020-11-03 14:07:09 來源:億速云 閱讀:300 作者:小新 欄目:編程語言

Web容器處理JSP文件請求的執(zhí)行過程是什么?這個問題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家?guī)淼膮⒖純?nèi)容,讓我們一起來看看吧!

                                                           當(dāng)?shù)谝淮卧L問jsp頁面時,會向一個servlet容器(tomcat等)發(fā)出請求,servlet容器先要把 jsp頁面轉(zhuǎn)化為servlet代碼(.java),再編譯成.class 文件 再進(jìn)行調(diào)用。當(dāng)再次訪問jsp頁面時  跳過翻譯和編譯的過程 直接調(diào)用

Web容器處理JSP文件請求的執(zhí)行過程主要包括以下4個部分:
1. 客戶端發(fā)出Request請求
2. JSP Container 將JSP轉(zhuǎn)譯成Servlet的源代碼
3. 將產(chǎn)生的Servlet源代碼經(jīng)過編譯后,并加載到內(nèi)存執(zhí)行
4. 把結(jié)果Response(響應(yīng))至客戶端

很多人都會認(rèn)為JSP的執(zhí)行性能會和Servlet相差很多,其實執(zhí)行性能上的差別只在第一次的執(zhí)行。因為JSP在執(zhí)行第一次后,會被編譯成Servlet的類文件,即.class,當(dāng)再重復(fù)調(diào)用執(zhí)行時,就直接執(zhí)行第一次所產(chǎn)生的Servlet,而不再重新把JSP編譯成Servelt。因此,除了第一次的編譯會花較久的時間之外,之后JSP和Servlet的執(zhí)行速度就幾乎相同了。

在執(zhí)行JSP網(wǎng)頁時,通??梢苑譃閮蓚€時期:

轉(zhuǎn)譯時期(Translation Time)和請求時期(Request Time)

轉(zhuǎn)譯時期:JSP網(wǎng)頁轉(zhuǎn)移成Servlet類。
請求時期:Servlet類執(zhí)行后,響應(yīng)結(jié)果至客戶端。

轉(zhuǎn)譯期間做了兩件事情:
轉(zhuǎn)譯時期:將JSP網(wǎng)頁轉(zhuǎn)移為Servlet源代碼 .java.
編譯時期:將Servlet 源代碼 .java編譯成 Servlet類 .class.

當(dāng)JSP網(wǎng)頁在執(zhí)行時,JSP Container 會做檢查工作,如果發(fā)現(xiàn)JSP網(wǎng)頁有更新修改時,JSP Container 才會再次編譯JSP成 Servlet; 如果JSP沒有更新時,就直接執(zhí)行前面所產(chǎn)生的Servlet.

感謝各位的閱讀!看完上述內(nèi)容,你們對Web容器處理JSP文件請求的執(zhí)行過程是什么大概了解了嗎?希望文章內(nèi)容對大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

jsp
AI