靜態導入: <%@include%>:頁面請求之前預編譯,所有代碼包含進來之后,一起進行處理,把所有代碼合在一起,編譯成一個servlet
動態導入:< jsp:include>(尖括號中間沒有空格):所有代碼分別處理,在頁面被請求的時候才編譯,被編譯成多個servlet,頁面語法相對獨立,處理完成之后再將代碼的顯示結果(處理結果)組合進來。
JSP中的兩種包含頁面的方法
第一種:include指令:當JSP轉換成Servlet時引入指定文件 (靜態包含)
第二種:< jsp:include>動作元素:當JSP頁面被請求時引入指定文件(動態包含)
總結
對於靜態包含,<%@include%>,中包含的文件(無論html文件還是jsp文件),只是簡單的嵌入到主文件中,就是在jsp頁面轉化成Servlet時才嵌入到主文件中,因為運行的結果是只生成了一個Servlet。
而對於動態包含< jsp:incude>,如果被包含文件是動態的(jsp文件),那么就會生成兩個Servlet,也就是被包含文件也要經過jsp引擎編譯執行生成一個Servlet,兩個Servlet通過request和reponse進行通信(包含的jsp是一個完整的文件有html、body等標簽)。如果被包含的文件是靜態的(html文件),那么這種情況和<%@include>就很相似,只生成了一個Servlet,但是他們之間沒有進行簡單的嵌入,而依然是通過request和reponse進行的通信
動態導入:< jsp:include>(尖括號中間沒有空格):所有代碼分別處理,在頁面被請求的時候才編譯,被編譯成多個servlet,頁面語法相對獨立,處理完成之后再將代碼的顯示結果(處理結果)組合進來。
JSP中的兩種包含頁面的方法
第一種:include指令:當JSP轉換成Servlet時引入指定文件 (靜態包含)
第二種:< jsp:include>動作元素:當JSP頁面被請求時引入指定文件(動態包含)
總結
對於靜態包含,<%@include%>,中包含的文件(無論html文件還是jsp文件),只是簡單的嵌入到主文件中,就是在jsp頁面轉化成Servlet時才嵌入到主文件中,因為運行的結果是只生成了一個Servlet。
而對於動態包含< jsp:incude>,如果被包含文件是動態的(jsp文件),那么就會生成兩個Servlet,也就是被包含文件也要經過jsp引擎編譯執行生成一個Servlet,兩個Servlet通過request和reponse進行通信(包含的jsp是一個完整的文件有html、body等標簽)。如果被包含的文件是靜態的(html文件),那么這種情況和<%@include>就很相似,只生成了一個Servlet,但是他們之間沒有進行簡單的嵌入,而依然是通過request和reponse進行的通信