官术网_书友最值得收藏!

2.3 JSP執行過程

2.3.1 JSP執行過程分析

JSP執行過程分析

當服務器上的一個JSP頁面被第一次請求執行時,服務器上的JSP引擎會先將JSP頁面文件轉譯成一個.java文件,即servlet,并編譯這個Java文件,生成.class的字節碼文件,然后執行字節碼文件響應客戶端的請求。而當這個JSP頁面被再次請求時,JSP引擎將直接執行字節碼文件來響應客戶。執行過程如圖2-13所示。

該執行過程可以總結為以下4步。

(1)客戶端發出Request請求。

圖2-13 JSP執行過程圖

(2)JSP Container 將JSP轉譯成Servlet的源代碼。

(3)將產生的Servlet源代碼經過編譯后,加載到內存執行。

(4)把結果Response(響應)至客戶端。

在執行JSP網頁時,通常可以分為兩個時期:轉譯時期(Translation Time)和請求時期(Request Time)。

① 轉譯時期:JSP網頁轉譯成Servlet類。

② 請求時期:Servlet類執行后,響應結果至客戶端。

其中,系統在轉譯期間做了兩件事情:將JSP網頁轉譯為Servlet源代碼*.java(轉譯);將Servlet源代碼*.java編譯成字節碼文件*.class(編譯)。

2.3.2 JSP執行過程轉譯文件

JSP執行過程轉譯文件

本小節以客戶端請求jspdempro項目中一個根目錄下的welcome.jsp為例,解釋JSP執行過程中生成的兩個文件。

當客戶端發出請求 http://localhost:8080/jspdemopro/welcome.jsp 后,可以在 Tomcat 服務器目錄\work\Catalina\localhost\jspdemopro\org\apache\jsp 下發現多了兩個文件:welcome_jsp.java 和 welcome_jsp.class,如圖2-14所示。

圖2-14 轉譯時期生成的兩個文件

打開welcome_jsp.java,可以看到其部分源代碼,如圖2-15所示。

welcome.jsp的源代碼參見2.2.3節中的welcome.jsp頁面源代碼。

圖2-15 welcome_jsp.java源代碼

主站蜘蛛池模板: 全椒县| 阿克苏市| 阳朔县| 宜良县| 沽源县| 安岳县| 来宾市| 大邑县| 延寿县| 利川市| 奉节县| 鹤庆县| 柯坪县| 连南| 大厂| 靖远县| 泰来县| 遂溪县| 花垣县| 克东县| 布尔津县| 大荔县| 徐闻县| 铅山县| 台南县| 天全县| 上杭县| 高台县| 洪江市| 称多县| 西华县| 逊克县| 利津县| 永善县| 霍州市| 铁力市| 田林县| 湾仔区| 榆树市| 炉霍县| 正安县|