(1)靜態導入(include指令)經過file屬性指定被包含的文件,而且file屬性不支持任何表達式;動態導入(include動做)經過page屬性指定被包含的文件,且page屬性支持JSP表達式;瀏覽器
(2)使用靜態導入(include指令)時,被包含的文件內容會原封不動的插入到包含頁中,而後JSP編譯器再將合成後的文件最終編譯成一個 Java文件;使用動態導入(include動做)包含文件時,當該標識被執行時,程序會將請求轉發(不是請求重定向)到被包含的頁面,並將執行結果輸出 到瀏覽器中,而後返回包含頁繼續執行後面的代碼。由於服務器執行的是多個文件,因此JSP編譯器會分別對這些文件進行編譯;服務器
(3)使用include靜態指令包含文件時,因爲被包含的文件最終會生成一個文件,因此在被包含、包含文件中不能有重名的變量或方法;而include動態包含文件時,因爲每一個文件是單獨編譯的,因此在被包含文件和包含文件中重名的變量和方法是不相沖突的。編譯器
(4)靜態導入是將被導入頁面的代碼徹底融入,兩個頁面融合成一個總體Servlet,所以被導入頁面甚至不須要是一個完整的頁面;而動態導入則在Servlet中使用include方法來引入被導入頁面的內容;編譯
(5)靜態導入時被導入頁面的編譯指令會起做用;而動態導入時被導入頁面的編譯指令則失去做用,只是插入被導入頁面的body內容。變量